Esempio n. 1
0
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);
}
Esempio n. 2
0
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);
}
Esempio n. 3
0
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;
}
Esempio n. 4
0
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);
    }
}
Esempio n. 5
0
void MusicDriver_LibTimidity::SetVolume(byte vol)
{
    if (_midi.song != NULL) mid_song_set_volume(_midi.song, vol);
}