X-Git-Url: https://deadsoftware.ru/gitweb?a=blobdiff_plain;ds=sidebyside;f=src%2Fengine%2Fe_soundfile_wav.pas;h=ba7bcdf67057a5d65f6e057b6ab4c755838f3b01;hb=0e101bd452c40da601236aaa2dd4106be47ddce1;hp=0ebe256b9d9d818245067079d9fe22c99a5e252c;hpb=6c6b87eea9373ec4f1cb859223d3708d8e2a59c6;p=d2df-sdl.git diff --git a/src/engine/e_soundfile_wav.pas b/src/engine/e_soundfile_wav.pas index 0ebe256..ba7bcdf 100644 --- a/src/engine/e_soundfile_wav.pas +++ b/src/engine/e_soundfile_wav.pas @@ -44,7 +44,13 @@ type implementation -uses sdl2, utils, e_log; +uses + {$IFDEF USE_SDL} + SDL, + {$ELSE} + SDL2, + {$ENDIF} + utils, e_log; (* TWAVLoaderFactory *) @@ -73,7 +79,6 @@ begin end; (* TWAVLoader *) - function TWAVLoader.Load(Data: Pointer; Len: LongWord; SStreaming: Boolean): Boolean; var Spec: TSDL_AudioSpec; @@ -85,14 +90,22 @@ begin RW := SDL_RWFromConstMem(Data, Len); +{$IFDEF USE_SDL2} if SDL_LoadWAV_RW(RW, 0, @Spec, @TmpBuf, @TmpLen) = nil then +{$ELSE} + if SDL_LoadWAV_RW(RW, 0, @Spec, PUInt8(@TmpBuf), @TmpLen) = nil then +{$ENDIF} begin e_LogWriteln('Could not load WAV: ' + SDL_GetError()); end else begin FFormat.SampleRate := Spec.freq; - FFormat.SampleBits := SDL_AUDIO_BITSIZE(Spec.format); + {$IFDEF USE_SDL2} + FFormat.SampleBits := SDL_AUDIO_BITSIZE(Spec.format); + {$ELSE} + FFormat.SampleBits := Spec.format and $FF; + {$ENDIF} FFormat.Channels := Spec.channels; FStreaming := False; // never stream wavs FDataLen := TmpLen; @@ -120,14 +133,22 @@ begin exit; end; +{$IFDEF USE_SDL2} if SDL_LoadWAV_RW(RW, 0, @Spec, @TmpBuf, @TmpLen) = nil then +{$ELSE} + if SDL_LoadWAV_RW(RW, 0, @Spec, PUInt8(@TmpBuf), @TmpLen) = nil then +{$ENDIF} begin e_LogWritefln('Could not load WAV file `%s`: %s', [FName, SDL_GetError()]); end else begin FFormat.SampleRate := Spec.freq; - FFormat.SampleBits := SDL_AUDIO_BITSIZE(Spec.format); + {$IFDEF USE_SDL2} + FFormat.SampleBits := SDL_AUDIO_BITSIZE(Spec.format); + {$ELSE} + FFormat.SampleBits := Spec.format and $FF; + {$ENDIF} FFormat.Channels := Spec.channels; FStreaming := False; // never stream wavs FDataLen := TmpLen;