diff --git a/src/cw_rtty/cw.cxx b/src/cw_rtty/cw.cxx index 8e1f5ec1..fdb69c93 100644 --- a/src/cw_rtty/cw.cxx +++ b/src/cw_rtty/cw.cxx @@ -66,7 +66,20 @@ void cw::rx_init() void cw::init() { - modem::init(); + bool wfrev = wf->Reverse(); + bool wfsb = wf->USB(); + reverse = wfrev ^ !wfsb; + + if (progdefaults.StartAtSweetSpot) + set_freq(progdefaults.CWsweetspot); + else if (progStatus.carrier != 0) { + set_freq(progStatus.carrier); +#if !BENCHMARK_MODE + progStatus.carrier = 0; +#endif + } else + set_freq(wf->Carrier()); + trackingfilter->reset(); cw_adaptive_receive_threshold = (long int)trackingfilter->run(2 * cw_send_dot_length); put_cwRcvWPM(cw_send_speed); diff --git a/src/cw_rtty/rtty.cxx b/src/cw_rtty/rtty.cxx index b53cc4d6..1e3c7848 100644 --- a/src/cw_rtty/rtty.cxx +++ b/src/cw_rtty/rtty.cxx @@ -115,7 +115,20 @@ void rtty::rx_init() void rtty::init() { - modem::init(); + bool wfrev = wf->Reverse(); + bool wfsb = wf->USB(); + reverse = wfrev ^ !wfsb; + + if (progdefaults.StartAtSweetSpot) + set_freq(progdefaults.RTTYsweetspot); + else if (progStatus.carrier != 0) { + set_freq(progStatus.carrier); +#if !BENCHMARK_MODE + progStatus.carrier = 0; +#endif + } else + set_freq(wf->Carrier()); + rx_init(); put_MODEstatus(mode); snprintf(msg1, sizeof(msg1), "%-4.1f / %-4.0f", rtty_baud, rtty_shift); diff --git a/src/psk/psk.cxx b/src/psk/psk.cxx index 1dd15589..1b49d9f2 100644 --- a/src/psk/psk.cxx +++ b/src/psk/psk.cxx @@ -125,8 +125,8 @@ void psk::restart() void psk::init() { - modem::init(); restart(); + modem::init(); set_scope_mode(Digiscope::PHASE); initSN_IMD(); snratio = 1.0; diff --git a/src/trx/modem.cxx b/src/trx/modem.cxx index 27f7038e..5a02921b 100644 --- a/src/trx/modem.cxx +++ b/src/trx/modem.cxx @@ -136,6 +136,7 @@ modem::modem() s2n_valid = false; } +// modem types CW and RTTY do not use the base init() void modem::init() { bool wfrev = wf->Reverse(); @@ -143,14 +144,7 @@ void modem::init() reverse = wfrev ^ !wfsb; if (progdefaults.StartAtSweetSpot) { -// if (active_modem == cw_modem) - if (this == cw_modem) - set_freq(progdefaults.CWsweetspot); -// else if (active_modem == rtty_modem) - else if (this == rtty_modem) - set_freq(progdefaults.RTTYsweetspot); - else - set_freq(progdefaults.PSKsweetspot); + set_freq(progdefaults.PSKsweetspot); } else if (progStatus.carrier != 0) { set_freq(progStatus.carrier); #if !BENCHMARK_MODE