コード例 #1
0
ファイル: audio_manager.cpp プロジェクト: Gordath/mars2030
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();
}
コード例 #2
0
ファイル: audio_manager.cpp プロジェクト: Gordath/mars2030
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();
}