DEADSOFTWARE

Sound: OpenAL: Add module interp setting
[d2df-sdl.git] / src / engine / e_soundfile_modplug.pas
index 01fd45544a05e7f9590bb10dc6a3abd0e32ecf34..b68487d9600d9667e4d6e5d9e852ad454e71fca1 100644 (file)
@@ -21,7 +21,7 @@ interface
 uses e_soundfile, modplug;
 
 type
-  // a module loader that uses libxmp-lite
+  // a module loader that uses libmodplug
 
   TModPlugLoader = class (TSoundLoader)
   public
@@ -36,6 +36,7 @@ type
   end;
 
   TModPlugLoaderFactory = class (TSoundLoaderFactory)
+  public
     function MatchHeader(Data: Pointer; Len: LongWord): Boolean; override;
     function MatchExtension(FName: string): Boolean; override;
     function GetLoader(): TSoundLoader; override;
@@ -89,7 +90,12 @@ end;
 
 function TModPlugLoaderFactory.GetLoader(): TSoundLoader;
 begin
-  ModPlug_SetSettings(@Settings); // update settings just in case
+  // update interpolation setting
+  if e_MusicLerp then
+    Settings.mResamplingMode := MODPLUG_RESAMPLE_LINEAR
+  else
+    Settings.mResamplingMode := MODPLUG_RESAMPLE_NEAREST;
+  ModPlug_SetSettings(@Settings);
   Result := TModPlugLoader.Create();
 end;