From b86cd1bc3cc551fec5449ec9704e7223ffcdf990 Mon Sep 17 00:00:00 2001 From: ilyacodes Date: Sat, 13 Apr 2024 16:52:16 -0400 Subject: [PATCH] EDACS: agency call and fleet call are mutually-exclusive --- src/edacs-fme.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/src/edacs-fme.c b/src/edacs-fme.c index f0fea6f..880f2de 100644 --- a/src/edacs-fme.c +++ b/src/edacs-fme.c @@ -77,6 +77,9 @@ int is_agency_call_group(int afs, dsd_state * state) int is_fleet_call_group(int afs, dsd_state * state) { + if (is_agency_call_group(afs, state)) + return 0; + return (afs & state->edacs_s_mask) == 0; } @@ -1316,11 +1319,11 @@ void edacs(dsd_opts * opts, dsd_state * state) state->lastsrc = lid; //Call type for state - state->edacs_vc_call_type = EDACS_IS_VOICE | EDACS_IS_GROUP; - if (is_digital == 1) state->edacs_vc_call_type |= EDACS_IS_DIGITAL; - if (is_emergency == 1) state->edacs_vc_call_type |= EDACS_IS_EMERGENCY; - if (is_agency_call_group(group, state)) state->edacs_vc_call_type |= EDACS_IS_AGENCY_CALL; - if (is_fleet_call_group(group, state)) state->edacs_vc_call_type |= EDACS_IS_FLEET_CALL; + state->edacs_vc_call_type = EDACS_IS_VOICE | EDACS_IS_GROUP; + if (is_digital == 1) state->edacs_vc_call_type |= EDACS_IS_DIGITAL; + if (is_emergency == 1) state->edacs_vc_call_type |= EDACS_IS_EMERGENCY; + if (is_agency_call_group(group, state)) state->edacs_vc_call_type |= EDACS_IS_AGENCY_CALL; + else if (is_fleet_call_group(group, state)) state->edacs_vc_call_type |= EDACS_IS_FLEET_CALL; char mode[8]; //allow, block, digital enc sprintf (mode, "%s", "");