void MidiDecoder::setVolume(int volume) { d->volume = volume; if (d->initialized && !d->muted) mid_song_set_volume(d->song, d->volume * 2); emit volumeChanged(d->volume); }
void MidiDecoder::setMuted(bool mute) { d->muted = mute; if (d->initialized) mid_song_set_volume(d->song, mute ? 0 : d->volume * 2); emit volumeMuted(d->muted); }
static void *timidity_open (const char *file) { struct timidity_data *data = make_timidity_data(file); if(data->midisong) { data->length = mid_song_get_total_time(data->midisong); } if(data->midisong) { debug ("Opened file %s", file); mid_song_set_volume(data->midisong, options_get_int("TiMidity_Volume")); mid_song_start(data->midisong); } return data; }
void MidiDecoder::start() { if (!d->initialized) { QIODevice::open(QIODevice::ReadWrite | QIODevice::Unbuffered); d->options.rate = d->outputInfo.frequency; d->options.format = MID_AUDIO_S16LSB; // 16 d->options.channels = d->outputInfo.channels; d->options.buffer_size = MIDI_BUFFER_SIZE / (16 * 2 / 8); d->midiStream = mid_istream_open_callbacks(midiReadCallback, midiCloseCallback, this); d->song = mid_song_load(d->midiStream, &d->options); if (d->song != 0) { d->state = QtopiaMedia::Playing; d->length = mid_song_get_total_time(d->song); emit lengthChanged(d->length); mid_song_set_volume(d->song, d->muted ? 0 : d->volume * 2); mid_song_start(d->song); d->initialized = true; } else { qLog(Media) << "MidiDecoder::start(); Failed to load MIDI file"; d->state = QtopiaMedia::Error; } } else d->state = QtopiaMedia::Playing; if (d->initialized) { emit readyRead(); emit playerStateChanged(d->state); } }
void MusicDriver_LibTimidity::SetVolume(byte vol) { if (_midi.song != NULL) mid_song_set_volume(_midi.song, vol); }