From 1fd9b0fbcb06a9ef4afe08c94615a7c1da8c8f7d Mon Sep 17 00:00:00 2001 From: Denny Sheirer Date: Sun, 2 Jan 2022 09:01:32 -0500 Subject: [PATCH] Resolves #1130 - restores real time PPM measured frequency error broadcasts from DMR, P25P1 and P2 decoders. (#1131) Co-authored-by: Dennis Sheirer --- .../module/decode/dmr/DMRDecoder.java | 37 +++++++++++-------- .../decode/p25/phase1/P25P1Decoder.java | 31 ++++++++-------- .../decode/p25/phase2/P25P2Decoder.java | 31 ++++++++-------- 3 files changed, 51 insertions(+), 48 deletions(-) diff --git a/src/main/java/io/github/dsheirer/module/decode/dmr/DMRDecoder.java b/src/main/java/io/github/dsheirer/module/decode/dmr/DMRDecoder.java index d5893275..e225b0d5 100644 --- a/src/main/java/io/github/dsheirer/module/decode/dmr/DMRDecoder.java +++ b/src/main/java/io/github/dsheirer/module/decode/dmr/DMRDecoder.java @@ -1,3 +1,22 @@ +/* + * ***************************************************************************** + * Copyright (C) 2014-2022 Dennis Sheirer + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see + * **************************************************************************** + */ + package io.github.dsheirer.module.decode.dmr; import io.github.dsheirer.dsp.filter.FilterFactory; @@ -42,7 +61,6 @@ public class DMRDecoder extends FeedbackDecoder implements ISourceEventListener, private Broadcaster mDibitBroadcaster = new Broadcaster<>(); private DibitToByteBufferAssembler mByteBufferAssembler = new DibitToByteBufferAssembler(300); private DMRMessageProcessor mMessageProcessor; - private Listener mSourceEventListener; private ComplexFeedForwardGainControl mAGC = new ComplexFeedForwardGainControl(32); private Map mBasebandFilters = new HashMap<>(); private ComplexFIRFilter2 mBasebandFilter; @@ -283,7 +301,7 @@ public class DMRDecoder extends FeedbackDecoder implements ISourceEventListener, @Override public void setSourceEventListener(Listener listener) { - mSourceEventListener = listener; + super.setSourceEventListener(listener); mPowerMonitor.setSourceEventListener(listener); } @@ -293,7 +311,7 @@ public class DMRDecoder extends FeedbackDecoder implements ISourceEventListener, @Override public void removeSourceEventListener() { - mSourceEventListener = null; + super.removeSourceEventListener(); mPowerMonitor.setSourceEventListener(null); } @@ -310,19 +328,6 @@ public class DMRDecoder extends FeedbackDecoder implements ISourceEventListener, }; } - /** - * Broadcasts the source event to an optional registered listener. This method should primarily be used to - * issue frequency correction requests to the channel source. - * @param sourceEvent to broadcast - */ - public void broadcast(SourceEvent sourceEvent) - { - if(mSourceEventListener != null) - { - mSourceEventListener.receive(sourceEvent); - } - } - /** * Listener interface to receive reusable complex buffers */ diff --git a/src/main/java/io/github/dsheirer/module/decode/p25/phase1/P25P1Decoder.java b/src/main/java/io/github/dsheirer/module/decode/p25/phase1/P25P1Decoder.java index 9e83e35a..d68298f2 100644 --- a/src/main/java/io/github/dsheirer/module/decode/p25/phase1/P25P1Decoder.java +++ b/src/main/java/io/github/dsheirer/module/decode/p25/phase1/P25P1Decoder.java @@ -1,23 +1,20 @@ /* + * ***************************************************************************** + * Copyright (C) 2014-2022 Dennis Sheirer * - * * ****************************************************************************** - * * Copyright (C) 2014-2020 Dennis Sheirer - * * - * * This program is free software: you can redistribute it and/or modify - * * it under the terms of the GNU General Public License as published by - * * the Free Software Foundation, either version 3 of the License, or - * * (at your option) any later version. - * * - * * This program is distributed in the hope that it will be useful, - * * but WITHOUT ANY WARRANTY; without even the implied warranty of - * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * * GNU General Public License for more details. - * * - * * You should have received a copy of the GNU General Public License - * * along with this program. If not, see - * * ***************************************************************************** + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see + * **************************************************************************** */ package io.github.dsheirer.module.decode.p25.phase1; @@ -58,12 +55,14 @@ public abstract class P25P1Decoder extends FeedbackDecoder implements ISourceEve @Override public void setSourceEventListener(Listener listener ) { + super.setSourceEventListener(listener); mPowerMonitor.setSourceEventListener(listener); } @Override public void removeSourceEventListener() { + super.removeSourceEventListener(); mPowerMonitor.setSourceEventListener(null); } diff --git a/src/main/java/io/github/dsheirer/module/decode/p25/phase2/P25P2Decoder.java b/src/main/java/io/github/dsheirer/module/decode/p25/phase2/P25P2Decoder.java index 0d606d99..0bafa507 100644 --- a/src/main/java/io/github/dsheirer/module/decode/p25/phase2/P25P2Decoder.java +++ b/src/main/java/io/github/dsheirer/module/decode/p25/phase2/P25P2Decoder.java @@ -1,23 +1,20 @@ /* + * ***************************************************************************** + * Copyright (C) 2014-2022 Dennis Sheirer * - * * ****************************************************************************** - * * Copyright (C) 2014-2020 Dennis Sheirer - * * - * * This program is free software: you can redistribute it and/or modify - * * it under the terms of the GNU General Public License as published by - * * the Free Software Foundation, either version 3 of the License, or - * * (at your option) any later version. - * * - * * This program is distributed in the hope that it will be useful, - * * but WITHOUT ANY WARRANTY; without even the implied warranty of - * * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * * GNU General Public License for more details. - * * - * * You should have received a copy of the GNU General Public License - * * along with this program. If not, see - * * ***************************************************************************** + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see + * **************************************************************************** */ package io.github.dsheirer.module.decode.p25.phase2; @@ -60,12 +57,14 @@ public abstract class P25P2Decoder extends FeedbackDecoder implements ISourceEve @Override public void setSourceEventListener(Listener listener ) { + super.setSourceEventListener(listener); mPowerMonitor.setSourceEventListener(listener); } @Override public void removeSourceEventListener() { + super.removeSourceEventListener(); mPowerMonitor.setSourceEventListener(null); }