ULONG gw_KillAudio( void ) { struct AHIBase* AHIBase = (struct AHIBase*) REG_A6; return KillAudio( AHIBase ); }
ULONG gw_KillAudio( struct _Regs* regs ) { struct AHIBase* AHIBase = (struct AHIBase*) GET_LONG( regs->a6 ); return KillAudio( AHIBase ); }
AudioOutputPulseAudio::~AudioOutputPulseAudio() { KillAudio(); if (pcontext) { pa_context_unref(pcontext); pcontext = NULL; } }
void LoopingSound::SetMoving( bool bNew ) { if (m_bDisabled) return; if (bNew == m_bMoving) return; //nothing really changed m_bMoving = bNew; KillAudio(); if (m_bMoving) { if (m_moveStart.empty()) { //there is no move start sound, so just play the looping moving sound right now PlayMoveSound(); } else { //play a starting sound first m_transitionSoundHandle = GetAudioManager()->Play(m_moveStart, false, false, m_bAddBasePath); GetAudioManager()->SetVol(m_transitionSoundHandle, m_volume); m_waitTimer = GetTick(TIMER_SYSTEM)+m_moveStartTimeMS; m_state = STATE_MOVE_START; } } else { //stop moving and play the idle sound if (m_moveEnd.empty()) { PlayIdleSound(); } else { //play a stopping sound first m_transitionSoundHandle = GetAudioManager()->Play(m_moveEnd, false, false, m_bAddBasePath); GetAudioManager()->SetVol(m_transitionSoundHandle, m_volume); m_waitTimer = GetTick(TIMER_SYSTEM)+m_moveEndTimeMS; m_state = STATE_MOVE_END; } } }
void LoopingSound::SetDisabled( bool bDisabled ) { if (bDisabled == m_bDisabled) return; //no change if (bDisabled) { KillAudio(); m_bMoving = false; } else { m_state = STATE_IDLE; PlayIdleSound(); } m_bDisabled = bDisabled; }
ULONG ASMCALL gw_KillAudio( REG(a6, struct AHIBase* AHIBase) ) { return KillAudio( AHIBase ); }
LoopingSound::~LoopingSound() { KillAudio(); }
AudioOutputPulseAudio::~AudioOutputPulseAudio() { KillAudio(); }