- Fix issue 144 (Sound is either 0 or 100%), for PSP ONLY. The methods are now here for linux/windows, but only the music volume method will work currently, and it sets the volume globally. Patch by Yeshua with some cleanup by myself.
This commit is contained in:
wagic.the.homebrew@gmail.com
2009-12-12 15:10:32 +00:00
parent f6c4350b38
commit 74accec275
12 changed files with 348 additions and 360 deletions
+7
View File
@@ -38,6 +38,13 @@ WAVDATA currentWav[NUMBER_WAV_CHANNELS]; // 各通道当前的播放
///////////////////////////////////////////////////////////////////
void setPspVolume(int volume)
{
pspAudioSetVolume(0, volume, volume);
pspAudioSetVolume(1, volume, volume);
pspAudioSetVolume(2, volume, volume);
}
char loadWaveData(WAVDATA* p_wav, char* fileName, char memLoad) // WAVE加载, memLoad-是否加载至内磥E
{
+16 -3
View File
@@ -145,9 +145,11 @@ JSample *JSoundSystem::LoadSample(const char *fileName)
void JSoundSystem::PlayMusic(JMusic *music, bool looping)
{
if (music->mTrack)
PlayMP3(music->mTrack, looping);
JMP3 * mp3 = JMP3::mInstance;
if (mp3) mp3->setVolume((mMusicVolume * .01) *0x8000);
}
@@ -157,11 +159,22 @@ void JSoundSystem::PlaySample(JSample *sample)
playWaveMem(sample->mSample, 0);
}
void JSoundSystem::SetVolume(int volume){
SetMusicVolume(volume);
SetSfxVolume(volume);
}
void JSoundSystem::SetVolume(int volume)
void JSoundSystem::SetMusicVolume(int volume)
{
mMusicVolume = volume;
JMP3 * mp3 = JMP3::mInstance;
if (mp3) mp3->setVolume(volume);
if (mp3) mp3->setVolume((mMusicVolume * .01) *0x8000);
}
void JSoundSystem::SetSfxVolume(int volume)
{
setPspVolume((volume * .01) *0x8000);
}
+10 -19
View File
@@ -129,23 +129,6 @@ JMusic *JSoundSystem::LoadMusic(const char *fileName)
return music;
}
// void JSoundSystem::FreeMusic(JMusic *music)
// {
// if (music)
// {
// // if (music->mTrack)
// // FMUSIC_FreeSong(music->mTrack);
// // delete music;
// // music = NULL;
//
// if (music->mTrack)
// FSOUND_Sample_Free(music->mTrack);
//
// //delete music;
// //music = NULL;
// }
// }
void JSoundSystem::PlayMusic(JMusic *music, bool looping)
{
// if (music && music->mTrack)
@@ -176,14 +159,22 @@ void JSoundSystem::StopMusic(JMusic *music __attribute__((unused)))
}
void JSoundSystem::SetVolume(int volume)
void JSoundSystem::SetVolume(int volume){
SetMusicVolume(volume);
SetSfxVolume(volume);
}
void JSoundSystem::SetMusicVolume(int volume)
{
//TODO Fix to affect only mp3 playback...
FSOUND_SetSFXMasterVolume(volume);
mVolume = volume;
}
void JSoundSystem::SetSfxVolume(int volume){
//TODO
}
JSample *JSoundSystem::LoadSample(const char *fileName)
+10 -21
View File
@@ -136,22 +136,6 @@ JMusic *JSoundSystem::LoadMusic(const char *fileName)
return music;
}
// void JSoundSystem::FreeMusic(JMusic *music)
// {
// if (music)
// {
// // if (music->mTrack)
// // FMUSIC_FreeSong(music->mTrack);
// // delete music;
// // music = NULL;
//
// if (music->mTrack)
// FSOUND_Sample_Free(music->mTrack);
//
// //delete music;
// //music = NULL;
// }
// }
void JSoundSystem::PlayMusic(JMusic *music, bool looping)
{
@@ -171,22 +155,27 @@ void JSoundSystem::PlayMusic(JMusic *music, bool looping)
void JSoundSystem::StopMusic(JMusic *music)
{
// if (music && music->mTrack)
// FMUSIC_StopSong(music->mTrack);
FSOUND_StopSound(mChannel);
}
void JSoundSystem::SetVolume(int volume)
{
SetMusicVolume(volume);
SetSfxVolume(volume);
}
void JSoundSystem::SetMusicVolume(int volume)
{
//TODO This function needs to be redone
FSOUND_SetSFXMasterVolume(volume);
mVolume = volume;
}
void JSoundSystem::SetSfxVolume(int volume){
//TODO
}
JSample *JSoundSystem::LoadSample(const char *fileName)
{