From 5e46e22721c7ac5eabb951046c6f014990407489 Mon Sep 17 00:00:00 2001 From: Denny Date: Sat, 28 Jan 2017 10:35:12 -0500 Subject: [PATCH] #141 - resolves issue with temporary streaming recordings being generated for aliases that contained broadcast stream channel identifiers, but when no streaming channels were enabled. Resolved second issue where a broadcast channel that is enabled and streaming on application startup then gets disabled by the user and subsequently (persistently) auto restarts and connects. --- src/audio/broadcast/AudioBroadcaster.java | 13 +++++----- src/audio/broadcast/BroadcastModel.java | 31 +++++++++++++++-------- src/audio/broadcast/StreamManager.java | 4 +-- 3 files changed, 29 insertions(+), 19 deletions(-) diff --git a/src/audio/broadcast/AudioBroadcaster.java b/src/audio/broadcast/AudioBroadcaster.java index 050168c8..b90c1684 100644 --- a/src/audio/broadcast/AudioBroadcaster.java +++ b/src/audio/broadcast/AudioBroadcaster.java @@ -40,7 +40,7 @@ public abstract class AudioBroadcaster implements Listener public static final int PROCESSOR_RUN_INTERVAL_MS = 1000; - private ScheduledFuture mScheduledTask; + private ScheduledFuture mRecordingQueueProcessorFuture; private RecordingQueueProcessor mRecordingQueueProcessor = new RecordingQueueProcessor(); private Queue mAudioRecordingQueue = new LinkedTransferQueue<>(); @@ -120,10 +120,10 @@ public abstract class AudioBroadcaster implements Listener { if(mStreaming.compareAndSet(false, true)) { - if(mScheduledTask == null) + if(mRecordingQueueProcessorFuture == null) { - ThreadPool.SCHEDULED.scheduleAtFixedRate(mRecordingQueueProcessor, 0, - PROCESSOR_RUN_INTERVAL_MS, TimeUnit.MILLISECONDS); + mRecordingQueueProcessorFuture = ThreadPool.SCHEDULED.scheduleAtFixedRate(mRecordingQueueProcessor, + 0, PROCESSOR_RUN_INTERVAL_MS, TimeUnit.MILLISECONDS); } } } @@ -135,9 +135,10 @@ public abstract class AudioBroadcaster implements Listener { if(mStreaming.compareAndSet(true, false)) { - if(mScheduledTask != null) + if(mRecordingQueueProcessorFuture != null) { - mScheduledTask.cancel(true); + mRecordingQueueProcessorFuture.cancel(true); + mRecordingQueueProcessorFuture = null; } disconnect(); diff --git a/src/audio/broadcast/BroadcastModel.java b/src/audio/broadcast/BroadcastModel.java index d4b449bf..851a9472 100644 --- a/src/audio/broadcast/BroadcastModel.java +++ b/src/audio/broadcast/BroadcastModel.java @@ -274,10 +274,16 @@ public class BroadcastModel extends AbstractTableModel implements Listener