DMR Stereo Standalone Option

This commit is contained in:
lwvmobile 2022-09-27 18:39:35 -04:00
parent bab139e2e4
commit c37400bf81
2 changed files with 38 additions and 13 deletions

View File

@ -671,6 +671,7 @@ usage ()
printf ("Decoder options:\n"); printf ("Decoder options:\n");
printf (" -fa Legacy Auto Detection (old methods default)\n"); printf (" -fa Legacy Auto Detection (old methods default)\n");
printf (" -ft XDMA P25 and DMR BS/MS frame types (new default)\n"); printf (" -ft XDMA P25 and DMR BS/MS frame types (new default)\n");
printf (" -fs DMR Stereo BS and MS Simplex only\n");
printf (" -f1 Decode only P25 Phase 1\n"); printf (" -f1 Decode only P25 Phase 1\n");
printf (" -fd Decode only D-STAR\n"); printf (" -fd Decode only D-STAR\n");
printf (" -fr Decode only DMR\n"); printf (" -fr Decode only DMR\n");
@ -1397,9 +1398,33 @@ main (int argc, char **argv)
state.rf_mod = 0; state.rf_mod = 0;
opts.dmr_stereo = 1; opts.dmr_stereo = 1;
state.dmr_stereo = 1; state.dmr_stereo = 1;
sprintf (opts.output_name, "P25-P2"); sprintf (opts.output_name, "P25P2");
fprintf (stderr,"Decoding P25-P2 frames C4FM or OP25 Symbol Captures!\n"); fprintf (stderr,"Decoding P25-P2 frames C4FM or OP25 Symbol Captures!\n");
} }
else if (optarg[0] == 's')
{
opts.frame_dstar = 0;
opts.frame_x2tdma = 0;
opts.frame_p25p1 = 0;
opts.frame_p25p2 = 0;
opts.inverted_p2 = 0;
opts.frame_nxdn48 = 0;
opts.frame_nxdn96 = 0;
opts.frame_dmr = 1;
opts.frame_dpmr = 0;
opts.frame_provoice = 0;
opts.frame_ysf = 0;
opts.mod_c4fm = 1;
opts.mod_qpsk = 0;
opts.mod_gfsk = 0;
state.rf_mod = 0;
opts.dmr_stereo = 1;
//state.dmr_stereo = 1; //manually set to 1
opts.pulse_digi_rate_out = 24000;
opts.pulse_digi_out_channels = 2;
sprintf (opts.output_name, "DMR Stereo");
fprintf (stderr,"Decoding DMR Stereo BS/MS Simplex\n");
}
else if (optarg[0] == 't') else if (optarg[0] == 't')
{ {
opts.frame_dstar = 0; opts.frame_dstar = 0;

View File

@ -279,7 +279,7 @@ char *choices[] = {
"Decode dPMR", "Decode dPMR",
"Decode NXDN48", "Decode NXDN48",
"Decode NXDN96", "Decode NXDN96",
"Decode X2-TDMA*", "Decode DMR Stereo", //was X2-TDMA*
"Toggle Signal Inversion", "Toggle Signal Inversion",
"Privacy Key Entry", "Privacy Key Entry",
// " ", // " ",
@ -462,7 +462,7 @@ void ncursesMenu (dsd_opts * opts, dsd_state * state)
info_win = newwin(7, WIDTH+18, starty, startx+20); info_win = newwin(7, WIDTH+18, starty, startx+20);
box (info_win, 0, 0); box (info_win, 0, 0);
mvwprintw(info_win, 2, 2, " XDMA Decoding Class Supports the following:"); mvwprintw(info_win, 2, 2, " XDMA Decoding Class Supports the following:");
mvwprintw(info_win, 3, 2, " P25-P1, P25-P2, DMR Stereo BS/MS and X2-TDMA"); mvwprintw(info_win, 3, 2, " P25-P1, P25-P2, and DMR Stereo BS/MS");
mvwprintw(info_win, 4, 2, " --C4FM / FSK4 only, and OP25 P2 Capture Bins"); mvwprintw(info_win, 4, 2, " --C4FM / FSK4 only, and OP25 P2 Capture Bins");
wrefresh(info_win); wrefresh(info_win);
} }
@ -1129,11 +1129,11 @@ void ncursesMenu (dsd_opts * opts, dsd_state * state)
state->rf_mod = 0; state->rf_mod = 0;
sprintf (opts->output_name, "XDMA"); sprintf (opts->output_name, "XDMA");
opts->dmr_stereo = 1; //this value is the end user option opts->dmr_stereo = 1; //this value is the end user option
state->dmr_stereo = 1; //this values toggles on and off depending on voice or data handling state->dmr_stereo = 0; //this values toggles on and off depending on voice or data handling
opts->pulse_digi_rate_out = 24000; opts->pulse_digi_rate_out = 24000;
opts->pulse_digi_out_channels = 2; opts->pulse_digi_out_channels = 2;
opts->frame_dstar = 0; opts->frame_dstar = 0;
opts->frame_x2tdma = 1; opts->frame_x2tdma = 0;
opts->frame_p25p1 = 1; opts->frame_p25p1 = 1;
opts->frame_p25p2 = 1; opts->frame_p25p2 = 1;
opts->frame_nxdn48 = 0; opts->frame_nxdn48 = 0;
@ -1258,22 +1258,22 @@ void ncursesMenu (dsd_opts * opts, dsd_state * state)
} }
if (choice == 11) if (choice == 11)
{ {
//Decode X2-TDMA //Decode DMR Stereo (was X2-TDMA)
//NXDN96
resetState (state); //use sparingly, may cause memory leak resetState (state); //use sparingly, may cause memory leak
state->samplesPerSymbol = 10; state->samplesPerSymbol = 10;
state->symbolCenter = 4; state->symbolCenter = 4;
sprintf (opts->output_name, "X2-TDMA"); // sprintf (opts->output_name, "X2-TDMA");
opts->dmr_stereo = 0; //this value is the end user option sprintf (opts->output_name, "DMR Stereo");
opts->dmr_stereo = 1; //this value is the end user option
state->dmr_stereo = 0; //this values toggles on and off depending on voice or data handling state->dmr_stereo = 0; //this values toggles on and off depending on voice or data handling
opts->pulse_digi_rate_out = 8000; opts->pulse_digi_rate_out = 24000;
opts->pulse_digi_out_channels = 1; opts->pulse_digi_out_channels = 2;
opts->frame_dstar = 0; opts->frame_dstar = 0;
opts->frame_x2tdma = 1; opts->frame_x2tdma = 0;
opts->frame_p25p1 = 0; opts->frame_p25p1 = 0;
opts->frame_nxdn48 = 0; opts->frame_nxdn48 = 0;
opts->frame_nxdn96 = 0; opts->frame_nxdn96 = 0;
opts->frame_dmr = 0; opts->frame_dmr = 1;
opts->frame_dpmr = 0; opts->frame_dpmr = 0;
opts->frame_provoice = 0; opts->frame_provoice = 0;
opts->frame_ysf = 0; opts->frame_ysf = 0;