mirror of
https://github.com/lwvmobile/dsd-fme.git
synced 2026-11-14 01:37:25 -05:00
DMR rc crc7 fix and rc element decode #187; fix/revamp p_clear and p_protect trunking logic; MTL patch; g_dmr patch; Misc;
This commit is contained in:
149
patch/MTL_MONO_MODE.patch
Normal file
149
patch/MTL_MONO_MODE.patch
Normal file
@@ -0,0 +1,149 @@
|
||||
diff --git a/src/dmr_pi.c b/src/dmr_pi.c
|
||||
index 55dfb83..33fb3ba 100644
|
||||
--- a/src/dmr_pi.c
|
||||
+++ b/src/dmr_pi.c
|
||||
@@ -14,6 +14,9 @@ void dmr_pi (dsd_opts * opts, dsd_state * state, uint8_t PI_BYTE[], uint32_t CRC
|
||||
{
|
||||
UNUSED2(opts, CRCCorrect);
|
||||
|
||||
+ //force slot to 0 if using dmr mono handling
|
||||
+ if (opts->dmr_mono == 1) state->currentslot = 0;
|
||||
+
|
||||
if((IrrecoverableErrors == 0))
|
||||
{
|
||||
|
||||
diff --git a/src/dsd_audio2.c b/src/dsd_audio2.c
|
||||
index e149850..219f3f7 100644
|
||||
--- a/src/dsd_audio2.c
|
||||
+++ b/src/dsd_audio2.c
|
||||
@@ -859,6 +859,9 @@ void playSynthesizedVoiceSS3 (dsd_opts * opts, dsd_state * state)
|
||||
memset (stereo_samp2, 0, sizeof(stereo_samp2));
|
||||
memset (stereo_samp3, 0, sizeof(stereo_samp3));
|
||||
|
||||
+ if (opts->dmr_mono == 1)
|
||||
+ memcpy (state->s_r4, state->s_l4, sizeof(state->s_r4));
|
||||
+
|
||||
//dmr enc checkdown for whether or not to fill the stereo sample or not for playback or writing
|
||||
encL = encR = 0;
|
||||
encL = (state->dmr_so >> 6) & 0x1;
|
||||
@@ -941,8 +944,16 @@ void playSynthesizedVoiceSS3 (dsd_opts * opts, dsd_state * state)
|
||||
}
|
||||
|
||||
//flag either left or right as 'enc' to mute if B
|
||||
- if (strcmp(modeL, "B") == 0) encL = 1;
|
||||
- if (strcmp(modeR, "B") == 0) encR = 1;
|
||||
+ if (strcmp(modeL, "B") == 0)
|
||||
+ {
|
||||
+ encL = 1;
|
||||
+ encR = 1;
|
||||
+ }
|
||||
+ if (strcmp(modeR, "B") == 0)
|
||||
+ {
|
||||
+ encR = 1;
|
||||
+ encL = 1;
|
||||
+ }
|
||||
|
||||
//if TG Hold in place, mute anything but that TG #132
|
||||
if (state->tg_hold != 0 && state->tg_hold != TGL) encL = 1;
|
||||
diff --git a/src/dsd_frame.c b/src/dsd_frame.c
|
||||
index 3b2a3e1..ba32618 100644
|
||||
--- a/src/dsd_frame.c
|
||||
+++ b/src/dsd_frame.c
|
||||
@@ -160,7 +160,8 @@ processFrame (dsd_opts * opts, dsd_state * state)
|
||||
sprintf (state->slot2light, " slot2 ");
|
||||
//we can safely open MBE on any MS or mono handling
|
||||
if ((opts->mbe_out_dir[0] != 0) && (opts->mbe_out_f == NULL)) openMbeOutFile (opts, state);
|
||||
- if (opts->p25_trunk == 0) dmrMSBootstrap (opts, state);
|
||||
+ // if (opts->p25_trunk == 0) //line disabled to allow mono mode while trunking
|
||||
+ dmrMSBootstrap (opts, state);
|
||||
}
|
||||
if (opts->dmr_mono == 1 && state->synctype == 32)
|
||||
{
|
||||
diff --git a/src/dsd_main.c b/src/dsd_main.c
|
||||
index eb27948..cf1296a 100644
|
||||
--- a/src/dsd_main.c
|
||||
+++ b/src/dsd_main.c
|
||||
@@ -1568,9 +1568,9 @@ main (int argc, char **argv)
|
||||
}
|
||||
|
||||
#ifdef AERO_BUILD
|
||||
- fprintf (stderr, "Build Version: AW (20231015) \n");
|
||||
+ fprintf (stderr, "Build Version: AW MTL (20240201) \n");
|
||||
#else
|
||||
- fprintf (stderr, "Build Version: AW %s \n", GIT_TAG);
|
||||
+ fprintf (stderr, "Build Version: AW MTL %s \n", GIT_TAG);
|
||||
#endif
|
||||
fprintf (stderr,"MBElib Version: %s\n", versionstr);
|
||||
|
||||
@@ -2218,14 +2218,18 @@ main (int argc, char **argv)
|
||||
opts.mod_qpsk = 0;
|
||||
opts.mod_gfsk = 0;
|
||||
state.rf_mod = 0;
|
||||
- opts.dmr_stereo = 1;
|
||||
- opts.dmr_mono = 0;
|
||||
+ // opts.dmr_stereo = 1;
|
||||
+ // opts.dmr_mono = 0;
|
||||
// opts.setmod_bw = 7000;
|
||||
opts.pulse_digi_rate_out = 8000;
|
||||
opts.pulse_digi_out_channels = 2;
|
||||
- sprintf (opts.output_name, "DMR");
|
||||
-
|
||||
- fprintf (stderr,"Decoding DMR Stereo BS/MS Simplex\n");
|
||||
+ opts.dmr_mono = 1;
|
||||
+ opts.dmr_stereo = 0; //not sure if this will break anything
|
||||
+ state.dmr_stereo = 0; //0
|
||||
+ // opts.setmod_bw = 7000;
|
||||
+ sprintf (opts.output_name, "DMR Mono");
|
||||
+ // fprintf (stderr,"-fr / DMR Mono switch enabled. \n NOTE: Some ENC options in Slot 2 may not work properly.\n");
|
||||
+ fprintf (stderr,"\n Decoding DMR Stereo BS/MS Simplex in Mono Single Slot Only Configuration.\n");
|
||||
}
|
||||
//change ft to only do P25 and DMR (TDMA trunking modes)
|
||||
else if (optarg[0] == 't')
|
||||
@@ -2302,13 +2306,13 @@ main (int argc, char **argv)
|
||||
state.rf_mod = 0; //
|
||||
opts.pulse_digi_rate_out = 8000;
|
||||
opts.pulse_digi_out_channels = 2;
|
||||
- opts.dmr_mono = 0;
|
||||
- opts.dmr_stereo = 1;
|
||||
+ opts.dmr_mono = 1;
|
||||
+ opts.dmr_stereo = 0; //not sure if this will break anything
|
||||
state.dmr_stereo = 0; //0
|
||||
// opts.setmod_bw = 7000;
|
||||
- sprintf (opts.output_name, "DMR Stereo");
|
||||
- fprintf (stderr,"-fr / DMR Mono switch has been deprecated.\n");
|
||||
- fprintf (stderr,"Decoding DMR Stereo BS/MS Simplex\n");
|
||||
+ sprintf (opts.output_name, "DMR Mono");
|
||||
+ // fprintf (stderr,"-fr / DMR Mono switch enabled. \n NOTE: Some ENC options in Slot 2 may not work properly.\n");
|
||||
+ fprintf (stderr,"\n Decoding DMR Stereo BS/MS Simplex in Mono Single Slot Only Configuration.\n");
|
||||
|
||||
}
|
||||
else if (optarg[0] == 'm')
|
||||
diff --git a/src/dsd_ncurses.c b/src/dsd_ncurses.c
|
||||
index 7de3ffb..a3dccd8 100644
|
||||
--- a/src/dsd_ncurses.c
|
||||
+++ b/src/dsd_ncurses.c
|
||||
@@ -2275,7 +2275,7 @@ ncursesPrinter (dsd_opts * opts, dsd_state * state)
|
||||
if (opts->ncurses_compact == 1)
|
||||
{
|
||||
printw ("------------------------------------------------------------------------------\n");
|
||||
- printw ("| Digital Speech Decoder: Florida Man Edition - Aero %s \n", "AW (20231015)");
|
||||
+ printw ("| Digital Speech Decoder: Florida Man Edition - Aero %s \n", "AW MTL (20240201)");
|
||||
printw ("------------------------------------------------------------------------------\n");
|
||||
}
|
||||
#elif LIMAZULUTWEAKS
|
||||
@@ -2314,12 +2314,12 @@ ncursesPrinter (dsd_opts * opts, dsd_state * state)
|
||||
#endif
|
||||
#ifdef AERO_BUILD
|
||||
if (i == 5) printw (" %s ", "Aero Build");
|
||||
- if (i == 6) printw (" AW (20231015) \n");
|
||||
+ if (i == 6) printw (" AW MTL (20240201) \n");
|
||||
#elif ZDEV_BUILD
|
||||
- if (i == 5) printw (" %s ", "AW ");
|
||||
+ if (i == 5) printw (" %s ", "AW MTL");
|
||||
if (i == 6) printw (" %s \n", GIT_TAG);
|
||||
#else
|
||||
- if (i == 5) printw (" %s ", "AW ");
|
||||
+ if (i == 5) printw (" %s ", "AW MTL");
|
||||
if (i == 6) printw (" %s \n", GIT_TAG);
|
||||
#endif
|
||||
else printw ("\n");
|
||||
Reference in New Issue
Block a user