Beispiel #1
0
bool CThreadMessages::SendThreadMessage(int Identifier)
{
	if( !Identifier ) return false;
	MESSAGE msg = {0};
	msg.ID = Identifier;
	return SendThreadMessage(msg);
}
Beispiel #2
0
bool CThreadMessages::SendThreadMessage(PCMessageParams Message)
{
	if( !Message ) return false;
	MESSAGE msg = {0};
	msg.ID = Message->ID;
	msg.params = Message;
	return SendThreadMessage(msg);
}
Beispiel #3
0
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);
}
Beispiel #4
0
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;
}
Beispiel #5
0
void Player::Stop() {
  if (state_ == kStateStopped) return;
  SendThreadMessage(WM_SP_STOP);
}
Beispiel #6
0
void Player::Pause() {
  if (state_ == kStatePaused) return;
  SendThreadMessage(WM_SP_PAUSE);
}