int mBits; /* Bits per sample - 8, 16, or 32 */
int mFrequency; /* Sampling rate - 11025, 22050, or 44100 */
int mResamplingMode; /* One of MODPLUG_RESAMPLE_*, above */
+
+ int mStereoSeparation; /* Stereo separation, 1 - 256 */
+ int mMaxMixChannels; /* Maximum number of mixing channels (polyphony), 32 - 256 */
int mReverbDepth; /* Reverb level 0(quiet)-100(loud) */
int mReverbDelay; /* Reverb delay in ms, usually 40-200ms */
const char* dllnames_modplug [] =
{
#if defined(WIN32)
- "libmodplug-0.dll",
+ "libmodplug-1.dll",
"modplug.dll",
#elif defined(MACOSX)
"libmodplug.dylib",
#else
- "libmodplug.so.0",
+ "libmodplug.so.1",
"libmodplug.so",
#endif
NULL
// 1- to ensure we won't lose many samples during the resampling process
// 2- to reduce calls to ModPlug_FetchSound to regulate workload
newlength = (int)(per_sfx->format.speed*STREAM_BUFFER_FILL);
- if (newlength + sb->nbframes > sb->maxframes)
+ if ((size_t) ((double) newlength * (double)sb->format.speed / (double)per_sfx->format.speed) + sb->nbframes > sb->maxframes)
{
- Con_Printf ("ModPlug_FetchSound: stream buffer overflow (%u sample frames / %u)\n",
- sb->format.speed + sb->nbframes, sb->maxframes);
+ Con_Printf ("ModPlug_FetchSound: stream buffer overflow (%u + %u = %u sample frames / %u)\n",
+ (unsigned int) ((double) newlength * (double)sb->format.speed / (double)per_sfx->format.speed), sb->nbframes, (unsigned int) ((double) newlength * (double)sb->format.speed / (double)per_sfx->format.speed) + sb->nbframes, sb->maxframes);
return NULL;
}
newlength *= factor; // convert from sample frames to bytes