enabled MIDI volume changes

svn-id: r24627
This commit is contained in:
Gregory Montoir 2006-11-05 13:00:20 +00:00
parent 05dcf9c11d
commit 424e9e362e
7 changed files with 25 additions and 48 deletions

View file

@ -21,7 +21,6 @@
*/
#include "common/stdafx.h"
#include "common/mutex.h"
#include "common/stream.h"
#include "sound/midiparser.h"
@ -31,7 +30,7 @@
namespace Touche {
MidiPlayer::MidiPlayer(MidiDriver *driver)
: _masterVolume(255), _isPlaying(false), _driver(driver), _parser(0), _midiData(0) {
: _driver(driver), _parser(0), _midiData(0), _isLooping(false), _isPlaying(false), _masterVolume(0) {
assert(_driver);
memset(_channelsTable, 0, sizeof(_channelsTable));
memset(_channelsVolume, 0, sizeof(_channelsVolume));
@ -75,12 +74,12 @@ void MidiPlayer::updateTimer() {
_mutex.unlock();
}
void MidiPlayer::adjustVolume(int diff) {
setVolume(_masterVolume + diff);
}
void MidiPlayer::setVolume(int volume) {
if (volume < 0) {
volume = 0;
} else if (volume > 255) {
volume = 255;
}
_masterVolume = CLIP(volume, 0, 255);
for (int i = 0; i < NUM_CHANNELS; ++i) {
if (_channelsTable[i]) {
_channelsTable[i]->volume(_channelsVolume[i] * _masterVolume / 255);