From 47f36590fb143e10bddce9cdc5690a6f3f6a6aac Mon Sep 17 00:00:00 2001 From: denny Date: Sun, 13 Dec 2015 09:45:52 -0500 Subject: [PATCH] Resolved issue with audio cycling between channels every 2 seconds when audio mixer has stereo channel output. --- src/audio/AudioEvent.java | 1 + src/audio/AudioManager.java | 1 + src/audio/output/MonoAudioOutput.java | 5 +++++ src/audio/output/StereoAudioOutput.java | 5 +++++ 4 files changed, 12 insertions(+) diff --git a/src/audio/AudioEvent.java b/src/audio/AudioEvent.java index 146d31d2..ca166059 100644 --- a/src/audio/AudioEvent.java +++ b/src/audio/AudioEvent.java @@ -29,6 +29,7 @@ public class AudioEvent AUDIO_UNSQUELCHED, AUDIO_STARTED, AUDIO_STOPPED, + AUDIO_CONTINUATION, AUDIO_CONFIGURATION_CHANGE_STARTED, AUDIO_CONFIGURATION_CHANGE_COMPLETE; } diff --git a/src/audio/AudioManager.java b/src/audio/AudioManager.java index cb878e78..90bb681e 100644 --- a/src/audio/AudioManager.java +++ b/src/audio/AudioManager.java @@ -319,6 +319,7 @@ public class AudioManager implements Listener, IAudioController { case AUDIO_STARTED: case AUDIO_STOPPED: + case AUDIO_CONTINUATION: mAudioStoppedTime = System.currentTimeMillis(); break; default: diff --git a/src/audio/output/MonoAudioOutput.java b/src/audio/output/MonoAudioOutput.java index 5715fa78..0f4d2674 100644 --- a/src/audio/output/MonoAudioOutput.java +++ b/src/audio/output/MonoAudioOutput.java @@ -51,6 +51,7 @@ public class MonoAudioOutput extends AudioOutput private AudioEvent mAudioStartEvent; private AudioEvent mAudioStopEvent; + private AudioEvent mAudioContinuationEvent; public MonoAudioOutput( Mixer mixer ) { @@ -60,6 +61,8 @@ public class MonoAudioOutput extends AudioOutput getChannelName() ); mAudioStopEvent = new AudioEvent( AudioEvent.Type.AUDIO_STOPPED, getChannelName() ); + mAudioContinuationEvent = new AudioEvent( AudioEvent.Type.AUDIO_CONTINUATION, + getChannelName() ); try { @@ -130,6 +133,8 @@ public class MonoAudioOutput extends AudioOutput if( packets.size() > 0 ) { + broadcast( mAudioContinuationEvent ); + for( AudioPacket packet: packets ) { if( mCanProcessAudio ) diff --git a/src/audio/output/StereoAudioOutput.java b/src/audio/output/StereoAudioOutput.java index a8182359..db54e80f 100644 --- a/src/audio/output/StereoAudioOutput.java +++ b/src/audio/output/StereoAudioOutput.java @@ -51,6 +51,7 @@ public class StereoAudioOutput extends AudioOutput private AudioEvent mAudioStartEvent; private AudioEvent mAudioStopEvent; + private AudioEvent mAudioContinuationEvent; private MixerChannel mMixerChannel; @@ -66,6 +67,8 @@ public class StereoAudioOutput extends AudioOutput getChannelName() ); mAudioStopEvent = new AudioEvent( AudioEvent.Type.AUDIO_STOPPED, getChannelName() ); + mAudioContinuationEvent = new AudioEvent( AudioEvent.Type.AUDIO_CONTINUATION, + getChannelName() ); try { @@ -166,6 +169,8 @@ public class StereoAudioOutput extends AudioOutput if( packets.size() > 0 ) { + broadcast( mAudioContinuationEvent ); + for( AudioPacket packet: packets ) { if( mCanProcessAudio )