kopia lustrzana https://github.com/jamescoxon/dl-fldigi
Upstream version 1.37j
rodzic
6d7eb5c098
commit
819904b72d
|
@ -1,6 +1,6 @@
|
||||||
Change Log:
|
Change Log:
|
||||||
|
|
||||||
1.37 1) Increased TxPPM to +/- 50000 to match the RxPPM range
|
1.3x 1) Increased TxPPM to +/- 50000 to match the RxPPM range
|
||||||
2) Changed all audio i/o to separate 2 channel control (stereo)
|
2) Changed all audio i/o to separate 2 channel control (stereo)
|
||||||
3) Added right channel CW QRQ signal
|
3) Added right channel CW QRQ signal
|
||||||
4) Added right channel pseudo FSK signal
|
4) Added right channel pseudo FSK signal
|
||||||
|
@ -26,6 +26,11 @@ Change Log:
|
||||||
fldigi TEST).
|
fldigi TEST).
|
||||||
16) Added Azimuth computation to QRZ query (submitted by WA5ZNU).
|
16) Added Azimuth computation to QRZ query (submitted by WA5ZNU).
|
||||||
17) Corrected adif file header field <PROGRAMID:6>fldigi
|
17) Corrected adif file header field <PROGRAMID:6>fldigi
|
||||||
|
18) Added fix to psk decoder sync detector. Thanks to the PocketDigi
|
||||||
|
author, Vojtech Bubnik, OK1IAK.
|
||||||
|
19) Added popup menu (right click) to the lower left corner modem button.
|
||||||
|
Allows quick change on psk modes only. Left button still opens up
|
||||||
|
the configuration tab for the modem in use.
|
||||||
1.34 1) Cleaned up unused code segments
|
1.34 1) Cleaned up unused code segments
|
||||||
2) Modified CW decoder to allow setting upper and lower limits on
|
2) Modified CW decoder to allow setting upper and lower limits on
|
||||||
Tx WPM
|
Tx WPM
|
||||||
|
|
|
@ -861,7 +861,7 @@ void cb_QRZ(Fl_Widget *b, void *)
|
||||||
QRZquery();
|
QRZquery();
|
||||||
}
|
}
|
||||||
|
|
||||||
void status_cb(Fl_Widget *b, void *)
|
void status_btn_left_click()
|
||||||
{
|
{
|
||||||
progdefaults.loadDefaults();
|
progdefaults.loadDefaults();
|
||||||
tabsConfigure->value(tabModems);
|
tabsConfigure->value(tabModems);
|
||||||
|
@ -898,6 +898,65 @@ void status_cb(Fl_Widget *b, void *)
|
||||||
dlgConfig->show();
|
dlgConfig->show();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Fl_Menu_Item quick_change_menu[] = {
|
||||||
|
{"psk 31", 0, (Fl_Callback*)cb_mnuPSK31 },
|
||||||
|
{"qpsk 31", 0, (Fl_Callback*)cb_mnuQPSK31 },
|
||||||
|
{"psk 63", 0, (Fl_Callback*)cb_mnuPSK63 },
|
||||||
|
{"qpsk 63", 0, (Fl_Callback*)cb_mnuQPSK63 },
|
||||||
|
{"psk 125", 0, (Fl_Callback*)cb_mnuPSK125 },
|
||||||
|
{"qpsk 125", 0, (Fl_Callback*)cb_mnuQPSK125 },
|
||||||
|
{"psk 250", 0, (Fl_Callback*)cb_mnuPSK250 },
|
||||||
|
{"qpsk 250", 0, (Fl_Callback*)cb_mnuQPSK250, 0, FL_MENU_DIVIDER },
|
||||||
|
{"No change", 0, 0 },
|
||||||
|
{ 0 }
|
||||||
|
};
|
||||||
|
|
||||||
|
void status_btn_right_click()
|
||||||
|
{
|
||||||
|
int xpos = Fl::event_x();
|
||||||
|
int ypos = Fl::event_y();
|
||||||
|
const Fl_Menu_Item * m;
|
||||||
|
switch (active_modem->get_mode()) {
|
||||||
|
case MODE_BPSK31:
|
||||||
|
case MODE_QPSK31 :
|
||||||
|
case MODE_PSK63 :
|
||||||
|
case MODE_QPSK63 :
|
||||||
|
case MODE_PSK125 :
|
||||||
|
case MODE_QPSK125 :
|
||||||
|
case MODE_PSK250 :
|
||||||
|
case MODE_QPSK250 :
|
||||||
|
m = quick_change_menu->popup(xpos, ypos - 200, 0, 0, 0);
|
||||||
|
if (!m) break;
|
||||||
|
if (m->callback_ == 0) break;
|
||||||
|
m->callback_(0,0);
|
||||||
|
/*
|
||||||
|
switch (pressed) {
|
||||||
|
case 1: initPSK31(); break;
|
||||||
|
case 2: initQPSK31(); break;
|
||||||
|
case 3: initPSK63(); break;
|
||||||
|
case 4: initQPSK63(); break;
|
||||||
|
case 5: initPSK125(); break;
|
||||||
|
case 6: initQPSK125(); break;
|
||||||
|
case 7: initPSK250(); break;
|
||||||
|
case 8: initQPSK250(); break;
|
||||||
|
default: break;
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
break;
|
||||||
|
default :
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void status_cb(Fl_Widget *b, void *)
|
||||||
|
{
|
||||||
|
int btn = Fl::event_key();
|
||||||
|
if (btn == FL_Button+1)
|
||||||
|
status_btn_left_click();
|
||||||
|
else if (btn == FL_Button+3)
|
||||||
|
status_btn_right_click();
|
||||||
|
}
|
||||||
|
|
||||||
void cb_cboBand(Fl_Widget *w, void *d)
|
void cb_cboBand(Fl_Widget *w, void *d)
|
||||||
{
|
{
|
||||||
Fl_ComboBox *cbBox = (Fl_ComboBox *) w;
|
Fl_ComboBox *cbBox = (Fl_ComboBox *) w;
|
||||||
|
|
|
@ -2,6 +2,6 @@
|
||||||
#define _VERSION_H
|
#define _VERSION_H
|
||||||
|
|
||||||
#define FLDIGI_NAME "fldigi"
|
#define FLDIGI_NAME "fldigi"
|
||||||
#define FLDIGI_VERSION "1.37i"
|
#define FLDIGI_VERSION "1.37j"
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -248,7 +248,7 @@ int MACROTEXT::loadMacros(string filename)
|
||||||
int mNumber = 0;
|
int mNumber = 0;
|
||||||
unsigned long int crlf; // 64 bit cpu's
|
unsigned long int crlf; // 64 bit cpu's
|
||||||
char szTemp[10];
|
char szTemp[10];
|
||||||
char szLine[255];
|
char szLine[4096];
|
||||||
|
|
||||||
ifstream mFile(filename.c_str());
|
ifstream mFile(filename.c_str());
|
||||||
|
|
||||||
|
@ -259,7 +259,7 @@ int MACROTEXT::loadMacros(string filename)
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
mFile.getline(szLine, 255);
|
mFile.getline(szLine, 4095);
|
||||||
mLine = szLine;
|
mLine = szLine;
|
||||||
if (mLine.find("//fldigi macro definition file") != 0) {
|
if (mLine.find("//fldigi macro definition file") != 0) {
|
||||||
mFile.close();
|
mFile.close();
|
||||||
|
@ -274,7 +274,7 @@ int MACROTEXT::loadMacros(string filename)
|
||||||
}
|
}
|
||||||
inMacro = false;
|
inMacro = false;
|
||||||
while (!mFile.eof()) {
|
while (!mFile.eof()) {
|
||||||
mFile.getline(szLine,255);
|
mFile.getline(szLine,4095);
|
||||||
mLine = szLine;
|
mLine = szLine;
|
||||||
if (mLine.find("//") == 0) // skip over all comment lines
|
if (mLine.find("//") == 0) // skip over all comment lines
|
||||||
continue;
|
continue;
|
||||||
|
|
|
@ -218,7 +218,7 @@ int olivia::rx_process(double *buf, int len)
|
||||||
double snr;
|
double snr;
|
||||||
static char msg1[20];
|
static char msg1[20];
|
||||||
static char msg2[20];
|
static char msg2[20];
|
||||||
static char msg3[60];
|
// static char msg3[60];
|
||||||
|
|
||||||
if ((lastfreq != frequency || Rx->Reverse != 0) && !reverse) {
|
if ((lastfreq != frequency || Rx->Reverse != 0) && !reverse) {
|
||||||
Rx->FirstCarrierMultiplier = (frequency - (Rx->Bandwidth / 2)) / 500;
|
Rx->FirstCarrierMultiplier = (frequency - (Rx->Bandwidth / 2)) / 500;
|
||||||
|
@ -257,9 +257,9 @@ int olivia::rx_process(double *buf, int len)
|
||||||
put_Status1(msg1);
|
put_Status1(msg1);
|
||||||
sprintf(msg2, "Freq: %+4.1f", Rx->FrequencyOffset());
|
sprintf(msg2, "Freq: %+4.1f", Rx->FrequencyOffset());
|
||||||
put_Status2(msg2);
|
put_Status2(msg2);
|
||||||
sprintf(msg3, "Tune Margin: %4.1f, Time: %5.3f Hz, Block Period: %5.3f sec",
|
// sprintf(msg3, "Tune: %4.1f, Time: %5.3f Hz, Block: %5.3f sec",
|
||||||
Rx->TuneMargin(), Rx->TimeOffset(), Rx->BlockPeriod());
|
// Rx->TuneMargin(), Rx->TimeOffset(), Rx->BlockPeriod());
|
||||||
put_status(msg3);
|
// put_status(msg3);
|
||||||
|
|
||||||
while (Rx->GetChar(ch) > 0)
|
while (Rx->GetChar(ch) > 0)
|
||||||
if ((c = unescape(ch)) != -1 && c > 7)
|
if ((c = unescape(ch)) != -1 && c > 7)
|
||||||
|
|
Ładowanie…
Reference in New Issue