bool CThreadMessages::SendThreadMessage(int Identifier) { if( !Identifier ) return false; MESSAGE msg = {0}; msg.ID = Identifier; return SendThreadMessage(msg); }
bool CThreadMessages::SendThreadMessage(PCMessageParams Message) { if( !Message ) return false; MESSAGE msg = {0}; msg.ID = Message->ID; msg.params = Message; return SendThreadMessage(msg); }
void Player::Play() { if (state_ == kStatePlaying) return; auto output_sr = audio_interface_->wave_format().nSamplesPerSec; auto input_sr = synth_->sample_rate_; SetEvent(player_event); SendThreadMessage(WM_SP_PLAY); }
void Player::Deinitialize() { if (initialized_ == false) return; Stop(); //force close SetEvent(player_event); SendThreadMessage(WM_SP_QUIT); WaitForSingleObject(thread_handle,INFINITE); CloseHandle(thread_handle); CloseHandle(player_event); DeleteCriticalSection(&cs); DeleteCriticalSection(&vis_cs); synth_->Deinitialize(); SafeDeleteArray(&mix_buffer); SafeDeleteArray(&output_buffer); initialized_ = false; }
void Player::Stop() { if (state_ == kStateStopped) return; SendThreadMessage(WM_SP_STOP); }
void Player::Pause() { if (state_ == kStatePaused) return; SendThreadMessage(WM_SP_PAUSE); }