Updated LTR Standard decoder state to new architecture to support

per-call recording and accurate state tracking.

Resolved issue with ThreadPoolManager limiting total number of scheduled
tasks (removed limiter - original intent is now OBE)

Updated ChannelState to better handle auxiliary decoder decode events,
so that when a fleetsync ident is at the end of the transmission, the
decode doesn't kick the channel back into a call state after it has
faded, causing static bursts and additional empty recordings.

Updated recording file name to include millisecond level precision, to
further avoid duplicate recording names
This commit is contained in:
denny
2015-09-26 07:37:40 -04:00
parent 9c69733034
commit 507ae5255e
11 changed files with 142 additions and 146 deletions

View File

@@ -43,6 +43,8 @@ public class Fleetsync2DecoderState extends DecoderState
private String mMessage;
private String mMessageType;
private long mFrequency;
public Fleetsync2DecoderState( AliasList aliasList )
{
@@ -158,14 +160,14 @@ public class Fleetsync2DecoderState extends DecoderState
}
FleetsyncCallEvent fsCallEvent =
FleetsyncCallEvent.getFleetsync2Event( fleetsync );
FleetsyncCallEvent.getFleetsync2Event( fleetsync, mFrequency );
fsCallEvent.setAliasList( getAliasList() );
broadcast( fsCallEvent );
/* Broadcast decode event so that the channel state will
* kick in and reset everything */
* kick in and reset everything after a short delay */
broadcast( new DecoderStateEvent( this, Event.DECODE, state ) );
}
}
@@ -248,6 +250,9 @@ public class Fleetsync2DecoderState extends DecoderState
case RESET:
resetState();
break;
case SOURCE_FREQUENCY:
mFrequency = event.getFrequency();
break;
default:
break;
}

View File

@@ -24,14 +24,19 @@ import alias.AliasList;
public class FleetsyncCallEvent extends CallEvent
{
private long mFrequency = 0;
public FleetsyncCallEvent( CallEventType callEventType,
AliasList aliasList,
String fromID,
String toID,
String details )
String details,
long frequency )
{
super( DecoderType.FLEETSYNC2, callEventType,
aliasList, fromID, toID, details );
mFrequency = frequency;
}
private Alias getAlias( String ident )
@@ -65,7 +70,7 @@ public class FleetsyncCallEvent extends CallEvent
@Override
public long getFrequency()
{
return 0;
return mFrequency;
}
public static class Builder
@@ -78,6 +83,7 @@ public class FleetsyncCallEvent extends CallEvent
private String mFromID;
private String mToID;
private String mDetails;
private long mFrequency;
public Builder( CallEventType callEventType )
{
@@ -89,6 +95,12 @@ public class FleetsyncCallEvent extends CallEvent
mAliasList = aliasList;
return this;
}
public Builder frequency( long frequency )
{
mFrequency = frequency;
return this;
}
public Builder from( String val )
{
@@ -123,11 +135,12 @@ public class FleetsyncCallEvent extends CallEvent
builder.mAliasList,
builder.mFromID,
builder.mToID,
builder.mDetails );
builder.mDetails,
builder.mFrequency );
}
public static FleetsyncCallEvent
getFleetsync2Event( FleetsyncMessage message )
public static FleetsyncCallEvent getFleetsync2Event(
FleetsyncMessage message, long frequency )
{
CallEventType type = CallEventType.UNKNOWN;
StringBuilder sbDetails = new StringBuilder();
@@ -176,6 +189,7 @@ public class FleetsyncCallEvent extends CallEvent
{
return new FleetsyncCallEvent.Builder( type )
.details( sbDetails.toString() )
.frequency( frequency )
.from( message.getFromID() )
.build();
}
@@ -183,6 +197,7 @@ public class FleetsyncCallEvent extends CallEvent
{
return new FleetsyncCallEvent.Builder( type )
.details( sbDetails.toString() )
.frequency( frequency )
.from( message.getFromID() )
.to( message.getToID() )
.build();