[Scummvm-cvs-logs] CVS: scummvm/queen journal.cpp,1.33,1.34 music.cpp,1.18,1.19 music.h,1.12,1.13 queen.cpp,1.83,1.84
Joost Peters
joostp at users.sourceforge.net
Mon Mar 8 17:19:30 CET 2004
Update of /cvsroot/scummvm/scummvm/queen
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5676/queen
Modified Files:
journal.cpp music.cpp music.h queen.cpp
Log Message:
Enable music volume slider in Journal
Index: journal.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/journal.cpp,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -d -r1.33 -r1.34
--- journal.cpp 7 Mar 2004 10:46:01 -0000 1.33
+++ journal.cpp 9 Mar 2004 00:52:07 -0000 1.34
@@ -240,8 +240,8 @@
_vm->sound()->toggleSfx();
drawConfigPanel();
} else if (zoneNum == ZN_MUSIC_VOLUME) {
- // int val = (x - 136) * 100 / 130;
- // XXX alter_current_volume();
+ int val = (x - 136) * 255 / 130;
+ _vm->music()->setVolume(val);
drawConfigPanel();
} else if (zoneNum >= ZN_DESC_FIRST && zoneNum <= ZN_DESC_LAST) {
_currentSaveSlot = zoneNum - ZN_DESC_FIRST;
@@ -430,9 +430,8 @@
_vm->checkOptionSettings();
drawSlideBar(_vm->talkSpeed(), 130, 100, BOB_TALK_SPEED, 136 - 4, 164, FRAME_BLUE_PIN);
- // XXX music_volume
- drawSlideBar(100, 130, 100, BOB_MUSIC_VOLUME, 136 - 4, 177, FRAME_GREEN_PIN);
-
+ drawSlideBar(_vm->music()->volume(), 130, 255, BOB_MUSIC_VOLUME, 136 - 4, 177, FRAME_GREEN_PIN);
+
drawCheckBox(_vm->sound()->sfxOn(), BOB_SFX_TOGGLE, 221, 155, FRAME_CHECK_BOX);
drawCheckBox(_vm->sound()->speechOn(), BOB_SPEECH_TOGGLE, 158, 155, FRAME_CHECK_BOX);
drawCheckBox(_vm->subtitles(), BOB_TEXT_TOGGLE, 125, 167, FRAME_CHECK_BOX);
Index: music.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/music.cpp,v
retrieving revision 1.18
retrieving revision 1.19
diff -u -d -r1.18 -r1.19
--- music.cpp 27 Feb 2004 02:08:44 -0000 1.18
+++ music.cpp 9 Mar 2004 00:52:07 -0000 1.19
@@ -42,7 +42,7 @@
47, 117, 127, 118, 118, 116, 115, 119, 115, 112, 55, 124, 123, 0, 14, 117 // 7x
};
- MusicPlayer::MusicPlayer(MidiDriver *driver, byte *data, uint32 size) : _driver(driver), _isPlaying(false), _looping(false), _randomLoop(false), _volume(255), _queuePos(0), _musicData(data), _musicDataSize(size) {
+ MusicPlayer::MusicPlayer(MidiDriver *driver, byte *data, uint32 size) : _driver(driver), _isPlaying(false), _looping(false), _randomLoop(false), _masterVolume(192), _queuePos(0), _musicData(data), _musicDataSize(size) {
memset(_channel, 0, sizeof(_channel));
queueClear();
_lastSong = _currentSong = 0;
@@ -61,6 +61,23 @@
delete _parser;
}
+ void MusicPlayer::setVolume(int volume) {
+ if (volume < 0)
+ volume = 0;
+ else if (volume > 255)
+ volume = 255;
+
+ if (_masterVolume == volume)
+ return;
+
+ _masterVolume = volume;
+
+ for (int i = 0; i < 16; ++i) {
+ if (_channel[i])
+ _channel[i]->volume(_channelVolume[i] * _masterVolume / 255);
+ }
+ }
+
bool MusicPlayer::queueSong(uint16 songNum) {
uint8 emptySlots = 0;
for (int i = 0; i < MUSIC_QUEUE_SIZE; i++)
@@ -111,7 +128,7 @@
// Adjust volume changes by master volume
byte volume = (byte)((b >> 16) & 0x7F);
_channelVolume[channel] = volume;
- //volume = volume * _masterVolume / 255;
+ volume = volume * _masterVolume / 255;
b = (b & 0xFF00FFFF) | (volume << 16);
} else if ((b & 0xF0) == 0xC0 && !_nativeMT32) {
b = (b & 0xFFFF00FF) | mt32_to_gm[(b >> 8) & 0xFF] << 8;
Index: music.h
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/music.h,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -d -r1.12 -r1.13
--- music.h 27 Feb 2004 02:08:44 -0000 1.12
+++ music.h 9 Mar 2004 00:52:07 -0000 1.13
@@ -35,7 +35,9 @@
public:
MusicPlayer(MidiDriver *driver, byte *data, uint32 size);
~MusicPlayer();
-
+ void setVolume(int volume);
+ int getVolume() { return _masterVolume; }
+
void hasNativeMT32(bool b) { _nativeMT32 = b; }
void playMusic();
void stopMusic();
@@ -81,7 +83,7 @@
bool _isPlaying;
bool _looping;
bool _randomLoop;
- byte _volume;
+ byte _masterVolume;
uint8 _queuePos;
int16 _currentSong;
int16 _lastSong; //first song from previous queue
@@ -103,6 +105,9 @@
void playMusic() { _player->playMusic(); }
void stopSong() { _player->stopMusic(); }
+ void setVolume(int vol) { _player->setVolume(vol); }
+ int volume() { return _player->getVolume(); }
+
protected:
byte *_musicData;
uint32 _musicDataSize;
Index: queen.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/queen/queen.cpp,v
retrieving revision 1.83
retrieving revision 1.84
diff -u -d -r1.83 -r1.84
--- queen.cpp 24 Feb 2004 22:39:39 -0000 1.83
+++ queen.cpp 9 Mar 2004 00:52:07 -0000 1.84
@@ -134,8 +134,6 @@
_talkSpeed = 100;
}
- // XXX check master_volume value
-
// ensure text is always on when voice is off
if (!_sound->speechOn()) {
_subtitles = true;
@@ -143,7 +141,7 @@
}
void QueenEngine::readOptionSettings() {
- // XXX master_volume
+ _music->setVolume(ConfMan.getInt("music_volume"));
_sound->musicToggle(!ConfMan.getBool("music_mute"));
_sound->sfxToggle(!ConfMan.getBool("sfx_mute"));
_talkSpeed = ConfMan.getInt("talkspeed");
@@ -153,7 +151,7 @@
}
void QueenEngine::writeOptionSettings() {
- // XXX master_volume
+ ConfMan.set("music_volume", _music->volume());
ConfMan.set("music_mute", !_sound->musicOn());
ConfMan.set("sfx_mute", !_sound->sfxOn());
ConfMan.set("talkspeed", _talkSpeed);
More information about the Scummvm-git-logs
mailing list