From d90e1490217357eff3d1127da4837305f8d92099 Mon Sep 17 00:00:00 2001 From: Denny Sheirer Date: Sun, 6 Jan 2019 07:47:08 -0500 Subject: [PATCH] Adds support to MPT1327 decoder for rotating control channels. (#477) --- .../dsheirer/module/decode/DecoderFactory.java | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/main/java/io/github/dsheirer/module/decode/DecoderFactory.java b/src/main/java/io/github/dsheirer/module/decode/DecoderFactory.java index a6f88e9f..53cb6395 100644 --- a/src/main/java/io/github/dsheirer/module/decode/DecoderFactory.java +++ b/src/main/java/io/github/dsheirer/module/decode/DecoderFactory.java @@ -190,7 +190,8 @@ public class DecoderFactory Sync sync = mptConfig.getSync(); modules.add(new MPT1327Decoder(sync)); modules.add(new AudioModule()); - if(channel.getSourceConfiguration().getSourceType() == SourceType.TUNER) + SourceType sourceType = channel.getSourceConfiguration().getSourceType(); + if(sourceType == SourceType.TUNER || sourceType == SourceType.TUNER_MULTIPLE_FREQUENCIES) { modules.add(new FMDemodulatorModule(FM_CHANNEL_BANDWIDTH, DEMODULATED_AUDIO_SAMPLE_RATE)); } @@ -207,6 +208,15 @@ public class DecoderFactory { modules.add(new MPT1327DecoderState(channelType, timeout)); } + + //Add a channel rotation monitor when we have multiple control channel frequencies specified + if(channel.getSourceConfiguration() instanceof SourceConfigTunerMultipleFrequency && + ((SourceConfigTunerMultipleFrequency)channel.getSourceConfiguration()).hasMultipleFrequencies()) + { + List activeStates = new ArrayList<>(); + activeStates.add(State.CONTROL); + modules.add(new ChannelRotationMonitor(activeStates, userPreferences)); + } break; case PASSPORT: modules.add(new PassportDecoder(decodeConfig));