For each Music playback system defining own volume scaling definition which was wrong for SDL_mixer
This commit is contained in:
parent
709496a932
commit
47255f4e31
|
@ -4,6 +4,7 @@ D2X-Rebirth Changelog
|
||||||
--------
|
--------
|
||||||
d2x-rebirth/main/multi.c, d2x-rebirth/main/bmread.c, d2x-rebirth/main/bmread.h, d2x-rebirth/main/paging.c, d2x-rebirth/main/piggy.c, d2x-rebirth/main/render.c, d2x-rebirth/main/net_ipx.c, d2x-rebirth/main/dumpmine.c, d2x-rebirth/main/editor/kmine.c, d2x-rebirth/main/editor/mine.c, d2x-rebirth/main/editor/group.c, d2x-rebirth/main/editor/med.c, d2x-rebirth/main/editor/eswitch.c, d2x-rebirth/main/editor/medwall.c, d2x-rebirth/main/kconfig.c, d2x-rebirth/main/gamecntl.c, d2x-rebirth/ui/window.c, d2x-rebirth/ui/keypad.c, d2x-rebirth/mem/mem.c: Patching together editor so it compiles again (while still not running); Implemented PhysFS for file accessing for editor- and debugging-related code
|
d2x-rebirth/main/multi.c, d2x-rebirth/main/bmread.c, d2x-rebirth/main/bmread.h, d2x-rebirth/main/paging.c, d2x-rebirth/main/piggy.c, d2x-rebirth/main/render.c, d2x-rebirth/main/net_ipx.c, d2x-rebirth/main/dumpmine.c, d2x-rebirth/main/editor/kmine.c, d2x-rebirth/main/editor/mine.c, d2x-rebirth/main/editor/group.c, d2x-rebirth/main/editor/med.c, d2x-rebirth/main/editor/eswitch.c, d2x-rebirth/main/editor/medwall.c, d2x-rebirth/main/kconfig.c, d2x-rebirth/main/gamecntl.c, d2x-rebirth/ui/window.c, d2x-rebirth/ui/keypad.c, d2x-rebirth/mem/mem.c: Patching together editor so it compiles again (while still not running); Implemented PhysFS for file accessing for editor- and debugging-related code
|
||||||
main/gamecntl.c: Removed processing of HandleVRKey() as this code is not usable anymore and blocks some system keys (removal of general VR-code will follow later)
|
main/gamecntl.c: Removed processing of HandleVRKey() as this code is not usable anymore and blocks some system keys (removal of general VR-code will follow later)
|
||||||
|
main/songs.c, arch/sdl/digi_mixer_music.c, arch/sdl/rbaudio.c, arch/sdl/digi.c: For each Music playback system defining own volume scaling definition which was wrong for SDL_mixer
|
||||||
|
|
||||||
20100817
|
20100817
|
||||||
--------
|
--------
|
||||||
|
|
|
@ -145,17 +145,20 @@ void digi_debug()
|
||||||
|
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
// Windows native-MIDI stuff.
|
// Windows native-MIDI stuff.
|
||||||
|
#define MIDI_VOLUME_SCALE 128
|
||||||
int digi_win32_midi_song_playing=0;
|
int digi_win32_midi_song_playing=0;
|
||||||
static hmp_file *cur_hmp=NULL;
|
static hmp_file *cur_hmp=NULL;
|
||||||
|
|
||||||
void digi_win32_set_midi_volume( int mvolume )
|
void digi_win32_set_midi_volume( int mvolume )
|
||||||
{
|
{
|
||||||
int mm_volume, midi_volume=0;
|
int mm_volume, midi_volume=0;
|
||||||
|
|
||||||
|
mvolume *= MIDI_VOLUME_SCALE/8;
|
||||||
|
|
||||||
if (mvolume < 0)
|
if (mvolume < 0)
|
||||||
midi_volume = 0;
|
midi_volume = 0;
|
||||||
else if (mvolume > 127)
|
else if (mvolume > MIDI_VOLUME_SCALE-1)
|
||||||
midi_volume = 127;
|
midi_volume = MIDI_VOLUME_SCALE-1;
|
||||||
else
|
else
|
||||||
midi_volume = mvolume;
|
midi_volume = mvolume;
|
||||||
|
|
||||||
|
@ -179,7 +182,7 @@ int digi_win32_play_midi_song( char * filename, int loop )
|
||||||
if (hmp_play(cur_hmp,loop) != 0)
|
if (hmp_play(cur_hmp,loop) != 0)
|
||||||
return 0; // error
|
return 0; // error
|
||||||
digi_win32_midi_song_playing = 1;
|
digi_win32_midi_song_playing = 1;
|
||||||
digi_win32_set_midi_volume((GameCfg.MusicVolume*128)/8);
|
digi_win32_set_midi_volume((GameCfg.MusicVolume*MIDI_VOLUME_SCALE)/8);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -100,6 +100,7 @@ void mix_free_music()
|
||||||
|
|
||||||
void mix_set_music_volume(int vol)
|
void mix_set_music_volume(int vol)
|
||||||
{
|
{
|
||||||
|
vol *= MIX_MAX_VOLUME/8;
|
||||||
Mix_VolumeMusic(vol);
|
Mix_VolumeMusic(vol);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -23,6 +23,8 @@
|
||||||
#include "console.h"
|
#include "console.h"
|
||||||
#include "timer.h"
|
#include "timer.h"
|
||||||
|
|
||||||
|
#define REDBOOK_VOLUME_SCALE 255
|
||||||
|
|
||||||
static SDL_CD *s_cd = NULL;
|
static SDL_CD *s_cd = NULL;
|
||||||
static int initialised = 0;
|
static int initialised = 0;
|
||||||
|
|
||||||
|
@ -140,10 +142,10 @@ void RBASetVolume(int volume)
|
||||||
if (!s_cd) return;
|
if (!s_cd) return;
|
||||||
|
|
||||||
cdfile = s_cd->id;
|
cdfile = s_cd->id;
|
||||||
level = volume;
|
level = volume*REDBOOK_VOLUME_SCALE/8;
|
||||||
|
|
||||||
if ((level<0) || (level>255)) {
|
if ((level<0) || (level>REDBOOK_VOLUME_SCALE)) {
|
||||||
con_printf(CON_CRITICAL, "illegal volume value (allowed values 0-255)\n");
|
con_printf(CON_CRITICAL, "illegal volume value (allowed values 0-%i)\n",REDBOOK_VOLUME_SCALE);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -49,15 +49,15 @@ void songs_set_volume(int volume)
|
||||||
{
|
{
|
||||||
#ifdef _WIN32
|
#ifdef _WIN32
|
||||||
if (GameArg.SndDisableSdlMixer)
|
if (GameArg.SndDisableSdlMixer)
|
||||||
digi_win32_set_midi_volume((volume*128)/8);
|
digi_win32_set_midi_volume(volume);
|
||||||
#endif
|
#endif
|
||||||
if (GameCfg.MusicType == MUSIC_TYPE_REDBOOK)
|
if (GameCfg.MusicType == MUSIC_TYPE_REDBOOK)
|
||||||
{
|
{
|
||||||
RBASetVolume(0);
|
RBASetVolume(0);
|
||||||
RBASetVolume(volume*EXTMUSIC_VOLUME_SCALE/8);
|
RBASetVolume(volume);
|
||||||
}
|
}
|
||||||
#ifdef USE_SDLMIXER
|
#ifdef USE_SDLMIXER
|
||||||
mix_set_music_volume(volume*EXTMUSIC_VOLUME_SCALE/8);
|
mix_set_music_volume(volume);
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue