예제 #1
0
s3eResult Resume(int i)
{
    if (g_UseSoundPool)
        return s3eSoundPoolSampleResume(g_Samples[i]);
    else
        return s3eSoundChannelResume(i);
}
예제 #2
0
bool COggVorbisFileHelper::set_current_timepos( double pos )
{
	if(vf.datasource && vf.seekable)
	{
		if(nStatus == OH_PLAYING)
		{
			s3eSoundChannelPause(nSoundChannel);
			s3eDeviceYield(1);
#if defined(HAVE_PTHREAD)
			if(mDecThread.thread_status == CThread::TRUNNING)	pthread_mutex_lock(&mutex1);
#endif
			ov_time_seek_func(&vf,pos);
			current_time = pos;
			current_sample = (ogg_int64_t) (ov_pcm_tell(&vf) * dResampleFactor*get_nChannels());
#if defined(HAVE_PTHREAD)
			if(mDecThread.thread_status == CThread::TRUNNING)	pthread_mutex_unlock(&mutex1);
#endif
			nStatus = OH_BUFFERING;
			mDecBuffer->Clear();
			Wait_counter(0);
			s3eSoundChannelResume(nSoundChannel);
		}
		else
		{
#if defined(HAVE_PTHREAD)
			if(mDecThread.thread_status == CThread::TRUNNING)	pthread_mutex_lock(&mutex1);
#endif
			ov_time_seek_func(&vf,pos);
			current_time = pos;
			current_sample = (ogg_int64_t) (ov_pcm_tell(&vf) * dResampleFactor*get_nChannels());
#if defined(HAVE_PTHREAD)
			if(mDecThread.thread_status == CThread::TRUNNING)	pthread_mutex_unlock(&mutex1);
#endif
			mDecBuffer->Clear();
		}

		return true;
	}
	return false;
}
예제 #3
0
bool COggVorbisFileHelper::resume()
{
	s3eSoundChannelResume(nSoundChannel);
	nStatus = OH_PLAYING;
	return true;
}
예제 #4
0
	void SimpleAudioEngine::resumeEffect(unsigned int nSoundId)
	{
		s3eSoundChannelResume(nSoundId);
	}