diff --git a/configure.ac b/configure.ac index 147de200..2b9614b3 100644 --- a/configure.ac +++ b/configure.ac @@ -9,7 +9,7 @@ dnl major and minor must be integers; patch may dnl contain other characters or be empty m4_define(FLDIGI_MAJOR, [3]) m4_define(FLDIGI_MINOR, [0]) -m4_define(FLDIGI_PATCH, [4AT]) +m4_define(FLDIGI_PATCH, [4AU]) AC_INIT([fldigi], FLDIGI_MAJOR.FLDIGI_MINOR[FLDIGI_PATCH], [w1hkj AT w1hkj DOT com]) diff --git a/src/dialogs/fl_digi.cxx b/src/dialogs/fl_digi.cxx index f42051fc..14758880 100644 --- a/src/dialogs/fl_digi.cxx +++ b/src/dialogs/fl_digi.cxx @@ -1314,7 +1314,7 @@ bool clean_exit(void) { if (logfile) logfile->log_to_file_stop(); - if (bSaveFreqList) +// if (bSaveFreqList) saveFreqList(); progStatus.saveLastState(); diff --git a/src/include/rigclass.h b/src/include/rigclass.h index b7d18c11..5b436e3c 100644 --- a/src/include/rigclass.h +++ b/src/include/rigclass.h @@ -76,6 +76,8 @@ public: void setConf(const char *name, const char *val); void getConf(token_t token, char *val); void getConf(const char *name, char *val); + const char *getName(); + token_t tokenLookup(const char *name); pbwidth_t passbandNormal (rmode_t mode); pbwidth_t passbandNarrow (rmode_t mode); diff --git a/src/include/rigsupport.h b/src/include/rigsupport.h index 3c1e7d1f..43642c73 100644 --- a/src/include/rigsupport.h +++ b/src/include/rigsupport.h @@ -34,6 +34,8 @@ extern int movFreq(); extern int qso_movFreq(); extern int cb_qso_opMODE(); extern int cb_qso_opBW(); +extern void qso_setMode(); +extern string modeString(rmode_t m); extern void selectFreq(); extern void delFreq(); diff --git a/src/misc/configuration.cxx b/src/misc/configuration.cxx index e70ef2ab..fef0102d 100644 --- a/src/misc/configuration.cxx +++ b/src/misc/configuration.cxx @@ -620,7 +620,7 @@ bool riginitOK = false; } #if USE_HAMLIB } else if (chkUSEHAMLIBis) { // start the hamlib thread - if (hamlib_init(btnPTTis == 1 ? true : false) == false) { + if (hamlib_init(btnPTTis == 1 ? true : false)) { wf->USB(true); wf->setQSY(1); if (docked_rig_control) @@ -674,6 +674,10 @@ FL_UNLOCK(); void configuration::testCommPorts() { + inpTTYdev->clear(); + inpRIGdev->clear(); + inpXmlRigDevice->clear(); + #ifndef PATH_MAX # define PATH_MAX 1024 #endif @@ -768,6 +772,7 @@ out: # if USE_HAMLIB inpRIGdev->add(ttyname); # endif + inpXmlRigDevice->add(ttyname); } #else // __APPLE__ glob(tty_fmt[i], 0, NULL, &gbuf); @@ -780,6 +785,7 @@ out: # if USE_HAMLIB inpRIGdev->add(gbuf.gl_pathv[j]); # endif + inpXmlRigDevice->add(ttyname); } globfree(&gbuf); diff --git a/src/rigcontrol/hamlib.cxx b/src/rigcontrol/hamlib.cxx index e0db25c9..6d32cd43 100644 --- a/src/rigcontrol/hamlib.cxx +++ b/src/rigcontrol/hamlib.cxx @@ -242,8 +242,9 @@ int hamlib_setfreq(long f) return -1; pthread_mutex_lock(&hamlib_mutex); try { +LOG_DEBUG("%ld", f); xcvr->setFreq(f); - wf->rfcarrier(f);//(hamlib_freq); +// wf->rfcarrier(f);//(hamlib_freq); } catch (const RigException& Ex) { show_error("SetFreq", Ex.what()); @@ -255,6 +256,8 @@ int hamlib_setfreq(long f) int hamlib_setmode(rmode_t m) { + if (need_mode == false) + return -1; if (xcvr->isOnLine() == false) return -1; pthread_mutex_lock(&hamlib_mutex); @@ -360,17 +363,17 @@ static void *hamlib_loop(void *args) if (modeok && (hamlib_rmode != numode)) { hamlib_rmode = numode; - selMode(hamlib_rmode); +// selMode(hamlib_rmode); +// qso_selMode(hamlib_rmode); + show_mode(modeString(hamlib_rmode)); if (hamlib_rmode == RIG_MODE_LSB || hamlib_rmode == RIG_MODE_CWR || hamlib_rmode == RIG_MODE_PKTLSB || hamlib_rmode == RIG_MODE_ECSSLSB || hamlib_rmode == RIG_MODE_RTTYR) { wf->USB(false); - show_mode("LSB"); } else { wf->USB(true); - show_mode("USB"); } } diff --git a/src/rigcontrol/rigclass.cxx b/src/rigcontrol/rigclass.cxx index f40b44dd..46e4fbe7 100644 --- a/src/rigcontrol/rigclass.cxx +++ b/src/rigcontrol/rigclass.cxx @@ -64,6 +64,12 @@ void Rig::init(rig_model_t rig_model) { caps = theRig->caps; } +const char *Rig::getName() +{ + if (theRig == NULL) return ""; + return (caps->model_name); +} + void Rig::get_rignames() { string rig_name_model; @@ -78,35 +84,10 @@ void Rig::get_rignames() while (prig1 != riglist.end()) { rig_name_model.clear(); - switch ((*prig1)->status) { - case RIG_STATUS_ALPHA : - rig_name_model.append((*prig1)->model_name); - rig_name_model.append(" - Alpha"); - rignames.push_back(rig_name_model); - break; - case RIG_STATUS_UNTESTED : - rig_name_model.append((*prig1)->model_name); - rig_name_model.append(" - Untested"); - rignames.push_back(rig_name_model); - break; - case RIG_STATUS_BETA : - rig_name_model.append((*prig1)->model_name); - rig_name_model.append(" - Beta"); - rignames.push_back(rig_name_model); - break; - case RIG_STATUS_BUGGY : - break; - case RIG_STATUS_NEW : - rig_name_model.append((*prig1)->model_name); - rig_name_model.append(" - New"); - rignames.push_back(rig_name_model); - break; - case RIG_STATUS_STABLE : - default : - rig_name_model.append((*prig1)->model_name); - rig_name_model.append(" - Stable"); - rignames.push_back(rig_name_model); - } + rig_name_model.append((*prig1)->model_name); + rig_name_model.append(" - "); + rig_name_model.append(rig_strstatus((*prig1)->status)); + rignames.push_back(rig_name_model); prig1++; } } diff --git a/src/rigcontrol/rigio.cxx b/src/rigcontrol/rigio.cxx index a1490966..c006bc79 100644 --- a/src/rigcontrol/rigio.cxx +++ b/src/rigcontrol/rigio.cxx @@ -966,6 +966,24 @@ bool rigCAT_init(bool useXML) rigio.Baud(progdefaults.BaudRate(progdefaults.XmlRigBaudrate)); rigio.Device(progdefaults.XmlRigDevice); + LOG_INFO("\n\ +Serial port parameters:\n\ +device : %s\n\ +baudrate : %d\n\ +retries : %d\n\ +timeout : %d\n\ +initial rts: %+d\n\ +use rts ptt: %c\n\ +initial dts: %+d\n\ +use dtr ptt: %c\n\ +flowcontrol: %c", + rigio.Device().c_str(), + rigio.Baud(), + rigio.Retries(), rigio.Timeout(), + (rigio.RTS() ? +12 : -12), (rigio.RTSptt() ? 'T' : 'F'), + (rigio.DTR() ? +12 : -12), (rigio.DTRptt() ? 'T' : 'F'), + (rigio.RTSCTS() ? 'T' : 'F')); + if (rigio.OpenPort() == false) { LOG_ERROR("Cannot open serial port %s", rigio.Device().c_str()); return false; diff --git a/src/rigcontrol/rigsupport.cxx b/src/rigcontrol/rigsupport.cxx index 9c596b44..0cd228f6 100644 --- a/src/rigcontrol/rigsupport.cxx +++ b/src/rigcontrol/rigsupport.cxx @@ -61,16 +61,17 @@ struct rmode_name_t { { RIG_MODE_AMS, "AMS" }, { RIG_MODE_PKTLSB, "PKTLSB" }, { RIG_MODE_PKTUSB, "PKTUSB" }, - { RIG_MODE_PKTFM, "PKTFM" }, - { RIG_MODE_ECSSUSB, "ECSSUSB" }, - { RIG_MODE_ECSSLSB, "ECSSLSB" }, - { RIG_MODE_FAX, "FAX" } + { RIG_MODE_PKTFM, "PKTFM" } +//, // C99 trailing commas in enumerations not yet in the C++ standard +// { RIG_MODE_ECSSUSB, "ECSSUSB" }, +// { RIG_MODE_ECSSLSB, "ECSSLSB" }, +// { RIG_MODE_FAX, "FAX" } // the above are covered by our requirement that hamlib be >= 1.2.4 #if (defined(RIG_MODE_SAM) && defined(RIG_MODE_SAL) && defined(RIG_MODE_SAH)) , // C99 trailing commas in enumerations not yet in the C++ standard { RIG_MODE_SAM, "SAM" }, { RIG_MODE_SAL, "SAL" }, - { RIG_MODE_SAH, "SAH" } + { RIG_MODE_SAH, "SAH" }, #endif }; @@ -82,6 +83,16 @@ void selMode(rmode_t m) opMODE->value(mode_names[m].c_str()); } +void qso_selMode(rmode_t m) +{ + qso_opMODE->value(mode_names[m].c_str()); +} + +string modeString(rmode_t m) +{ + return mode_names[m].c_str(); +} + void selFreq(long int f) { if (FreqDisp) @@ -347,10 +358,8 @@ int cb_qso_opBW() return 0; } -int movFreq() +void sendFreq(long int f) { - long int f; - f = FreqDisp->value(); #if USE_HAMLIB if (progdefaults.chkUSEHAMLIBis) hamlib_setfreq(f); @@ -362,6 +371,13 @@ int movFreq() rigCAT_setfreq(f); else rigCAT_setfreq(f); +} + +int movFreq() +{ + long int f; + f = FreqDisp->value(); + sendFreq(f); return 0; } @@ -370,17 +386,7 @@ int qso_movFreq() if (!progdefaults.docked_rig_control) return 0; long int f; f = qsoFreqDisp->value(); -#if USE_HAMLIB - if (progdefaults.chkUSEHAMLIBis) - hamlib_setfreq(f); - else -#endif - if (progdefaults.chkUSEMEMMAPis) - rigMEM_set_freq(f); - else if (progdefaults.chkUSERIGCATis) - rigCAT_setfreq(f); - else - rigCAT_setfreq(f); + sendFreq(f); return 0; } @@ -395,7 +401,7 @@ void selectFreq() if (freqlist[n].rfcarrier > 0) { FreqDisp->value(freqlist[n].rfcarrier); - movFreq(); + sendFreq(freqlist[n].rfcarrier); } if (freqlist[n].mode != NUM_MODES) { @@ -422,7 +428,7 @@ void qso_selectFreq() // transceiver frequency if (freqlist[n].rfcarrier > 0) { qsoFreqDisp->value(freqlist[n].rfcarrier); - qso_movFreq(); + sendFreq(freqlist[n].rfcarrier); } // modem type & audio sub carrier if (freqlist[n].mode != NUM_MODES) { @@ -444,7 +450,7 @@ void qso_setFreq() // transceiver frequency if (freqlist[n].rfcarrier > 0) { qsoFreqDisp->value(freqlist[n].rfcarrier); - qso_movFreq(); + sendFreq(freqlist[n].rfcarrier); } } @@ -496,13 +502,22 @@ void qso_addFreq() void setTitle() { if (windowTitle.length() > 0) { - rigcontrol->label(windowTitle.c_str()); - if (progdefaults.docked_rig_control) +//std::cout << windowTitle.c_str() << std::endl; + if (rigcontrol) { + rigcontrol->label(windowTitle.c_str()); + } + if (progdefaults.docked_rig_control) { txtRigName->label(windowTitle.c_str()); + txtRigName->redraw_label(); + } } else { - rigcontrol->label(""); - if (progdefaults.docked_rig_control) + if (rigcontrol) { + rigcontrol->label(""); + } + if (progdefaults.docked_rig_control) { txtRigName->label("Non CAT mode"); + txtRigName->redraw_label(); + } } } @@ -586,6 +601,9 @@ LOG_DEBUG("hamlib"); } clearList(); buildlist(); + + windowTitle = "Hamlib "; + windowTitle.append(xcvr->getName()); setTitle(); diff --git a/src/rigcontrol/rigxml.cxx b/src/rigcontrol/rigxml.cxx index aa4902e3..12b67790 100644 --- a/src/rigcontrol/rigxml.cxx +++ b/src/rigcontrol/rigxml.cxx @@ -593,18 +593,6 @@ void parsePORT(size_t &p0) } p0 = pend; - LOG_INFO("\nSerial port parameters:\n\ - retries: %d\n\ - timeout: %d\n\ - initial rts: %+d\n\ - use rts ptt: %c\n\ - initial dts: %+d\n\ - use dtr ptt: %c\n\ - use flowcontrol: %c", - rig.retries, rig.timeout, (rig.rts ? +12 : -12), - (rig.rtsptt ? 'T' : 'F'), (rig.dtr ? +12 : -12), (rig.dtrptt ? 'T' : 'F'), - (rig.rtscts ? 'T' : 'F')); - } //--------------------------------------------------------------------- diff --git a/src/soundcard/soundconf.cxx b/src/soundcard/soundconf.cxx index f814179d..c322bd61 100644 --- a/src/soundcard/soundconf.cxx +++ b/src/soundcard/soundconf.cxx @@ -225,7 +225,7 @@ static void sound_init_options(void) menuSampleConverter->tooltip(src_get_description(progdefaults.sample_converter)); - valPCMvolume->value(progdefaults.PCMvolume * 100.0); + valPCMvolume->value(progdefaults.PCMvolume); btnMicIn->value(progdefaults.MicIn); btnLineIn->value(progdefaults.LineIn);