mirror of
https://github.com/DSheirer/sdrtrunk.git
synced 2026-11-12 16:47:31 -05:00
P25 Decoder - improved LSM decoding and IMBE audio decoding. Includes redesigned audio output class to handle automatic start/stop of audio playback based on availability of audio data.
This commit is contained in:
@@ -52,8 +52,8 @@ import source.tuner.frequency.AutomaticFrequencyControl;
|
||||
import source.tuner.frequency.FrequencyCorrectionControl;
|
||||
import alias.AliasList;
|
||||
import audio.IAudioOutput;
|
||||
import audio.IAudioTypeListener;
|
||||
import audio.SquelchListener;
|
||||
import audio.inverted.IAudioTypeListener;
|
||||
import controller.ResourceManager;
|
||||
import controller.ThreadPoolManager.ThreadType;
|
||||
import controller.activity.CallEvent;
|
||||
|
||||
@@ -35,10 +35,10 @@ import properties.SystemProperties;
|
||||
import sample.Broadcaster;
|
||||
import sample.Listener;
|
||||
import alias.AliasList;
|
||||
import audio.AudioType;
|
||||
import audio.IAudioTypeListener;
|
||||
import audio.SquelchListener;
|
||||
import audio.SquelchListener.SquelchState;
|
||||
import audio.inverted.AudioType;
|
||||
import audio.inverted.IAudioTypeListener;
|
||||
import controller.activity.CallEvent;
|
||||
import controller.activity.CallEvent.CallEventType;
|
||||
import controller.activity.CallEventAliasCellRenderer;
|
||||
@@ -294,7 +294,7 @@ public abstract class ChannelState implements Listener<Message>
|
||||
{
|
||||
/* Let all CALL state changes go through in order to update the fade
|
||||
* timer, otherwise, don't update the state if it hasn't changed */
|
||||
if( mState != state || state == State.CALL )
|
||||
if( mState != state || state == State.CALL || state == State.DATA || state == State.ENCRYPTED )
|
||||
{
|
||||
if( mState.canChangeTo( state ) )
|
||||
{
|
||||
@@ -314,6 +314,10 @@ public abstract class ChannelState implements Listener<Message>
|
||||
mTimerService.stopResetTimer();
|
||||
mTimerService.startFadeTimer();
|
||||
break;
|
||||
case ENCRYPTED:
|
||||
setSquelchState( SquelchState.SQUELCH );
|
||||
mTimerService.stopResetTimer();
|
||||
mTimerService.startFadeTimer();
|
||||
case NO_TUNER:
|
||||
mTimerService.stopResetTimer();
|
||||
if( getProcessingChain().getChannel()
|
||||
@@ -569,12 +573,7 @@ public abstract class ChannelState implements Listener<Message>
|
||||
@Override
|
||||
public boolean canChangeTo( State state )
|
||||
{
|
||||
return state == IDLE ||
|
||||
state == CALL ||
|
||||
state == CONTROL ||
|
||||
state == DATA ||
|
||||
state == FADE ||
|
||||
state == NO_TUNER;
|
||||
return true;
|
||||
}
|
||||
},
|
||||
CALL( "CALL" ) {
|
||||
@@ -584,6 +583,7 @@ public abstract class ChannelState implements Listener<Message>
|
||||
return state == CALL ||
|
||||
state == CONTROL ||
|
||||
state == DATA ||
|
||||
state == ENCRYPTED ||
|
||||
state == FADE;
|
||||
}
|
||||
},
|
||||
@@ -594,6 +594,7 @@ public abstract class ChannelState implements Listener<Message>
|
||||
return state == CALL ||
|
||||
state == CONTROL ||
|
||||
state == DATA ||
|
||||
state == State.ENCRYPTED ||
|
||||
state == FADE;
|
||||
}
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user