diff --git a/src/main/java/io/github/dsheirer/module/decode/dmr/audio/DMRAudioModule.java b/src/main/java/io/github/dsheirer/module/decode/dmr/audio/DMRAudioModule.java index 21c423dbf..1f8d54f59 100644 --- a/src/main/java/io/github/dsheirer/module/decode/dmr/audio/DMRAudioModule.java +++ b/src/main/java/io/github/dsheirer/module/decode/dmr/audio/DMRAudioModule.java @@ -1,6 +1,6 @@ /* * ***************************************************************************** - * Copyright (C) 2014-2022 Dennis Sheirer + * Copyright (C) 2014-2023 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 @@ -111,11 +111,6 @@ public void receive(IMessage message) { mEncryptedCallStateEstablished = true; mEncryptedCall = false; - List frames = vm.getAMBEFrames(); - for(byte[] frame: frames) - { - processAudio(frame, message.getTimestamp()); - } } //Both Motorola and Hytera signal their Basic Privacy (BP) scrambling in some of the Voice B-F frames //in the EMB field. @@ -126,20 +121,6 @@ else if(!mEncryptedCallStateEstablished && message instanceof VoiceEMBMessage vo mEncryptedCallStateEstablished = true; mEncryptedCall = voiceMessage.getEMB().isEncrypted(); } - - List frames = voiceMessage.getAMBEFrames(); - for(byte[] frame: frames) - { - processAudio(frame, message.getTimestamp()); - } - } - else if(message instanceof VoiceMessage voiceMessage) - { - List frames = voiceMessage.getAMBEFrames(); - for(byte[] frame: frames) - { - processAudio(frame, message.getTimestamp()); - } } else if(!mEncryptedCallStateEstablished && message instanceof VoiceHeader voiceHeader) { @@ -163,10 +144,23 @@ else if(!mEncryptedCallStateEstablished && message instanceof AbstractVoiceChann mEncryptedCallStateEstablished = true; mEncryptedCall = serviceOptions.isEncrypted(); } + + if(message instanceof VoiceMessage voiceMessage) + { + List frames = voiceMessage.getAMBEFrames(); + for(byte[] frame: frames) + { + processAudio(frame, message.getTimestamp()); + } + } else if(message instanceof Terminator) { reset(); } + else if(message instanceof LCMessage lc) + { + int a = 0; + } } } diff --git a/src/main/java/io/github/dsheirer/module/decode/dmr/message/data/lc/full/motorola/CapacityPlusVoiceChannelUser.java b/src/main/java/io/github/dsheirer/module/decode/dmr/message/data/lc/full/motorola/CapacityPlusVoiceChannelUser.java index 2a8da6c51..b6641a27e 100644 --- a/src/main/java/io/github/dsheirer/module/decode/dmr/message/data/lc/full/motorola/CapacityPlusVoiceChannelUser.java +++ b/src/main/java/io/github/dsheirer/module/decode/dmr/message/data/lc/full/motorola/CapacityPlusVoiceChannelUser.java @@ -21,13 +21,13 @@ import io.github.dsheirer.bits.CorrectedBinaryMessage; import io.github.dsheirer.module.decode.dmr.message.IServiceOptionsProvider; -import io.github.dsheirer.module.decode.dmr.message.data.lc.full.FullLCMessage; +import io.github.dsheirer.module.decode.dmr.message.data.lc.full.AbstractVoiceChannelUser; import io.github.dsheirer.module.decode.dmr.message.type.CapacityPlusServiceOptions; /** * Any Capacity Plus Voice Channel User link control message that contains vendor-specific service options. */ -public abstract class CapacityPlusVoiceChannelUser extends FullLCMessage implements IServiceOptionsProvider +public abstract class CapacityPlusVoiceChannelUser extends AbstractVoiceChannelUser implements IServiceOptionsProvider { private static final int[] SERVICE_OPTIONS = new int[]{16, 17, 18, 19, 20, 21, 22, 23}; //Reed Solomon FEC: 72-95