From 9464c4b42be6513800f1ca23944854983f34246f Mon Sep 17 00:00:00 2001 From: David Freese Date: Fri, 4 Jun 2010 18:33:44 -0500 Subject: [PATCH] RSID squelch * Added user setting in seconds to allow RSID to open squelch in decoder. * Changed default to Extended Characters for Olivia, Contestia and MT63 * Change default to "Capture wrapped messages" --- src/dialogs/confdialog.cxx | 76 +++++++++++++++++++++++++------------ src/dialogs/confdialog.fl | 63 +++++++++++++++++------------- src/include/confdialog.h | 1 + src/include/configuration.h | 11 ++++-- src/rsid/rsid.cxx | 8 +++- 5 files changed, 101 insertions(+), 58 deletions(-) diff --git a/src/dialogs/confdialog.cxx b/src/dialogs/confdialog.cxx index a1037702..610dd142 100644 --- a/src/dialogs/confdialog.cxx +++ b/src/dialogs/confdialog.cxx @@ -2187,6 +2187,13 @@ mode_browser->show(&progdefaults.rsid_rx_modes); progdefaults.changed = true; } +Fl_Value_Slider2 *sldrRSIDsquelch=(Fl_Value_Slider2 *)0; + +static void cb_sldrRSIDsquelch(Fl_Value_Slider2* o, void*) { + progdefaults.rsid_squelch = (int)o->value(); +progdefaults.changed = true; +} + Fl_Check_Button *chkRSidPost=(Fl_Check_Button *)0; static void cb_chkRSidPost(Fl_Check_Button* o, void*) { @@ -2512,7 +2519,7 @@ static const char szBaudRates[] = "300|600|1200|2400|4800|9600|19200|38400|57600 o->selection_color((Fl_Color)51); o->labelsize(18); o->align(FL_ALIGN_CLIP|FL_ALIGN_INSIDE); - { tabsConfigure = new Fl_Tabs(-3, 0, 500, 372); + { tabsConfigure = new Fl_Tabs(-3, 0, 520, 372); tabsConfigure->color((Fl_Color)FL_LIGHT1); tabsConfigure->selection_color((Fl_Color)FL_LIGHT1); { tabOperator = new Fl_Group(0, 25, 500, 345, _("Operator")); @@ -2625,7 +2632,7 @@ static const char szBaudRates[] = "300|600|1200|2400|4800|9600|19200|38400|57600 } // Fl_Group* grpNoise tabOperator->end(); } // Fl_Group* tabOperator - { tabUI = new Fl_Group(0, 25, 500, 345, _("UI")); + { tabUI = new Fl_Group(-3, 25, 508, 345, _("UI")); tabUI->hide(); { tabsUI = new Fl_Tabs(-3, 25, 508, 345); tabsUI->selection_color((Fl_Color)FL_LIGHT1); @@ -3300,9 +3307,9 @@ an merging")); } // Fl_Tabs* tabsWaterfall tabWaterfall->end(); } // Fl_Group* tabWaterfall - { tabModems = new Fl_Group(0, 25, 500, 345, _("Modems")); + { tabModems = new Fl_Group(0, 25, 517, 345, _("Modems")); tabModems->hide(); - { tabsModems = new Fl_Tabs(0, 25, 501, 345); + { tabsModems = new Fl_Tabs(0, 25, 517, 345); tabsModems->selection_color((Fl_Color)FL_LIGHT1); tabsModems->align(FL_ALIGN_TOP_RIGHT); { tabCW = new Fl_Group(0, 50, 500, 320, _("CW")); @@ -4443,7 +4450,6 @@ an merging")); { tabsRig = new Fl_Tabs(0, 25, 500, 345); tabsRig->selection_color((Fl_Color)FL_LIGHT1); { Fl_Group* o = new Fl_Group(0, 50, 500, 320, _("Hardware PTT")); - o->hide(); { grpHWPTT = new Fl_Group(5, 100, 490, 265, _("h/w ptt device-pin")); grpHWPTT->box(FL_ENGRAVED_FRAME); grpHWPTT->align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE); @@ -4662,6 +4668,7 @@ an merging")); o->end(); } // Fl_Group* o { tabHamlib = new Fl_Group(0, 50, 500, 320, _("Hamlib")); + tabHamlib->hide(); { chkUSEHAMLIB = new Fl_Check_Button(195, 60, 100, 20, _("Use Hamlib")); chkUSEHAMLIB->tooltip(_("Hamlib used for rig control")); chkUSEHAMLIB->down_box(FL_DOWN_BOX); @@ -5150,21 +5157,21 @@ ll with your audio device.")); } // Fl_Group* tabSoundCard { tabID = new Fl_Group(0, 25, 500, 345, _("ID")); tabID->hide(); - { Fl_Group* o = new Fl_Group(5, 35, 490, 123, _("Video Preamble ID")); + { Fl_Group* o = new Fl_Group(5, 35, 490, 103, _("Video Preamble ID")); o->box(FL_ENGRAVED_FRAME); o->align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE); - { btnsendid = new Fl_Check_Button(15, 67, 150, 20, _("Transmit mode ID")); + { btnsendid = new Fl_Check_Button(15, 58, 150, 20, _("Transmit mode ID")); btnsendid->tooltip(_("Waterfall video ID")); btnsendid->down_box(FL_DOWN_BOX); btnsendid->callback((Fl_Callback*)cb_btnsendid); } // Fl_Check_Button* btnsendid - { Fl_Check_Button* o = btnsendvideotext = new Fl_Check_Button(15, 97, 155, 20, _("Transmit video text")); + { Fl_Check_Button* o = btnsendvideotext = new Fl_Check_Button(15, 83, 155, 20, _("Transmit video text")); btnsendvideotext->tooltip(_("Waterfall video text")); btnsendvideotext->down_box(FL_DOWN_BOX); btnsendvideotext->callback((Fl_Callback*)cb_btnsendvideotext); o->value(progdefaults.sendtextid); } // Fl_Check_Button* btnsendvideotext - { Fl_Input2* o = valVideotext = new Fl_Input2(365, 96, 120, 20, _("Video text:")); + { Fl_Input2* o = valVideotext = new Fl_Input2(365, 82, 120, 20, _("Video text:")); valVideotext->tooltip(_("Limit to a few characters,\nas in CQEM or IOTA etc.")); valVideotext->box(FL_DOWN_BOX); valVideotext->color((Fl_Color)FL_BACKGROUND2_COLOR); @@ -5179,14 +5186,14 @@ ll with your audio device.")); o->value(progdefaults.strTextid.c_str()); valVideotext->labelsize(FL_NORMAL_SIZE); } // Fl_Input2* valVideotext - { Fl_Check_Button* o = chkID_SMALL = new Fl_Check_Button(15, 127, 120, 20, _("Use small font")); + { Fl_Check_Button* o = chkID_SMALL = new Fl_Check_Button(15, 109, 120, 20, _("Use small font")); chkID_SMALL->tooltip(_("ON - small font\nOFF - large font")); chkID_SMALL->down_box(FL_DOWN_BOX); chkID_SMALL->value(1); chkID_SMALL->callback((Fl_Callback*)cb_chkID_SMALL); o->value(progdefaults.ID_SMALL); } // Fl_Check_Button* chkID_SMALL - { Fl_Value_Slider2* o = sldrVideowidth = new Fl_Value_Slider2(365, 127, 120, 20, _("Video row width:")); + { Fl_Value_Slider2* o = sldrVideowidth = new Fl_Value_Slider2(365, 109, 120, 20, _("Video row width:")); sldrVideowidth->tooltip(_("Set the number of characters per row")); sldrVideowidth->type(1); sldrVideowidth->box(FL_DOWN_BOX); @@ -5208,21 +5215,21 @@ ll with your audio device.")); if (progdefaults.ID_SMALL) o->deactivate(); o->labelsize(FL_NORMAL_SIZE); o->textsize(FL_NORMAL_SIZE); } // Fl_Value_Slider2* sldrVideowidth - { bVideoIDModes = new Fl_Button(365, 67, 120, 20, _("Video ID modes")); + { bVideoIDModes = new Fl_Button(365, 58, 120, 20, _("Video ID modes")); bVideoIDModes->callback((Fl_Callback*)cb_bVideoIDModes); } // Fl_Button* bVideoIDModes o->end(); } // Fl_Group* o - { sld = new Fl_Group(5, 158, 490, 60, _("CW Postamble ID")); + { sld = new Fl_Group(5, 138, 490, 60, _("CW Postamble ID")); sld->box(FL_ENGRAVED_FRAME); sld->align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE); - { Fl_Check_Button* o = btnCWID = new Fl_Check_Button(15, 185, 140, 20, _("Transmit callsign")); + { Fl_Check_Button* o = btnCWID = new Fl_Check_Button(15, 165, 140, 20, _("Transmit callsign")); btnCWID->tooltip(_("Send Callsign in CW at end of every transmission")); btnCWID->down_box(FL_DOWN_BOX); btnCWID->callback((Fl_Callback*)cb_btnCWID); o->value(progdefaults.CWid); } // Fl_Check_Button* btnCWID - { Fl_Value_Slider2* o = sldrCWIDwpm = new Fl_Value_Slider2(165, 185, 180, 20, _("Speed (WPM):")); + { Fl_Value_Slider2* o = sldrCWIDwpm = new Fl_Value_Slider2(165, 165, 180, 20, _("Speed (WPM):")); sldrCWIDwpm->tooltip(_("Send at this WPM")); sldrCWIDwpm->type(1); sldrCWIDwpm->box(FL_DOWN_BOX); @@ -5243,27 +5250,27 @@ ll with your audio device.")); o->value(progdefaults.CWIDwpm); o->labelsize(FL_NORMAL_SIZE); o->textsize(FL_NORMAL_SIZE); } // Fl_Value_Slider2* sldrCWIDwpm - { bCWIDModes = new Fl_Button(365, 185, 120, 20, _("CW ID modes")); + { bCWIDModes = new Fl_Button(365, 165, 120, 20, _("CW ID modes")); bCWIDModes->callback((Fl_Callback*)cb_bCWIDModes); } // Fl_Button* bCWIDModes sld->end(); } // Fl_Group* sld - { Fl_Group* o = new Fl_Group(5, 218, 295, 150, _("Reed-Solomon ID (Rx)")); + { Fl_Group* o = new Fl_Group(5, 198, 295, 167, _("Reed-Solomon ID (Rx)")); o->box(FL_ENGRAVED_FRAME); o->align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE); - { Fl_Check_Button* o = chkRSidWideSearch = new Fl_Check_Button(15, 267, 270, 20, _("Detector searches entire passband")); + { Fl_Check_Button* o = chkRSidWideSearch = new Fl_Check_Button(15, 247, 270, 20, _("Detector searches entire passband")); chkRSidWideSearch->tooltip(_("ON - search over entire waterfall\nOFF - limit search to +/- 200 Hz")); chkRSidWideSearch->down_box(FL_DOWN_BOX); chkRSidWideSearch->callback((Fl_Callback*)cb_chkRSidWideSearch); o->value(progdefaults.rsidWideSearch); } // Fl_Check_Button* chkRSidWideSearch - { chkRSidMark = new Fl_Check_Button(15, 290, 270, 20, _("Mark previous frequency and mode")); + { chkRSidMark = new Fl_Check_Button(15, 270, 270, 20, _("Mark previous frequency and mode")); chkRSidMark->tooltip(_("Insert RX text marker before\nchanging frequency and modem")); chkRSidMark->down_box(FL_DOWN_BOX); chkRSidMark->callback((Fl_Callback*)cb_chkRSidMark); chkRSidMark->value(progdefaults.rsid_mark); } // Fl_Check_Button* chkRSidMark - { chkRSidAutoDisable = new Fl_Check_Button(15, 313, 200, 20, _("Reception disables detector")); + { chkRSidAutoDisable = new Fl_Check_Button(15, 293, 200, 20, _("Reception disables detector")); chkRSidAutoDisable->tooltip(_("Disable further detection when RSID is received")); chkRSidAutoDisable->down_box(FL_DOWN_BOX); chkRSidAutoDisable->callback((Fl_Callback*)cb_chkRSidAutoDisable); @@ -5271,28 +5278,47 @@ ll with your audio device.")); chkRSidAutoDisable->value(progdefaults.rsid_auto_disable); if (progdefaults.rsid_notify_only) chkRSidAutoDisable->deactivate(); } // Fl_Check_Button* chkRSidAutoDisable - { chkRSidNotifyOnly = new Fl_Check_Button(15, 337, 155, 20, _("Notifications only")); + { chkRSidNotifyOnly = new Fl_Check_Button(15, 317, 155, 20, _("Notifications only")); chkRSidNotifyOnly->tooltip(_("Check this to be notified when an RSID is received\nwithout changing modem an\ d frequency")); chkRSidNotifyOnly->down_box(FL_DOWN_BOX); chkRSidNotifyOnly->callback((Fl_Callback*)cb_chkRSidNotifyOnly); chkRSidNotifyOnly->value(progdefaults.rsid_notify_only); } // Fl_Check_Button* chkRSidNotifyOnly - { bRSIDRxModes = new Fl_Button(15, 244, 130, 20, _("Receive modes")); + { bRSIDRxModes = new Fl_Button(15, 224, 130, 20, _("Receive modes")); bRSIDRxModes->callback((Fl_Callback*)cb_bRSIDRxModes); } // Fl_Button* bRSIDRxModes + { Fl_Value_Slider2* o = sldrRSIDsquelch = new Fl_Value_Slider2(15, 339, 144, 20, _("Squelch open (sec)")); + sldrRSIDsquelch->tooltip(_("Open squelch for nn sec if RSID detected")); + sldrRSIDsquelch->type(1); + sldrRSIDsquelch->box(FL_DOWN_BOX); + sldrRSIDsquelch->color((Fl_Color)FL_BACKGROUND_COLOR); + sldrRSIDsquelch->selection_color((Fl_Color)FL_BACKGROUND_COLOR); + sldrRSIDsquelch->labeltype(FL_NORMAL_LABEL); + sldrRSIDsquelch->labelfont(0); + sldrRSIDsquelch->labelsize(14); + sldrRSIDsquelch->labelcolor((Fl_Color)FL_FOREGROUND_COLOR); + sldrRSIDsquelch->maximum(20); + sldrRSIDsquelch->step(1); + sldrRSIDsquelch->textsize(14); + sldrRSIDsquelch->callback((Fl_Callback*)cb_sldrRSIDsquelch); + sldrRSIDsquelch->align(FL_ALIGN_RIGHT); + sldrRSIDsquelch->when(FL_WHEN_CHANGED); + o->value(progdefaults.rsid_squelch); + o->labelsize(FL_NORMAL_SIZE); o->textsize(FL_NORMAL_SIZE); + } // Fl_Value_Slider2* sldrRSIDsquelch o->end(); } // Fl_Group* o - { Fl_Group* o = new Fl_Group(300, 218, 195, 150, _("Reed-Solomon ID (Tx)")); + { Fl_Group* o = new Fl_Group(300, 198, 195, 167, _("Reed-Solomon ID (Tx)")); o->box(FL_ENGRAVED_FRAME); o->align(FL_ALIGN_TOP_LEFT|FL_ALIGN_INSIDE); - { Fl_Check_Button* o = chkRSidPost = new Fl_Check_Button(310, 267, 120, 20, _("Send at EOT")); + { Fl_Check_Button* o = chkRSidPost = new Fl_Check_Button(310, 247, 120, 20, _("Send at EOT")); chkRSidPost->tooltip(_("Send RSID at end of transmission")); chkRSidPost->down_box(FL_DOWN_BOX); chkRSidPost->callback((Fl_Callback*)cb_chkRSidPost); o->value(progdefaults.rsid_post); } // Fl_Check_Button* chkRSidPost - { bRSIDTxModes = new Fl_Button(310, 244, 130, 20, _("Transmit modes")); + { bRSIDTxModes = new Fl_Button(310, 224, 130, 20, _("Transmit modes")); bRSIDTxModes->callback((Fl_Callback*)cb_bRSIDTxModes); } // Fl_Button* bRSIDTxModes o->end(); diff --git a/src/dialogs/confdialog.fl b/src/dialogs/confdialog.fl index 47dcacf6..e5ab18d2 100644 --- a/src/dialogs/confdialog.fl +++ b/src/dialogs/confdialog.fl @@ -96,7 +96,7 @@ static const char szBaudRates[] = "300|600|1200|2400|4800|9600|19200|38400|57600 xywh {569 72 500 400} type Double color 45 selection_color 51 labelsize 18 align 80 visible } { Fl_Tabs tabsConfigure {open - xywh {-3 0 500 372} color 50 selection_color 50 + xywh {-3 0 520 372} color 50 selection_color 50 } { Fl_Group tabOperator { label Operator @@ -181,7 +181,7 @@ progdefaults.changed = true;} } Fl_Group tabUI { label UI open - xywh {0 25 500 345} hide + xywh {-3 25 508 345} hide } { Fl_Tabs tabsUI {open xywh {-3 25 508 345} selection_color 50 @@ -906,10 +906,10 @@ behaves inside the waterfall} xywh {15 196 150 22} down_box BORDER_BOX align 8 } Fl_Group tabModems { label Modems - xywh {0 25 500 345} hide + xywh {0 25 517 345} hide } { Fl_Tabs tabsModems {open - xywh {0 25 501 345} selection_color 50 align 9 + xywh {0 25 517 345} selection_color 50 align 9 } { Fl_Group tabCW { label CW open @@ -1809,7 +1809,7 @@ progdefaults.changed = true;} } { Fl_Group {} { label {Hardware PTT} open - xywh {0 50 500 320} hide + xywh {0 50 500 320} } { Fl_Group grpHWPTT { label {h/w ptt device-pin} open @@ -2097,7 +2097,7 @@ rigCAT_restore_defaults();} } Fl_Group tabHamlib { label Hamlib open - xywh {0 50 500 320} + xywh {0 50 500 320} hide } { Fl_Check_Button chkUSEHAMLIB { label {Use Hamlib} @@ -2630,24 +2630,24 @@ progdefaults.changed = true;} } } Fl_Group tabID { - label ID + label ID open xywh {0 25 500 345} hide } { Fl_Group {} { label {Video Preamble ID} open - xywh {5 35 490 123} box ENGRAVED_FRAME align 21 + xywh {5 35 490 103} box ENGRAVED_FRAME align 21 } { Fl_Check_Button btnsendid { label {Transmit mode ID} callback {progdefaults.sendid=o->value(); progdefaults.changed = true;} - tooltip {Waterfall video ID} xywh {15 67 150 20} down_box DOWN_BOX + tooltip {Waterfall video ID} xywh {15 58 150 20} down_box DOWN_BOX } Fl_Check_Button btnsendvideotext { label {Transmit video text} callback {progdefaults.sendtextid=o->value(); progdefaults.changed = true;} - tooltip {Waterfall video text} xywh {15 97 155 20} down_box DOWN_BOX + tooltip {Waterfall video text} xywh {15 83 155 20} down_box DOWN_BOX code0 {o->value(progdefaults.sendtextid);} } Fl_Input valVideotext { @@ -2655,7 +2655,7 @@ progdefaults.changed = true;} callback {progdefaults.strTextid = o->value(); progdefaults.changed = true;} tooltip {Limit to a few characters, -as in CQEM or IOTA etc.} xywh {365 96 120 20} +as in CQEM or IOTA etc.} xywh {365 82 120 20} code0 {o->value(progdefaults.strTextid.c_str());} code1 {valVideotext->labelsize(FL_NORMAL_SIZE);} class Fl_Input2 @@ -2669,14 +2669,14 @@ else sldrVideowidth->activate(); progdefaults.changed = true;} tooltip {ON - small font -OFF - large font} xywh {15 127 120 20} down_box DOWN_BOX value 1 +OFF - large font} xywh {15 109 120 20} down_box DOWN_BOX value 1 code0 {o->value(progdefaults.ID_SMALL);} } Fl_Value_Slider sldrVideowidth { label {Video row width:} callback {progdefaults.videowidth = (int)o->value(); progdefaults.changed = true;} - tooltip {Set the number of characters per row} xywh {365 127 120 20} type Horizontal align 4 minimum 1 maximum 4 step 1 value 1 textsize 14 + tooltip {Set the number of characters per row} xywh {365 109 120 20} type Horizontal align 4 minimum 1 maximum 4 step 1 value 1 textsize 14 code0 {o->value(progdefaults.videowidth);} code1 {if (progdefaults.ID_SMALL) o->deactivate();} code2 {o->labelsize(FL_NORMAL_SIZE); o->textsize(FL_NORMAL_SIZE);} @@ -2688,25 +2688,25 @@ progdefaults.changed = true;} mode_browser->callback(0); mode_browser->show(&progdefaults.videoid_modes); progdefaults.changed = true;} - xywh {365 67 120 20} + xywh {365 58 120 20} } } Fl_Group sld { label {CW Postamble ID} open - xywh {5 158 490 60} box ENGRAVED_FRAME align 21 + xywh {5 138 490 60} box ENGRAVED_FRAME align 21 } { Fl_Check_Button btnCWID { label {Transmit callsign} callback {progdefaults.CWid = o->value(); progdefaults.changed = true;} - tooltip {Send Callsign in CW at end of every transmission} xywh {15 185 140 20} down_box DOWN_BOX + tooltip {Send Callsign in CW at end of every transmission} xywh {15 165 140 20} down_box DOWN_BOX code0 {o->value(progdefaults.CWid);} } Fl_Value_Slider sldrCWIDwpm { label {Speed (WPM):} callback {progdefaults.CWIDwpm = (int)o->value(); progdefaults.changed = true;} - tooltip {Send at this WPM} xywh {165 185 180 20} type Horizontal align 1 minimum 15 maximum 40 step 1 value 18 textsize 14 + tooltip {Send at this WPM} xywh {165 165 180 20} type Horizontal align 1 minimum 15 maximum 40 step 1 value 18 textsize 14 code0 {o->value(progdefaults.CWIDwpm);} code1 {o->labelsize(FL_NORMAL_SIZE); o->textsize(FL_NORMAL_SIZE);} class Fl_Value_Slider2 @@ -2717,19 +2717,19 @@ progdefaults.changed = true;} mode_browser->callback(0); mode_browser->show(&progdefaults.cwid_modes); progdefaults.changed = true;} - xywh {365 185 120 20} + xywh {365 165 120 20} } } Fl_Group {} { label {Reed-Solomon ID (Rx)} open - xywh {5 218 295 150} box ENGRAVED_FRAME align 21 + xywh {5 198 295 167} box ENGRAVED_FRAME align 21 } { Fl_Check_Button chkRSidWideSearch { label {Detector searches entire passband} callback {progdefaults.rsidWideSearch=o->value(); progdefaults.changed = true;} tooltip {ON - search over entire waterfall -OFF - limit search to +/- 200 Hz} xywh {15 267 270 20} down_box DOWN_BOX +OFF - limit search to +/- 200 Hz} xywh {15 247 270 20} down_box DOWN_BOX code0 {o->value(progdefaults.rsidWideSearch);} } Fl_Check_Button chkRSidMark { @@ -2737,14 +2737,14 @@ OFF - limit search to +/- 200 Hz} xywh {15 267 270 20} down_box DOWN_BOX callback {progdefaults.rsid_mark = o->value(); progdefaults.changed = true;} tooltip {Insert RX text marker before -changing frequency and modem} xywh {15 290 270 20} down_box DOWN_BOX +changing frequency and modem} xywh {15 270 270 20} down_box DOWN_BOX code0 {chkRSidMark->value(progdefaults.rsid_mark);} } Fl_Check_Button chkRSidAutoDisable { label {Reception disables detector} callback {progdefaults.rsid_auto_disable = o->value(); progdefaults.changed = true;} - tooltip {Disable further detection when RSID is received} xywh {15 313 200 20} down_box DOWN_BOX + tooltip {Disable further detection when RSID is received} xywh {15 293 200 20} down_box DOWN_BOX code0 {if (progdefaults.rsid_notify_only) progdefaults.rsid_auto_disable = false;} code1 {chkRSidAutoDisable->value(progdefaults.rsid_auto_disable);} code2 {if (progdefaults.rsid_notify_only) chkRSidAutoDisable->deactivate();} @@ -2761,7 +2761,7 @@ else chkRSidAutoDisable->activate(); progdefaults.changed = true;} tooltip {Check this to be notified when an RSID is received -without changing modem and frequency} xywh {15 337 155 20} down_box DOWN_BOX +without changing modem and frequency} xywh {15 317 155 20} down_box DOWN_BOX code0 {chkRSidNotifyOnly->value(progdefaults.rsid_notify_only);} } Fl_Button bRSIDRxModes { @@ -2770,18 +2770,27 @@ without changing modem and frequency} xywh {15 337 155 20} down_box DOWN_BOX mode_browser->callback(0); mode_browser->show(&progdefaults.rsid_rx_modes); progdefaults.changed = true;} - xywh {15 244 130 20} + xywh {15 224 130 20} + } + Fl_Value_Slider sldrRSIDsquelch { + label {Squelch open (sec)} + callback {progdefaults.rsid_squelch = (int)o->value(); +progdefaults.changed = true;} + tooltip {Open squelch for nn sec if RSID detected} xywh {15 339 144 20} type Horizontal align 8 maximum 20 step 1 textsize 14 + code0 {o->value(progdefaults.rsid_squelch);} + code2 {o->labelsize(FL_NORMAL_SIZE); o->textsize(FL_NORMAL_SIZE);} + class Fl_Value_Slider2 } } Fl_Group {} { label {Reed-Solomon ID (Tx)} open - xywh {300 218 195 150} box ENGRAVED_FRAME align 21 + xywh {300 198 195 167} box ENGRAVED_FRAME align 21 } { Fl_Check_Button chkRSidPost { label {Send at EOT} callback {progdefaults.rsid_post = o->value(); progdefaults.changed = true;} - tooltip {Send RSID at end of transmission} xywh {310 267 120 20} down_box DOWN_BOX + tooltip {Send RSID at end of transmission} xywh {310 247 120 20} down_box DOWN_BOX code0 {o->value(progdefaults.rsid_post);} } Fl_Button bRSIDTxModes { @@ -2790,7 +2799,7 @@ progdefaults.changed = true;} mode_browser->callback(0); mode_browser->show(&progdefaults.rsid_tx_modes); progdefaults.changed = true;} - xywh {310 244 130 20} + xywh {310 224 130 20} } } } diff --git a/src/include/confdialog.h b/src/include/confdialog.h index 8505cff3..e44d0434 100644 --- a/src/include/confdialog.h +++ b/src/include/confdialog.h @@ -318,6 +318,7 @@ extern Fl_Check_Button *chkRSidMark; extern Fl_Check_Button *chkRSidAutoDisable; extern Fl_Check_Button *chkRSidNotifyOnly; extern Fl_Button *bRSIDRxModes; +extern Fl_Value_Slider2 *sldrRSIDsquelch; extern Fl_Check_Button *chkRSidPost; extern Fl_Button *bRSIDTxModes; extern Fl_Group *tabMisc; diff --git a/src/include/configuration.h b/src/include/configuration.h index b44e45ba..07dcfe88 100644 --- a/src/include/configuration.h +++ b/src/include/configuration.h @@ -71,6 +71,9 @@ ELEM_(bool, rsidWideSearch, "RSIDWIDESEARCH", \ "RSID detector searches the entire passband", \ false) \ + ELEM_(int, rsid_squelch, "RSIDSQUELCH", \ + "RSID detection opens squelch for nn seconds", \ + 5) \ ELEM_(bool, rsid, "RECEIVERSID", \ "Enable Reed Soloman ID decoding", \ false) \ @@ -401,7 +404,7 @@ 4) \ ELEM_(bool, olivia8bit, "OLIVIA8BIT", \ "8-bit extended characters", \ - false) \ + true) \ /* CONTESTIA */ \ ELEM_(int, contestiatones, "CONTESTIATONES", \ "Number of tones. Values are as follows:\n" \ @@ -419,7 +422,7 @@ 4) \ ELEM_(bool, contestia8bit, "CONTESTIA8BIT", \ "8-bit extended characters", \ - false) \ + true) \ /* THOR */ \ ELEM_(double, THOR_BW, "THORBW", \ "Filter bandwidth factor (bandwidth relative to signal width)", \ @@ -458,7 +461,7 @@ /* MT63 */ \ ELEM_(bool, mt63_8bit, "MT638BIT", \ "8-bit extended characters", \ - false) \ + true) \ ELEM_(int, mt63_interleave, "MT63INTERLEAVE", \ "64-bit (long) interleave. Values are as follows:\n" \ " 0: short (32-bit); 1: long (64-bit).", \ @@ -572,7 +575,7 @@ true) \ ELEM_(bool, autoextract, "AUTOEXTRACT", \ "Enable detection and extraction of \"wrapped\" text", \ - false) \ + true) \ ELEM_(bool, speak, "SPEAK", \ "Capture text to file 'talk/textout.txt'", \ false) \ diff --git a/src/rsid/rsid.cxx b/src/rsid/rsid.cxx index d4b50aa1..406eb452 100644 --- a/src/rsid/rsid.cxx +++ b/src/rsid/rsid.cxx @@ -644,8 +644,12 @@ void cRsId::apply(int iSymbol, int iBin) REQ(note_qrg, false, "\nBefore RSID: ", "\n", active_modem->get_mode(), 0LL, active_modem->get_freq()); REQ(notify_rsid, mbin, freq); - if (!progdefaults.rsid_notify_only) - REQ(init_modem, mbin, freq); + if (!progdefaults.rsid_notify_only) { + if (progdefaults.rsid_squelch) + REQ(init_modem_squelch, mbin, freq); + else + REQ(init_modem, mbin, freq); + } } //=============================================================================