kopia lustrzana https://github.com/jamescoxon/dl-fldigi
Upstream version 2.05d
rodzic
e229f2849c
commit
4aba0d51f2
|
|
@ -4,7 +4,7 @@
|
|||
# Copyright (C) 2007 Stelios Bounanos, M0GLD (m0gld AT enotty DOT net)
|
||||
|
||||
AC_PREREQ(2.61)
|
||||
AC_INIT([fldigi], [2.05c], [w1hkj AT w1hkj DOT com])
|
||||
AC_INIT([fldigi], [2.05d], [w1hkj AT w1hkj DOT com])
|
||||
AC_CONFIG_AUX_DIR([build-aux])
|
||||
AM_INIT_AUTOMAKE([-Wall foreign 1.9.6])
|
||||
AM_MAINTAINER_MODE
|
||||
|
|
|
|||
|
|
@ -303,12 +303,54 @@ void init_modem(trx_mode mode)
|
|||
modem_config_tab = tabsModems->child(0);
|
||||
|
||||
switch (mode) {
|
||||
case MODE_MFSK16: case MODE_MFSK8:
|
||||
case MODE_NEXT:
|
||||
if ((mode = active_modem->get_mode() + 1) == NUM_MODES)
|
||||
mode = 0;
|
||||
return init_modem(mode);
|
||||
case MODE_PREV:
|
||||
if ((mode = active_modem->get_mode() - 1) < 0)
|
||||
mode = NUM_MODES - 1;
|
||||
return init_modem(mode);
|
||||
|
||||
case MODE_CW:
|
||||
startup_modem(*mode_info[mode].modem ? *mode_info[mode].modem : new cw);
|
||||
modem_config_tab = tabCW;
|
||||
break;
|
||||
|
||||
case MODE_DOMINOEX4: case MODE_DOMINOEX5: case MODE_DOMINOEX8:
|
||||
case MODE_DOMINOEX11: case MODE_DOMINOEX16: case MODE_DOMINOEX22:
|
||||
startup_modem(*mode_info[mode].modem ? *mode_info[mode].modem :
|
||||
*mode_info[mode].modem = new dominoex(mode));
|
||||
quick_change = quick_change_domino;
|
||||
modem_config_tab = tabDomEX;
|
||||
break;
|
||||
|
||||
case MODE_FELDHELL: case MODE_FSKHELL: case MODE_FSKH105:
|
||||
startup_modem(*mode_info[mode].modem ? *mode_info[mode].modem :
|
||||
*mode_info[mode].modem = new feld(mode));
|
||||
quick_change = quick_change_feld;
|
||||
modem_config_tab = tabFeld;
|
||||
break;
|
||||
|
||||
case MODE_MFSK8: case MODE_MFSK16:
|
||||
startup_modem(*mode_info[mode].modem ? *mode_info[mode].modem :
|
||||
*mode_info[mode].modem = new mfsk(mode));
|
||||
quick_change = quick_change_mfsk;
|
||||
break;
|
||||
|
||||
case MODE_BPSK31: case MODE_PSK63: case MODE_PSK125: case MODE_PSK250:
|
||||
startup_modem(*mode_info[mode].modem ? *mode_info[mode].modem :
|
||||
*mode_info[mode].modem = new psk(mode));
|
||||
quick_change = quick_change_psk;
|
||||
modem_config_tab = tabPSK;
|
||||
break;
|
||||
case MODE_QPSK31: case MODE_QPSK63: case MODE_QPSK125: case MODE_QPSK250:
|
||||
startup_modem(*mode_info[mode].modem ? *mode_info[mode].modem :
|
||||
*mode_info[mode].modem = new psk(mode));
|
||||
quick_change = quick_change_qpsk;
|
||||
modem_config_tab = tabPSK;
|
||||
break;
|
||||
|
||||
case MODE_OLIVIA:
|
||||
startup_modem(*mode_info[mode].modem ? *mode_info[mode].modem :
|
||||
*mode_info[mode].modem = new olivia);
|
||||
|
|
@ -328,39 +370,6 @@ void init_modem(trx_mode mode)
|
|||
quick_change = quick_change_throb;
|
||||
break;
|
||||
|
||||
case MODE_BPSK31: case MODE_PSK63: case MODE_PSK125: case MODE_PSK250:
|
||||
startup_modem(*mode_info[mode].modem ? *mode_info[mode].modem :
|
||||
*mode_info[mode].modem = new psk(mode));
|
||||
quick_change = quick_change_psk;
|
||||
modem_config_tab = tabPSK;
|
||||
break;
|
||||
case MODE_QPSK31: case MODE_QPSK63: case MODE_QPSK125: case MODE_QPSK250:
|
||||
startup_modem(*mode_info[mode].modem ? *mode_info[mode].modem :
|
||||
*mode_info[mode].modem = new psk(mode));
|
||||
quick_change = quick_change_qpsk;
|
||||
modem_config_tab = tabPSK;
|
||||
break;
|
||||
|
||||
case MODE_FELDHELL: case MODE_FSKHELL: case MODE_FSKH105:
|
||||
startup_modem(*mode_info[mode].modem ? *mode_info[mode].modem :
|
||||
*mode_info[mode].modem = new feld(mode));
|
||||
quick_change = quick_change_feld;
|
||||
modem_config_tab = tabFeld;
|
||||
break;
|
||||
|
||||
case MODE_CW:
|
||||
startup_modem(*mode_info[mode].modem ? *mode_info[mode].modem : new cw);
|
||||
modem_config_tab = tabCW;
|
||||
break;
|
||||
|
||||
case MODE_DOMINOEX4: case MODE_DOMINOEX5: case MODE_DOMINOEX8:
|
||||
case MODE_DOMINOEX11: case MODE_DOMINOEX16: case MODE_DOMINOEX22:
|
||||
startup_modem(*mode_info[mode].modem ? *mode_info[mode].modem :
|
||||
*mode_info[mode].modem = new dominoex(mode));
|
||||
quick_change = quick_change_domino;
|
||||
modem_config_tab = tabDomEX;
|
||||
break;
|
||||
|
||||
case MODE_WWV:
|
||||
startup_modem(*mode_info[mode].modem ? *mode_info[mode].modem :
|
||||
*mode_info[mode].modem = new wwv);
|
||||
|
|
|
|||
|
|
@ -40,39 +40,6 @@ const char *state_names[] = {
|
|||
// Elements are in enum trx_mode order. Mode name video-id uses the
|
||||
// first string (sname), so its length should be a multiple of 2.
|
||||
const struct mode_info_t mode_info[NUM_MODES] = {
|
||||
{ MODE_MFSK16, &mfsk16_modem, "MFSK16", "MFSK-16", "MFSK8" },
|
||||
{ MODE_MFSK8, &mfsk8_modem, "MFSK-8", "MFSK-8", "MFSK16" },
|
||||
|
||||
{ MODE_OLIVIA, &olivia_modem, "OLIVIA", "Olivia", "" },
|
||||
|
||||
{ MODE_RTTY, &rtty_modem, "RTTY", "RTTY", "RTTY" },
|
||||
|
||||
{ MODE_THROB1, &throb1_modem, "THROB1", "Throb 1", "" },
|
||||
{ MODE_THROB2, &throb2_modem, "THROB2", "Throb 2", "" },
|
||||
{ MODE_THROB4, &throb4_modem, "THROB4", "Throb 4", "" },
|
||||
|
||||
{ MODE_THROBX1, &throbx1_modem, "THRBX1", "ThrobX 1", "" },
|
||||
{ MODE_THROBX2, &throbx2_modem, "THRBX2", "ThrobX 2", "" },
|
||||
{ MODE_THROBX4, &throbx4_modem, "THRBX4", "ThrobX 4", "" },
|
||||
|
||||
{ MODE_BPSK31, &psk31_modem, "BPSK31", "BPSK-31", "PSK31" },
|
||||
{ MODE_QPSK31, &qpsk31_modem, "QPSK31", "QPSK-31", "QPSK31" },
|
||||
|
||||
{ MODE_PSK63, &psk63_modem, "PSK-63", "BPSK-63", "PSK63" },
|
||||
{ MODE_QPSK63, &qpsk63_modem, "QPSK63", "QPSK-63", "QPSK63" },
|
||||
|
||||
{ MODE_PSK125, &psk125_modem, "PSK125", "BPSK-125", "PSK125" },
|
||||
{ MODE_QPSK125, &qpsk125_modem, "QPSK-125", "QPSK-125", "QPSK125" },
|
||||
|
||||
{ MODE_PSK250, &psk250_modem, "PSK-250", "BPSK-250", "PSK250" },
|
||||
{ MODE_QPSK250, &qpsk250_modem, "QPSK-250", "QPSK-250", "QPSK250" },
|
||||
|
||||
{ MODE_MT63, 0, "MT63", "MT-63", "" },
|
||||
|
||||
{ MODE_FELDHELL, &feld_modem, "FELDHELL", "Feld Hell", "" },
|
||||
{ MODE_FSKHELL, &feld_FMmodem, "FSK-HELL", "FSK Hell", "" },
|
||||
{ MODE_FSKH105, &feld_FM105modem, "FSK-H105", "FSK Hell-105", "" },
|
||||
|
||||
{ MODE_CW, &cw_modem, "CW", "CW", "CW" },
|
||||
|
||||
{ MODE_DOMINOEX4, &dominoex4_modem, "DomEX4", "DominoEX 4", "DOMINOEX4" },
|
||||
|
|
@ -82,6 +49,36 @@ const struct mode_info_t mode_info[NUM_MODES] = {
|
|||
{ MODE_DOMINOEX16, &dominoex16_modem, "DomX16", "DominoEX 16", "DOMINOEX16" },
|
||||
{ MODE_DOMINOEX22, &dominoex22_modem, "DomX22", "DominoEX 22", "DOMINOEX22" },
|
||||
|
||||
{ MODE_FELDHELL, &feld_modem, "FELDHELL", "Feld Hell", "" },
|
||||
{ MODE_FSKHELL, &feld_FMmodem, "FSK-HELL", "FSK Hell", "" },
|
||||
{ MODE_FSKH105, &feld_FM105modem, "FSK-H105", "FSK Hell-105", "" },
|
||||
|
||||
{ MODE_MFSK8, &mfsk8_modem, "MFSK-8", "MFSK-8", "MFSK16" },
|
||||
{ MODE_MFSK16, &mfsk16_modem, "MFSK16", "MFSK-16", "MFSK8" },
|
||||
|
||||
{ MODE_BPSK31, &psk31_modem, "BPSK31", "BPSK-31", "PSK31" },
|
||||
{ MODE_QPSK31, &qpsk31_modem, "QPSK31", "QPSK-31", "QPSK31" },
|
||||
{ MODE_PSK63, &psk63_modem, "PSK-63", "BPSK-63", "PSK63" },
|
||||
{ MODE_QPSK63, &qpsk63_modem, "QPSK63", "QPSK-63", "QPSK63" },
|
||||
{ MODE_PSK125, &psk125_modem, "PSK125", "BPSK-125", "PSK125" },
|
||||
{ MODE_QPSK125, &qpsk125_modem, "QPSK-125", "QPSK-125", "QPSK125" },
|
||||
{ MODE_PSK250, &psk250_modem, "PSK-250", "BPSK-250", "PSK250" },
|
||||
{ MODE_QPSK250, &qpsk250_modem, "QPSK-250", "QPSK-250", "QPSK250" },
|
||||
|
||||
{ MODE_OLIVIA, &olivia_modem, "OLIVIA", "Olivia", "" },
|
||||
|
||||
{ MODE_RTTY, &rtty_modem, "RTTY", "RTTY", "RTTY" },
|
||||
|
||||
{ MODE_THROB1, &throb1_modem, "THROB1", "Throb 1", "" },
|
||||
{ MODE_THROB2, &throb2_modem, "THROB2", "Throb 2", "" },
|
||||
{ MODE_THROB4, &throb4_modem, "THROB4", "Throb 4", "" },
|
||||
{ MODE_THROBX1, &throbx1_modem, "THRBX1", "ThrobX 1", "" },
|
||||
{ MODE_THROBX2, &throbx2_modem, "THRBX2", "ThrobX 2", "" },
|
||||
{ MODE_THROBX4, &throbx4_modem, "THRBX4", "ThrobX 4", "" },
|
||||
|
||||
// { MODE_MT63, 0, "MT63", "MT-63", "" },
|
||||
|
||||
{ MODE_WWV, &wwv_modem, "WWV", "WWV", "" },
|
||||
|
||||
{ MODE_ANALYSIS, &anal_modem, "ANALYSIS", "Freq Analysis", "" }
|
||||
};
|
||||
|
|
|
|||
|
|
@ -43,16 +43,25 @@ enum state_t {
|
|||
extern const char *state_names[];
|
||||
|
||||
enum {
|
||||
MODE_MFSK16 = 0,
|
||||
MODE_PREV = -2,
|
||||
MODE_NEXT,
|
||||
|
||||
MODE_CW,
|
||||
|
||||
MODE_DOMINOEX4,
|
||||
MODE_DOMINOEX5,
|
||||
MODE_DOMINOEX8,
|
||||
MODE_DOMINOEX11,
|
||||
MODE_DOMINOEX16,
|
||||
MODE_DOMINOEX22,
|
||||
|
||||
MODE_FELDHELL,
|
||||
MODE_FSKHELL,
|
||||
MODE_FSKH105,
|
||||
|
||||
MODE_MFSK8,
|
||||
MODE_OLIVIA,
|
||||
MODE_RTTY,
|
||||
MODE_THROB1,
|
||||
MODE_THROB2,
|
||||
MODE_THROB4,
|
||||
MODE_THROBX1,
|
||||
MODE_THROBX2,
|
||||
MODE_THROBX4,
|
||||
MODE_MFSK16,
|
||||
|
||||
MODE_BPSK31,
|
||||
MODE_QPSK31,
|
||||
MODE_PSK63,
|
||||
|
|
@ -61,19 +70,23 @@ enum {
|
|||
MODE_QPSK125,
|
||||
MODE_PSK250,
|
||||
MODE_QPSK250,
|
||||
MODE_MT63,
|
||||
MODE_FELDHELL,
|
||||
MODE_FSKHELL,
|
||||
MODE_FSKH105,
|
||||
MODE_CW,
|
||||
MODE_DOMINOEX4,
|
||||
MODE_DOMINOEX5,
|
||||
MODE_DOMINOEX8,
|
||||
MODE_DOMINOEX11,
|
||||
MODE_DOMINOEX16,
|
||||
MODE_DOMINOEX22,
|
||||
|
||||
MODE_OLIVIA,
|
||||
|
||||
MODE_RTTY,
|
||||
|
||||
MODE_THROB1,
|
||||
MODE_THROB2,
|
||||
MODE_THROB4,
|
||||
MODE_THROBX1,
|
||||
MODE_THROBX2,
|
||||
MODE_THROBX4,
|
||||
|
||||
// MODE_MT63,
|
||||
|
||||
MODE_WWV,
|
||||
MODE_ANALYSIS,
|
||||
|
||||
NUM_MODES
|
||||
};
|
||||
typedef int trx_mode;
|
||||
|
|
|
|||
|
|
@ -24,7 +24,7 @@ bool pskmail_text_available = false;
|
|||
|
||||
void ParseMode(string src)
|
||||
{
|
||||
for (size_t i = 0; i < sizeof(mode_info)/sizeof(mode_info[0]); ++i) {
|
||||
for (size_t i = 0; i < NUM_MODES; ++i) {
|
||||
if (src.find(mode_info[i].pskmail_name) != string::npos)
|
||||
init_modem(mode_info[i].mode);
|
||||
else if (src.find("PTTTUNE") != string::npos) {
|
||||
|
|
|
|||
|
|
@ -1023,7 +1023,7 @@ void btnRev_cb(Fl_Widget *w, void *v) {
|
|||
void btnMem_cb(Fl_Widget *, void *menu_event)
|
||||
{
|
||||
static std::vector<struct qrg_mode_t> qrg_list;
|
||||
enum { SELECT, APPEND, REPLACE, REMOVE };
|
||||
enum { SELECT, APPEND, REPLACE, REMOVE, CLEAR };
|
||||
int op = SELECT, elem = 0;
|
||||
|
||||
if (menu_event) { // event on popup menu
|
||||
|
|
@ -1034,10 +1034,7 @@ void btnMem_cb(Fl_Widget *, void *menu_event)
|
|||
op = REPLACE;
|
||||
break;
|
||||
case FL_LEFT_MOUSE: case FL_RIGHT_MOUSE: default:
|
||||
if (Fl::event_state() & FL_SHIFT)
|
||||
op = REMOVE;
|
||||
else
|
||||
op = SELECT;
|
||||
op = (Fl::event_state() & FL_SHIFT) ? REMOVE : SELECT;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -1051,7 +1048,7 @@ void btnMem_cb(Fl_Widget *, void *menu_event)
|
|||
op = SELECT;
|
||||
break;
|
||||
case FL_LEFT_MOUSE: default:
|
||||
op = APPEND;
|
||||
op = (Fl::event_state() & FL_SHIFT) ? CLEAR : APPEND;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -1078,6 +1075,10 @@ void btnMem_cb(Fl_Widget *, void *menu_event)
|
|||
wf->mbtnMem->remove(elem);
|
||||
qrg_list.erase(qrg_list.begin() + elem);
|
||||
break;
|
||||
case CLEAR:
|
||||
wf->mbtnMem->clear();
|
||||
qrg_list.clear();
|
||||
break;
|
||||
case APPEND: case REPLACE:
|
||||
m.rfcarrier = wf->rfcarrier();
|
||||
m.carrier = active_modem->get_freq();
|
||||
|
|
@ -1349,22 +1350,23 @@ int waterfall::handle(int event)
|
|||
if ( !((d = Fl::event_dy()) || (d = Fl::event_dx())) )
|
||||
return 1;
|
||||
|
||||
Fl_Valuator *val;
|
||||
if (Fl::event_inside(sldrSquelch) || Fl::event_inside(pgrsSquelch))
|
||||
val = sldrSquelch;
|
||||
else if (Fl::event_inside(wfcarrier))
|
||||
val = wfcarrier;
|
||||
else if (Fl::event_inside(wfRefLevel))
|
||||
val = wfRefLevel;
|
||||
else if (Fl::event_inside(wfAmpSpan))
|
||||
val = wfAmpSpan;
|
||||
else
|
||||
return 0;
|
||||
Fl_Valuator* v[] = { sldrSquelch, wfcarrier, wfRefLevel, wfAmpSpan };
|
||||
for (size_t i = 0; i < sizeof(v)/sizeof(v[0]); i++) {
|
||||
if (Fl::event_inside(v[i])) {
|
||||
v[i]->value(v[i]->clamp(v[i]->increment(v[i]->value(), -d)));
|
||||
v[i]->do_callback();
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
val->value(val->clamp(val->increment(val->value(), -d)));
|
||||
val->do_callback();
|
||||
// this does not belong here, but we don't have access to this widget's
|
||||
// handle method (or its parent's)
|
||||
if (Fl::event_inside(MODEstatus)) {
|
||||
init_modem(d > 0 ? MODE_NEXT : MODE_PREV);
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
static void hide_cursor(void *w)
|
||||
|
|
|
|||
|
|
@ -39,6 +39,7 @@ void anal::tx_init(cSound *sc)
|
|||
void anal::rx_init()
|
||||
{
|
||||
phaseacc = 0;
|
||||
put_MODEstatus(mode);
|
||||
}
|
||||
|
||||
void anal::init()
|
||||
|
|
@ -74,8 +75,6 @@ void anal::restart()
|
|||
|
||||
sum = 0.0;
|
||||
fout_1 = fout_2 = 0.0;
|
||||
|
||||
put_MODEstatus(mode);
|
||||
}
|
||||
|
||||
anal::anal()
|
||||
|
|
|
|||
Ładowanie…
Reference in New Issue