void AudioManager::play_sample_playlist(SamplePlaylist *playlist, float volume) { AudioSource *src; if (!playlist->started){ src = request_source(&playlist->source_idx); if (src){ playlist->it = playlist->samples.begin(); src->set_sample((*playlist->it)); src->set_volume(volume); src->set_playback_volume(volume); src->play(); playlist->it++; playlist->started = true; } } else{ src = get_audio_source(playlist->source_idx); if (src && !src->is_playing()){ if (!(playlist->it == playlist->samples.end())){ src->set_sample((*playlist->it)); src->set_volume(volume); src->set_playback_volume(volume); src->play(); playlist->it++; } } } if (playlist->loop && playlist->it == playlist->samples.end()) playlist->it = playlist->samples.begin(); }
void AudioManager::stop_source(int source_idx) { if (source_idx < 0) return; AudioSource *src = get_audio_source(source_idx); if (src && src->is_playing()) src->stop(); }
void routing_show() { int count,i; for(count=1;count<=3;count++) { printf("%3s: ",dests[count-1]); i=get_audio_source(count); printf("Audio: "); if (count == 1) printf("%3s ",srcs_tv[i]); else if (count == 2) printf("%3s ",srcs_vcr[i]); else if (count == 3) printf("%3s ",srcs_aux[i]); printf("(%d) ",i); i=get_video_source(count); printf(",Video: "); if (count == 1) printf("%3s ",srcs_tv[i]); else if (count == 2) printf("%3s ",srcs_vcr[i]); else if (count == 3) printf("%3s ",srcs_aux[i]); printf("(%d)",i); printf("\n"); } }