diff options
Diffstat (limited to 'gst/modplug/libmodplug/modplug.cpp')
-rw-r--r-- | gst/modplug/libmodplug/modplug.cpp | 144 |
1 files changed, 0 insertions, 144 deletions
diff --git a/gst/modplug/libmodplug/modplug.cpp b/gst/modplug/libmodplug/modplug.cpp deleted file mode 100644 index 5e07c881..00000000 --- a/gst/modplug/libmodplug/modplug.cpp +++ /dev/null @@ -1,144 +0,0 @@ -/* - * This source code is public domain. - * - * Authors: Kenton Varda <temporal@gauge3d.org> (C interface wrapper) - */ - -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - -#include "modplug.h" -#include "stdafx.h" -#include "sndfile.h" - -struct _ModPlugFile -{ - CSoundFile mSoundFile; -}; - -namespace ModPlug -{ - ModPlug_Settings gSettings = - { - MODPLUG_ENABLE_OVERSAMPLING | MODPLUG_ENABLE_NOISE_REDUCTION, - - 2, - 16, - 44100, - MODPLUG_RESAMPLE_LINEAR, - - 0, - 0, - 0, - 0, - 0, - 0, - 0 - }; - - int gSampleSize; - - void UpdateSettings(bool updateBasicConfig) - { - if(gSettings.mFlags & MODPLUG_ENABLE_REVERB) - { - CSoundFile::SetReverbParameters(gSettings.mReverbDepth, - gSettings.mReverbDelay); - } - - if(gSettings.mFlags & MODPLUG_ENABLE_MEGABASS) - { - CSoundFile::SetXBassParameters(gSettings.mBassAmount, - gSettings.mBassRange); - } - else // modplug seems to ignore the SetWaveConfigEx() setting for bass boost - CSoundFile::SetXBassParameters(0, 0); - - if(gSettings.mFlags & MODPLUG_ENABLE_SURROUND) - { - CSoundFile::SetSurroundParameters(gSettings.mSurroundDepth, - gSettings.mSurroundDelay); - } - - if(updateBasicConfig) - { - CSoundFile::SetWaveConfig(gSettings.mFrequency, - gSettings.mBits, - gSettings.mChannels); - - gSampleSize = gSettings.mBits / 8 * gSettings.mChannels; - } - - CSoundFile::SetWaveConfigEx(gSettings.mFlags & MODPLUG_ENABLE_SURROUND, - !(gSettings.mFlags & MODPLUG_ENABLE_OVERSAMPLING), - gSettings.mFlags & MODPLUG_ENABLE_REVERB, - true, - gSettings.mFlags & MODPLUG_ENABLE_MEGABASS, - gSettings.mFlags & MODPLUG_ENABLE_NOISE_REDUCTION, - false); - CSoundFile::SetResamplingMode(gSettings.mResamplingMode); - } -} - -ModPlugFile* ModPlug_Load(const void* data, int size) -{ - ModPlugFile* result = new ModPlugFile; - ModPlug::UpdateSettings(true); - if(result->mSoundFile.Create((const BYTE*)data, size)) - { - result->mSoundFile.SetRepeatCount(ModPlug::gSettings.mLoopCount); - return result; - } - else - { - delete result; - return NULL; - } -} - -void ModPlug_Unload(ModPlugFile* file) -{ - file->mSoundFile.Destroy(); - delete file; -} - -int ModPlug_Read(ModPlugFile* file, void* buffer, int size) -{ - return file->mSoundFile.Read(buffer, size) * ModPlug::gSampleSize; -} - -const char* ModPlug_GetName(ModPlugFile* file) -{ - return file->mSoundFile.GetTitle(); -} - -int ModPlug_GetLength(ModPlugFile* file) -{ - return file->mSoundFile.GetSongTime() * 1000; -} - -void ModPlug_Seek(ModPlugFile* file, int millisecond) -{ - int maxpos; - int maxtime = file->mSoundFile.GetSongTime() * 1000; - float postime; - - if(millisecond > maxtime) - millisecond = maxtime; - maxpos = file->mSoundFile.GetMaxPosition(); - postime = (float)maxpos / (float)maxtime; - - file->mSoundFile.SetCurrentPos((int)(millisecond * postime)); -} - -void ModPlug_GetSettings(ModPlug_Settings* settings) -{ - memcpy(settings, &ModPlug::gSettings, sizeof(ModPlug_Settings)); -} - -void ModPlug_SetSettings(const ModPlug_Settings* settings) -{ - memcpy(&ModPlug::gSettings, settings, sizeof(ModPlug_Settings)); - ModPlug::UpdateSettings(false); -} |