mirror of https://github.com/lwvmobile/dsd-fme.git
150 lines
5.9 KiB
Diff
150 lines
5.9 KiB
Diff
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");
|