kopia lustrzana https://github.com/jamescoxon/dl-fldigi
Choice-->ListBox
* Changed all instances of Fl_Choice and Fl_Input_Choice
to Fl_ListBox.
- old Fl_Choice objects renamed to listbox_xxx
- old Fl_Input_Choice objects renamed to i_listbox_xxx
- Note that i_listbox_xxx objects need indexing offset
to maintain compatability with progdefaults definitions.
- New objects should use listbox_xxx naming convention.
- This removes a rather ugly Fltk widget. Fltk does not
have a native ComboBox or ListBox widget.
pull/1/head
rodzic
8fef9bbc7e
commit
6762423be6
Plik diff jest za duży
Load Diff
Plik diff jest za duży
Load Diff
|
|
@ -652,8 +652,8 @@ void set_olivia_default_integ()
|
|||
|
||||
void set_olivia_tab_widgets()
|
||||
{
|
||||
mnuOlivia_Bandwidth->value(progdefaults.oliviabw);
|
||||
mnuOlivia_Tones->value(progdefaults.oliviatones);
|
||||
i_listbox_olivia_bandwidth->index(progdefaults.oliviabw+1);
|
||||
i_listbox_olivia_tones->index(progdefaults.oliviatones+1);
|
||||
set_olivia_default_integ();
|
||||
}
|
||||
|
||||
|
|
@ -687,8 +687,8 @@ void set_contestia_default_integ()
|
|||
|
||||
void set_contestia_tab_widgets()
|
||||
{
|
||||
mnuContestia_Bandwidth->value(progdefaults.contestiabw);
|
||||
mnuContestia_Tones->value(progdefaults.contestiatones);
|
||||
i_listbox_contestia_bandwidth->index(progdefaults.contestiabw+1);
|
||||
i_listbox_contestia_tones->index(progdefaults.contestiatones+1);
|
||||
set_contestia_default_integ();
|
||||
}
|
||||
|
||||
|
|
@ -787,12 +787,12 @@ void cb_contestiaCustom(Fl_Widget *w, void *arg)
|
|||
|
||||
void set_rtty_tab_widgets()
|
||||
{
|
||||
selShift->value(progdefaults.rtty_shift);
|
||||
selShift->index(progdefaults.rtty_shift+1);
|
||||
selCustomShift->deactivate();
|
||||
selBits->value(progdefaults.rtty_bits);
|
||||
selBaud->value(progdefaults.rtty_baud);
|
||||
selParity->value(progdefaults.rtty_parity);
|
||||
selStopBits->value(progdefaults.rtty_stop);
|
||||
selBits->index(progdefaults.rtty_bits+1);
|
||||
selBaud->index(progdefaults.rtty_baud+1);
|
||||
selParity->index(progdefaults.rtty_parity+1);
|
||||
selStopBits->index(progdefaults.rtty_stop+1);
|
||||
}
|
||||
|
||||
void cb_rtty45(Fl_Widget *w, void *arg)
|
||||
|
|
@ -1382,9 +1382,8 @@ void cb_init_mode(Fl_Widget *, void *mode)
|
|||
|
||||
// character set selection menu
|
||||
|
||||
void cb_charset_menu(Fl_Widget *, void *charset)
|
||||
void set_charset_listbox(int rxtx_charset)
|
||||
{
|
||||
rxtx_charset = reinterpret_cast<intptr_t>(charset);
|
||||
int tiniconv_id = charset_list[rxtx_charset].tiniconv_id;
|
||||
|
||||
// order all converters to switch to the new encoding
|
||||
|
|
@ -1398,16 +1397,22 @@ void cb_charset_menu(Fl_Widget *, void *charset)
|
|||
brwsViewer->set_input_encoding(tiniconv_id);
|
||||
|
||||
// update the button
|
||||
CHARSETstatus->label(charset_list[rxtx_charset].name);
|
||||
progdefaults.charset_name = charset_list[rxtx_charset].name;
|
||||
listbox_charset_status->value(progdefaults.charset_name.c_str());
|
||||
restoreFocus();
|
||||
}
|
||||
|
||||
void populate_charset_menu(void)
|
||||
void cb_listbox_charset(Fl_Widget *w, void *)
|
||||
{
|
||||
Fl_ListBox * lbox = (Fl_ListBox *)w;
|
||||
set_charset_listbox(lbox->index());
|
||||
}
|
||||
|
||||
void populate_charset_listbox(void)
|
||||
{
|
||||
for (unsigned int i = 0; i < number_of_charsets; i++)
|
||||
CHARSETstatus->add(charset_list[i].name, 0, cb_charset_menu,
|
||||
reinterpret_cast<void *>(charset_list[i].tiniconv_id));
|
||||
listbox_charset_status->add( charset_list[i].name );
|
||||
listbox_charset_status->value(progdefaults.charset_name.c_str());
|
||||
}
|
||||
|
||||
// find the position of the default charset in charset_list[] and trigger the callback
|
||||
|
|
@ -1415,8 +1420,7 @@ void set_default_charset(void)
|
|||
{
|
||||
for (unsigned int i = 0; i < number_of_charsets; i++) {
|
||||
if (strcmp(charset_list[i].name, progdefaults.charset_name.c_str()) == 0) {
|
||||
cb_charset_menu(0,
|
||||
reinterpret_cast<void *>(charset_list[i].tiniconv_id));
|
||||
set_charset_listbox(i);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
|
@ -7006,8 +7010,8 @@ void set_olivia_bw(int bw)
|
|||
else
|
||||
i = 4;
|
||||
bool changed = progdefaults.changed;
|
||||
mnuOlivia_Bandwidth->value(i);
|
||||
mnuOlivia_Bandwidth->do_callback();
|
||||
i_listbox_olivia_bandwidth->index(i+1);
|
||||
i_listbox_olivia_bandwidth->do_callback();
|
||||
progdefaults.changed = changed;
|
||||
}
|
||||
|
||||
|
|
@ -7017,8 +7021,8 @@ void set_olivia_tones(int tones)
|
|||
while (tones >>= 1)
|
||||
i++;
|
||||
bool changed = progdefaults.changed;
|
||||
mnuOlivia_Tones->value(i - 1);
|
||||
mnuOlivia_Tones->do_callback();
|
||||
i_listbox_olivia_tones->index(i);// - 1);
|
||||
i_listbox_olivia_tones->do_callback();
|
||||
progdefaults.changed = changed;
|
||||
}
|
||||
|
||||
|
|
@ -7037,8 +7041,8 @@ void set_contestia_bw(int bw)
|
|||
else
|
||||
i = 4;
|
||||
bool changed = progdefaults.changed;
|
||||
mnuContestia_Bandwidth->value(i);
|
||||
mnuContestia_Bandwidth->do_callback();
|
||||
i_listbox_contestia_bandwidth->index(i+1);
|
||||
i_listbox_contestia_bandwidth->do_callback();
|
||||
progdefaults.changed = changed;
|
||||
}
|
||||
|
||||
|
|
@ -7048,8 +7052,8 @@ void set_contestia_tones(int tones)
|
|||
while (tones >>= 1)
|
||||
i++;
|
||||
bool changed = progdefaults.changed;
|
||||
mnuContestia_Tones->value(i - 1);
|
||||
mnuContestia_Tones->do_callback();
|
||||
i_listbox_contestia_tones->index(i);// - 1);
|
||||
i_listbox_contestia_tones->do_callback();
|
||||
progdefaults.changed = changed;
|
||||
}
|
||||
|
||||
|
|
@ -7065,7 +7069,7 @@ void set_rtty_shift(int shift)
|
|||
for (i = 0; i < sizeof(shifts)/sizeof(*shifts); i++)
|
||||
if (shifts[i] == shift)
|
||||
break;
|
||||
selShift->value(i);
|
||||
selShift->index(i+1);
|
||||
selShift->do_callback();
|
||||
if (i == sizeof(shifts)/sizeof(*shifts)) {
|
||||
selCustomShift->value(shift);
|
||||
|
|
@ -7082,7 +7086,7 @@ void set_rtty_baud(float baud)
|
|||
};
|
||||
for (size_t i = 0; i < sizeof(bauds)/sizeof(*bauds); i++) {
|
||||
if (bauds[i] == baud) {
|
||||
selBaud->value(i);
|
||||
selBaud->index(i+1);
|
||||
selBaud->do_callback();
|
||||
break;
|
||||
}
|
||||
|
|
@ -7095,7 +7099,7 @@ void set_rtty_bits(int bits)
|
|||
static const int bits_[] = { 5, 7, 8 };
|
||||
for (size_t i = 0; i < sizeof(bits_)/sizeof(*bits_); i++) {
|
||||
if (bits_[i] == bits) {
|
||||
selBits->value(i);
|
||||
selBits->index(i+1);
|
||||
selBits->do_callback();
|
||||
break;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -37,8 +37,7 @@ extern Fl_Tabs *tabsUI;
|
|||
extern Fl_Group *tabBrowser;
|
||||
extern Fl_Spinner2 *cntChannels;
|
||||
extern Fl_Spinner2 *cntTimeout;
|
||||
#include <FL/Fl_Choice.H>
|
||||
extern Fl_Choice *mnuViewerLabel;
|
||||
extern Fl_ListBox *listboxViewerLabel;
|
||||
#include <FL/Fl_Button.H>
|
||||
extern Fl_Button *btnViewerFont;
|
||||
extern Fl_Check_Button *btnFixedIntervals;
|
||||
|
|
@ -76,9 +75,9 @@ extern Fl_Button *btnDupColor;
|
|||
extern Fl_Group *tabUserInterface;
|
||||
extern Fl_Check_Button *btnShowTooltips;
|
||||
extern Fl_Check_Button *chkMenuIcons;
|
||||
extern Fl_Choice *mnuScheme;
|
||||
extern Fl_ListBox *listboxScheme;
|
||||
extern Fl_Button *bVisibleModes;
|
||||
extern Fl_Choice *mnuLang;
|
||||
extern Fl_ListBox *listbox_language;
|
||||
extern Fl_Check_Button *btn_rx_lowercase;
|
||||
extern Fl_Check_Button *btn_tx_lowercase;
|
||||
extern Fl_Check_Button *btn_save_config_on_exit;
|
||||
|
|
@ -138,9 +137,8 @@ extern Fl_Button *btn_wf_enable_all;
|
|||
extern Fl_Button *btn_wf_disable_all;
|
||||
extern Fl_Group *tabColorsFonts;
|
||||
extern Fl_Tabs *tabsColors;
|
||||
#include <FL/Fl_Menu_Button.H>
|
||||
#include "fl_digi.h"
|
||||
extern Fl_Menu_Button *CHARSETstatus;
|
||||
extern Fl_ListBox *listbox_charset_status;
|
||||
extern Fl_Input *RxText;
|
||||
extern Fl_Button *btnRxColor;
|
||||
extern Fl_Button *btnTxColor;
|
||||
|
|
@ -227,7 +225,7 @@ extern Fl_Check_Button *btnViewXmtSignal;
|
|||
extern Fl_Value_Slider2 *valTxMonitorLevel;
|
||||
extern Fl_Counter2 *cntLowFreqCutoff;
|
||||
extern Fl_Check_Button *btnWFaveraging;
|
||||
extern Fl_Choice *mnuFFTPrefilter;
|
||||
extern Fl_ListBox *listboxFFTPrefilter;
|
||||
extern Fl_Counter2 *cntrWfwidth;
|
||||
extern Fl_Counter2 *wf_latency;
|
||||
extern Fl_Counter2 *cntrWfheight;
|
||||
|
|
@ -235,7 +233,7 @@ extern Fl_Check_Button *btnWaterfallHistoryDefault;
|
|||
extern Fl_Check_Button *btnWaterfallQSY;
|
||||
extern Fl_Check_Button *btnWaterfallClickInsert;
|
||||
extern Fl_Input2 *inpWaterfallClickText;
|
||||
extern Fl_Choice *mnuWaterfallWheelAction;
|
||||
extern Fl_ListBox *listboxWaterfallWheelAction;
|
||||
extern Fl_Group *tabModems;
|
||||
extern Fl_Tabs *tabsModems;
|
||||
extern Fl_Group *tabCW;
|
||||
|
|
@ -262,16 +260,16 @@ extern Fl_Check_Button *btnCWusefarnsworth;
|
|||
extern Fl_Counter2 *cntCWweight;
|
||||
extern Fl_Counter2 *cntCWdash2dot;
|
||||
extern Fl_Counter2 *cntCWrisetime;
|
||||
extern Fl_Choice *mnuQSKshape;
|
||||
extern Fl_ListBox *i_listboxQSKshape;
|
||||
extern Fl_Check_Button *btnCWnarrow;
|
||||
extern Fl_Check_Button *btnQSK;
|
||||
extern Fl_Counter2 *cntPreTiming;
|
||||
extern Fl_Counter2 *cntPostTiming;
|
||||
extern Fl_Check_Button *btnQSKadjust;
|
||||
extern char szTestChar[];
|
||||
extern Fl_Choice *mnuTestChar;
|
||||
extern Fl_ListBox *i_listbox_test_char;
|
||||
extern Fl_Check_Button *btnCW_use_paren;
|
||||
extern Fl_Choice *mnu_prosign[9];
|
||||
extern Fl_ListBox *listbox_prosign[9];
|
||||
extern Fl_Group *tabDomEX;
|
||||
extern Fl_Input2 *txtSecondary;
|
||||
extern Fl_Check_Button *valDominoEX_FILTER;
|
||||
|
|
@ -281,11 +279,11 @@ extern Fl_Value_Slider2 *valDomCWI;
|
|||
extern Fl_Counter2 *valDominoEX_PATHS;
|
||||
extern Fl_Group *tabFeld;
|
||||
#include "fontdef.h"
|
||||
extern Fl_Choice *selHellFont;
|
||||
extern Fl_ListBox *listboxHellFont;
|
||||
extern Fl_Check_Button *btnBlackboard;
|
||||
extern Fl_Spinner2 *valHellXmtWidth;
|
||||
extern Fl_Check_Button *btnHellRcvWidth;
|
||||
extern Fl_Choice *mnuHellPulse;
|
||||
extern Fl_ListBox *listboxHellPulse;
|
||||
extern Fl_Value_Slider2 *sldrHellBW;
|
||||
extern Fl_Check_Button *btnFeldHellIdle;
|
||||
extern Fl_Check_Button *btnHellXmtWidth;
|
||||
|
|
@ -297,19 +295,20 @@ extern Fl_Check_Button *btnMT63_upper_lower;
|
|||
extern Fl_Spinner2 *MT63_tone_duration;
|
||||
extern Fl_Check_Button *btnMT63_at500;
|
||||
extern Fl_Group *tabOlivia;
|
||||
extern Fl_Choice *mnuOlivia_Bandwidth;
|
||||
extern Fl_Choice *mnuOlivia_Tones;
|
||||
extern Fl_ListBox *i_listbox_olivia_bandwidth;
|
||||
extern Fl_ListBox *i_listbox_olivia_tones;
|
||||
extern Fl_Counter2 *cntOlivia_smargin;
|
||||
extern Fl_Counter2 *cntOlivia_sinteg;
|
||||
extern Fl_Check_Button *btn_olivia_reset_fec;
|
||||
extern Fl_Check_Button *btnOlivia_8bit;
|
||||
extern Fl_Group *tabContestia;
|
||||
extern Fl_Choice *mnuContestia_Bandwidth;
|
||||
extern Fl_Choice *mnuContestia_Tones;
|
||||
extern Fl_ListBox *i_listbox_contestia_bandwidth;
|
||||
extern Fl_ListBox *i_listbox_contestia_tones;
|
||||
extern Fl_Counter2 *cntContestia_smargin;
|
||||
extern Fl_Counter2 *cntContestia_sinteg;
|
||||
extern Fl_Check_Button *btnContestia_8bit;
|
||||
extern Fl_Group *tabPacket;
|
||||
#include <FL/Fl_Choice.H>
|
||||
extern Fl_Choice *selPacket_Baud;
|
||||
extern Fl_Counter2 *valPacket_LoSig_RXGain;
|
||||
extern Fl_Counter2 *valPacket_HiSig_RXGain;
|
||||
|
|
@ -327,11 +326,11 @@ extern Fl_Group *tabPSK;
|
|||
extern Fl_Tabs *tabsPSK;
|
||||
extern Fl_Counter2 *cntSearchRange;
|
||||
extern Fl_Counter2 *cntACQsn;
|
||||
extern Fl_Choice *mnuPSKStatusTimeout;
|
||||
extern Fl_ListBox *listbox_psk_status_timeout;
|
||||
extern Fl_Check_Button *btnEnablePSKbrowsing;
|
||||
extern Fl_Group *tabRTTY;
|
||||
extern Fl_Tabs *tabsRTTY;
|
||||
extern Fl_Choice *mnuRTTYAFCSpeed;
|
||||
extern Fl_ListBox *i_listbox_rtty_afc_speed;
|
||||
extern Fl_Check_Button *chkUOSrx;
|
||||
#include <FL/Fl_Value_Input.H>
|
||||
extern Fl_Value_Input *rtty_rx_shape;
|
||||
|
|
@ -340,12 +339,12 @@ extern Fl_Check_Button *btnPreferXhairScope;
|
|||
extern Fl_Check_Button *chk_true_scope;
|
||||
extern Fl_Check_Button *chk_useMARKfreq;
|
||||
extern Fl_Button *btnRTTY_mark_color;
|
||||
extern Fl_Choice *selShift;
|
||||
extern Fl_ListBox *selShift;
|
||||
extern Fl_Counter2 *selCustomShift;
|
||||
extern Fl_Choice *selBaud;
|
||||
extern Fl_Choice *selBits;
|
||||
extern Fl_Choice *selParity;
|
||||
extern Fl_Choice *selStopBits;
|
||||
extern Fl_ListBox *selBaud;
|
||||
extern Fl_ListBox *selBits;
|
||||
extern Fl_ListBox *selParity;
|
||||
extern Fl_ListBox *selStopBits;
|
||||
extern Fl_Check_Button *btnAUTOCRLF;
|
||||
extern Fl_Counter2 *cntrAUTOCRLF;
|
||||
extern Fl_Check_Button *btnCRCRLF;
|
||||
|
|
@ -379,14 +378,13 @@ extern Fl_Group *tabRig;
|
|||
extern Fl_Tabs *tabsRig;
|
||||
extern Fl_Check_Button *btnPTTrightchannel;
|
||||
extern Fl_Group *grpHWPTT;
|
||||
#include <FL/Fl_Input_Choice.H>
|
||||
extern Fl_Input_Choice *inpTTYdev;
|
||||
extern Fl_Round_Button *btnTTYptt;
|
||||
extern Fl_ListBox *inpTTYdev;
|
||||
extern Fl_Round_Button *btnRTSptt;
|
||||
extern Fl_Round_Button *btnRTSplusV;
|
||||
extern Fl_Round_Button *btnDTRptt;
|
||||
extern Fl_Round_Button *btnDTRplusV;
|
||||
extern Fl_Button *btnInitHWPTT;
|
||||
extern Fl_Round_Button *btnTTYptt;
|
||||
extern Fl_Round_Button *btnUsePPortPTT;
|
||||
extern Fl_Round_Button *btnUseUHrouterPTT;
|
||||
extern Fl_Group *grpPTTdelays;
|
||||
|
|
@ -396,11 +394,11 @@ extern Fl_Check_Button *chkUSERIGCAT;
|
|||
extern Fl_Group *grpRigCAT;
|
||||
extern Fl_Output *txtXmlRigFilename;
|
||||
extern Fl_Button *btnSelectRigXmlFile;
|
||||
extern Fl_Input_Choice *inpXmlRigDevice;
|
||||
extern Fl_ListBox *inpXmlRigDevice;
|
||||
extern Fl_Value_Input2 *cntRigCatRetries;
|
||||
extern Fl_Value_Input2 *cntRigCatTimeout;
|
||||
extern Fl_Value_Input2 *cntRigCatWait;
|
||||
extern Fl_Choice *mnuXmlRigBaudrate;
|
||||
extern Fl_ListBox *listbox_xml_rig_baudrate;
|
||||
extern Fl_Counter2 *valRigCatStopbits;
|
||||
extern Fl_Button *btnInitRIGCAT;
|
||||
extern Fl_Check_Button *btnRigCatEcho;
|
||||
|
|
@ -417,18 +415,18 @@ extern Fl_Check_Button *chkRigCatVSP;
|
|||
extern Fl_Group *tabHamlib;
|
||||
extern Fl_Check_Button *chkUSEHAMLIB;
|
||||
extern Fl_Group *grpHamlib;
|
||||
extern Fl_ComboBox *cboHamlibRig;
|
||||
extern Fl_Input_Choice *inpRIGdev;
|
||||
extern Fl_ListBox *cboHamlibRig;
|
||||
extern Fl_ListBox *inpRIGdev;
|
||||
extern Fl_Value_Input2 *cntHamlibRetries;
|
||||
extern Fl_Value_Input2 *cntHamlibTimeout;
|
||||
extern Fl_Value_Input2 *cntHamlibWriteDelay;
|
||||
extern Fl_Value_Input2 *cntHamlibWait;
|
||||
extern Fl_Choice *mnuBaudRate;
|
||||
extern Fl_ListBox *listbox_baudrate;
|
||||
extern Fl_Counter2 *valHamRigStopbits;
|
||||
extern Fl_Counter2 *cntHamlibTimeout0;
|
||||
extern Fl_Input2 *inpHamlibConfig;
|
||||
extern Fl_Button *btnInitHAMLIB;
|
||||
extern Fl_Choice *mnuSideband;
|
||||
extern Fl_ListBox *listbox_sideband;
|
||||
extern Fl_Round_Button *btnHamlibCMDptt;
|
||||
extern Fl_Check_Button *btnHamlibDTRplus;
|
||||
extern Fl_Check_Button *chkHamlibRTSplus;
|
||||
|
|
@ -447,27 +445,27 @@ extern Fl_Group *tabSoundCard;
|
|||
extern Fl_Tabs *tabsSoundCard;
|
||||
extern Fl_Group *tabAudio;
|
||||
extern Fl_Group *AudioOSS;
|
||||
extern Fl_Input_Choice *menuOSSDev;
|
||||
extern Fl_ListBox *menuOSSDev;
|
||||
extern Fl_Group *AudioPort;
|
||||
extern Fl_Choice *menuPortInDev;
|
||||
extern Fl_Choice *menuPortOutDev;
|
||||
extern Fl_ListBox *menuPortInDev;
|
||||
extern Fl_ListBox *menuPortOutDev;
|
||||
extern Fl_Group *AudioPulse;
|
||||
extern Fl_Input2 *inpPulseServer;
|
||||
extern Fl_Group *AudioNull;
|
||||
extern Fl_Round_Button *btnAudioIO[4];
|
||||
extern Fl_Group *tabAudioOpt;
|
||||
extern Fl_Group *grpAudioSampleRate;
|
||||
extern Fl_Choice *menuInSampleRate;
|
||||
extern Fl_Choice *menuOutSampleRate;
|
||||
extern Fl_ListBox *menuInSampleRate;
|
||||
extern Fl_ListBox *menuOutSampleRate;
|
||||
#include <FL/fl_ask.H>
|
||||
extern Fl_Choice *menuSampleConverter;
|
||||
extern Fl_ListBox *menuSampleConverter;
|
||||
extern Fl_Spinner2 *cntRxRateCorr;
|
||||
extern Fl_Spinner2 *cntTxRateCorr;
|
||||
extern Fl_Spinner2 *cntTxOffset;
|
||||
extern Fl_Group *tabMixer;
|
||||
extern void resetMixerControls();
|
||||
extern Fl_Check_Button *btnMixer;
|
||||
extern Fl_Input_Choice *menuMix;
|
||||
extern Fl_ListBox *menuMix;
|
||||
extern Fl_Light_Button *btnMicIn;
|
||||
extern void setMixerInput(int);
|
||||
extern Fl_Light_Button *btnLineIn;
|
||||
|
|
@ -481,7 +479,7 @@ extern Fl_Check_Button *btnPTTrightchannel2;
|
|||
extern Fl_Check_Button *btnQSK2;
|
||||
extern Fl_Check_Button *chkPseudoFSK2;
|
||||
extern Fl_Group *tabWavFile;
|
||||
extern Fl_Choice *mnuWavSampleRate;
|
||||
extern Fl_ListBox *listbox_wav_samplerate;
|
||||
extern Fl_Group *tabID;
|
||||
extern Fl_Tabs *tabsID;
|
||||
extern Fl_Group *tabRsID;
|
||||
|
|
@ -490,7 +488,7 @@ extern Fl_Button *bRSIDRxModes;
|
|||
extern Fl_Check_Button *chkRSidWideSearch;
|
||||
extern Fl_Check_Button *chkRSidMark;
|
||||
extern Fl_Check_Button *chkRSidAutoDisable;
|
||||
extern Fl_Choice *mnu_RsID_errors;
|
||||
extern Fl_ListBox *listbox_rsid_errors;
|
||||
extern Fl_Value_Slider2 *sldrRSIDsquelch;
|
||||
extern Fl_Check_Button *chkRSidShowAlert;
|
||||
extern Fl_Check_Button *chkRetainFreqLock;
|
||||
|
|
@ -575,7 +573,7 @@ extern Fl_Input *inputKmlRootFile;
|
|||
extern Fl_Counter *cntKmlMergeDistance;
|
||||
extern Fl_Counter *cntKmlRetentionTime;
|
||||
extern Fl_Spinner2 *cntKmlRefreshInterval;
|
||||
extern Fl_Choice *selKmlBalloonStyle;
|
||||
extern Fl_ListBox *listbox_kml_balloon_style;
|
||||
extern Fl_Input *btnKmlCommand;
|
||||
extern Fl_Button *btlTestKmlCommand;
|
||||
extern Fl_Button *btnSelectKmlDestDir;
|
||||
|
|
|
|||
|
|
@ -320,8 +320,9 @@ extern void open_recv_folder(const char *fname);
|
|||
extern void reset_mnuPlayback();
|
||||
|
||||
// character set
|
||||
extern void cb_charset_menu(Fl_Widget *, void *charset);
|
||||
extern void populate_charset_menu(void);
|
||||
extern void set_charset_listbox(Fl_Widget *, void *charset);
|
||||
extern void cb_listbox_charset(Fl_Widget *, void *);
|
||||
extern void populate_charset_listbox(void);
|
||||
extern void set_default_charset(void);
|
||||
|
||||
// set notch parameter on flrig
|
||||
|
|
|
|||
|
|
@ -515,11 +515,11 @@ int main(int argc, char ** argv)
|
|||
FSEL::create();
|
||||
|
||||
#if FLDIGI_FLTK_API_MAJOR == 1 && FLDIGI_FLTK_API_MINOR < 3
|
||||
CHARSETstatus->hide();
|
||||
listbox_charset_status->hide();
|
||||
#else
|
||||
CHARSETstatus->show();
|
||||
listbox_charset_status->show();
|
||||
#endif
|
||||
populate_charset_menu();
|
||||
populate_charset_listbox();
|
||||
set_default_charset();
|
||||
setTabColors();
|
||||
|
||||
|
|
|
|||
|
|
@ -386,19 +386,16 @@ bool configuration::readDefaultsXML()
|
|||
void configuration::loadDefaults()
|
||||
{
|
||||
// RTTY
|
||||
if (rtty_shift > 0) {
|
||||
selShift->value(rtty_shift);
|
||||
selShift->index(rtty_shift);
|
||||
if (progdefaults.rtty_shift == selShift->lsize() - 1)
|
||||
selCustomShift->activate();
|
||||
else
|
||||
selCustomShift->deactivate();
|
||||
}
|
||||
else { // Custom shift
|
||||
selShift->value(selShift->size() - 2);
|
||||
selShift->activate();
|
||||
}
|
||||
selBaud->value(rtty_baud);
|
||||
selBits->value(rtty_bits);
|
||||
selParity->value(rtty_parity);
|
||||
selBaud->index(rtty_baud);
|
||||
selBits->index(rtty_bits);
|
||||
selParity->index(rtty_parity);
|
||||
// chkMsbFirst->value(rtty_msbfirst);
|
||||
selStopBits->value(rtty_stop);
|
||||
selStopBits->index(rtty_stop);
|
||||
btnCRCRLF->value(rtty_crcrlf);
|
||||
btnAUTOCRLF->value(rtty_autocrlf);
|
||||
cntrAUTOCRLF->value(rtty_autocount);
|
||||
|
|
@ -406,19 +403,19 @@ void configuration::loadDefaults()
|
|||
chkUOSrx->value(UOSrx);
|
||||
chkUOStx->value(UOStx);
|
||||
|
||||
mnuRTTYAFCSpeed->value(rtty_afcspeed);
|
||||
i_listbox_rtty_afc_speed->index(rtty_afcspeed);
|
||||
btnPreferXhairScope->value(PreferXhairScope);
|
||||
|
||||
// OLIVIA
|
||||
mnuOlivia_Tones->value(oliviatones);
|
||||
mnuOlivia_Bandwidth->value(oliviabw);
|
||||
i_listbox_olivia_tones->index(oliviatones);
|
||||
i_listbox_olivia_bandwidth->index(oliviabw);
|
||||
cntOlivia_smargin->value(oliviasmargin);
|
||||
cntOlivia_sinteg->value(oliviasinteg);
|
||||
btnOlivia_8bit->value(olivia8bit);
|
||||
|
||||
// CONTESTIA
|
||||
mnuContestia_Tones->value(contestiatones);
|
||||
mnuContestia_Bandwidth->value(contestiabw);
|
||||
i_listbox_contestia_tones->index(contestiatones);
|
||||
i_listbox_contestia_bandwidth->index(contestiabw);
|
||||
cntContestia_smargin->value(contestiasmargin);
|
||||
cntContestia_sinteg->value(contestiasinteg);
|
||||
btnContestia_8bit->value(contestia8bit);
|
||||
|
|
@ -449,7 +446,7 @@ void configuration::saveDefaults()
|
|||
FreqControlFontName = Fl::get_font_name(FreqControlFontnbr);
|
||||
|
||||
#if ENABLE_NLS && defined(__WOE32__)
|
||||
set_ui_lang(mnuLang->value());
|
||||
set_ui_lang(listbox_language->index());
|
||||
#endif
|
||||
|
||||
writeDefaultsXML();
|
||||
|
|
@ -510,13 +507,13 @@ int configuration::setDefaults()
|
|||
btnUseUHrouterPTT->value(progdefaults.UseUHrouterPTT);
|
||||
|
||||
#if USE_HAMLIB
|
||||
mnuSideband->add(_("Rig mode"));
|
||||
mnuSideband->add(_("Always LSB"));
|
||||
mnuSideband->add(_("Always USB"));
|
||||
mnuSideband->value(HamlibSideband);
|
||||
listbox_sideband->add(_("Rig mode"));
|
||||
listbox_sideband->add(_("Always LSB"));
|
||||
listbox_sideband->add(_("Always USB"));
|
||||
listbox_sideband->index(HamlibSideband);
|
||||
btnHamlibCMDptt->value(HamlibCMDptt);
|
||||
inpRIGdev->show();
|
||||
mnuBaudRate->show();
|
||||
listbox_baudrate->show();
|
||||
cboHamlibRig->show();
|
||||
cboHamlibRig->value(HamRigName.c_str());
|
||||
#else
|
||||
|
|
@ -548,10 +545,10 @@ int configuration::setDefaults()
|
|||
if (!XmlRigFilename.empty()) readRigXML();
|
||||
|
||||
inpRIGdev->value(HamRigDevice.c_str());
|
||||
mnuBaudRate->value(HamRigBaudrate);
|
||||
listbox_baudrate->index(HamRigBaudrate);
|
||||
|
||||
inpXmlRigDevice->value(XmlRigDevice.c_str());
|
||||
mnuXmlRigBaudrate->value(XmlRigBaudrate);
|
||||
listbox_xml_rig_baudrate->index(XmlRigBaudrate);
|
||||
|
||||
valCWsweetspot->value(CWsweetspot);
|
||||
valRTTYsweetspot->value(RTTYsweetspot);
|
||||
|
|
@ -566,8 +563,8 @@ int configuration::setDefaults()
|
|||
|
||||
for (size_t i = 0;
|
||||
i < sizeof(waterfall::wf_wheel_action)/sizeof(*waterfall::wf_wheel_action); i++)
|
||||
mnuWaterfallWheelAction->add(waterfall::wf_wheel_action[i]);
|
||||
mnuWaterfallWheelAction->value(WaterfallWheelAction);
|
||||
listboxWaterfallWheelAction->add(waterfall::wf_wheel_action[i]);
|
||||
listboxWaterfallWheelAction->index(WaterfallWheelAction);
|
||||
|
||||
btnStartAtSweetSpot->value(StartAtSweetSpot);
|
||||
btnPSKmailSweetSpot->value(PSKmailSweetSpot);
|
||||
|
|
@ -594,7 +591,7 @@ int configuration::setDefaults()
|
|||
cntCWupperlimit->minimum(CWlowerlimit + 20);
|
||||
cntCWrisetime->value(CWrisetime);
|
||||
cntCWdash2dot->value(CWdash2dot);
|
||||
mnuQSKshape->value(QSKshape);
|
||||
i_listboxQSKshape->index(QSKshape);
|
||||
sldrCWxmtWPM->minimum(CWlowerlimit);
|
||||
sldrCWxmtWPM->maximum(CWupperlimit);
|
||||
btnQSK->value(QSK);
|
||||
|
|
@ -602,7 +599,7 @@ int configuration::setDefaults()
|
|||
cntPostTiming->value(CWpost);
|
||||
btnCWID->value(CWid);
|
||||
|
||||
selHellFont->value(feldfontnbr);
|
||||
listboxHellFont->index(feldfontnbr);
|
||||
btnFeldHellIdle->value(HellXmtIdle);
|
||||
|
||||
btnTxRSID->value(TransmitRSid);
|
||||
|
|
@ -685,12 +682,12 @@ int configuration::setDefaults()
|
|||
for (lang_def_t* p = ui_langs; p->lang; p++) {
|
||||
ss.str("");
|
||||
ss << p->native_name << " (" << p->percent_done << "%)";
|
||||
mnuLang->add(ss.str().c_str());
|
||||
listbox_language->add(ss.str().c_str());
|
||||
}
|
||||
mnuLang->value(get_ui_lang());
|
||||
mnuLang->show();
|
||||
listbox_language->index(get_ui_lang());
|
||||
listbox_language->show();
|
||||
#else
|
||||
mnuLang->hide();
|
||||
listbox_language->hide();
|
||||
#endif
|
||||
|
||||
return 1;
|
||||
|
|
@ -757,11 +754,11 @@ void configuration::initInterface()
|
|||
else
|
||||
HamRigModel = hamlib_get_rig_model(cboHamlibRig->index());
|
||||
HamRigDevice = inpRIGdev->value();
|
||||
HamRigBaudrate = mnuBaudRate->value();
|
||||
HamRigBaudrate = listbox_baudrate->index();
|
||||
#else
|
||||
cboHamlibRig->hide();
|
||||
inpRIGdev->hide();
|
||||
mnuBaudRate->hide();
|
||||
listbox_baudrate->hide();
|
||||
#endif
|
||||
|
||||
bool riginitOK = false;
|
||||
|
|
|
|||
|
|
@ -568,19 +568,18 @@ void status::initLastState()
|
|||
|
||||
// RTTY
|
||||
if (lastmode == MODE_RTTY ) {
|
||||
if (rtty_shift > 0) {
|
||||
progdefaults.rtty_shift = rtty_shift;
|
||||
selShift->value(rtty_shift);
|
||||
progdefaults.rtty_shift = rtty_shift;
|
||||
selShift->index(progdefaults.rtty_shift + 1);
|
||||
if (rtty_shift == selShift->lsize() - 1) {
|
||||
selCustomShift->deactivate();
|
||||
}
|
||||
else { // Custom shift
|
||||
selShift->value(selShift->size() - 2);
|
||||
selShift->activate();
|
||||
selCustomShift->activate();
|
||||
}
|
||||
selBaud->value(progdefaults.rtty_baud = rtty_baud);
|
||||
selBits->value(progdefaults.rtty_bits = rtty_bits);
|
||||
selParity->value(progdefaults.rtty_parity = rtty_parity);
|
||||
selStopBits->value(progdefaults.rtty_stop = rtty_stop);
|
||||
selBaud->index((progdefaults.rtty_baud = rtty_baud) + 1);
|
||||
selBits->index((progdefaults.rtty_bits = rtty_bits) + 1);
|
||||
selParity->index((progdefaults.rtty_parity = rtty_parity) + 1);
|
||||
selStopBits->index((progdefaults.rtty_stop = rtty_stop) + 1);
|
||||
btnCRCRLF->value(progdefaults.rtty_crcrlf = rtty_crcrlf);
|
||||
btnAUTOCRLF->value(progdefaults.rtty_autocrlf = rtty_autocrlf);
|
||||
cntrAUTOCRLF->value(progdefaults.rtty_autocount = rtty_autocount);
|
||||
|
|
@ -588,7 +587,7 @@ void status::initLastState()
|
|||
chkUOSrx->value(progdefaults.UOSrx = UOSrx);
|
||||
chkUOStx->value(progdefaults.UOStx = UOStx);
|
||||
// chkXagc->value(progdefaults.Xagc = Xagc);
|
||||
mnuRTTYAFCSpeed->value(progdefaults.rtty_afcspeed = rtty_afcspeed);
|
||||
i_listbox_rtty_afc_speed->index(progdefaults.rtty_afcspeed = rtty_afcspeed);
|
||||
btnPreferXhairScope->value(progdefaults.PreferXhairScope = PreferXhairScope);
|
||||
|
||||
if (mvsquelch) {
|
||||
|
|
@ -617,8 +616,8 @@ printf("init rtty squelch %f\n", VIEWER_rttysquelch);
|
|||
|
||||
// OLIVIA
|
||||
if (lastmode == MODE_OLIVIA) {
|
||||
mnuOlivia_Tones->value(progdefaults.oliviatones = oliviatones);
|
||||
mnuOlivia_Bandwidth->value(progdefaults.oliviabw = oliviabw);
|
||||
i_listbox_olivia_tones->index(progdefaults.oliviatones = oliviatones);
|
||||
i_listbox_olivia_bandwidth->index(progdefaults.oliviabw = oliviabw);
|
||||
cntOlivia_smargin->value(progdefaults.oliviasmargin = oliviamargin);
|
||||
cntOlivia_sinteg->value(progdefaults.oliviasinteg = oliviainteg);
|
||||
btnOlivia_8bit->value(progdefaults.olivia8bit = olivia8bit);
|
||||
|
|
@ -626,8 +625,8 @@ printf("init rtty squelch %f\n", VIEWER_rttysquelch);
|
|||
|
||||
// CONTESTIA
|
||||
if (lastmode == MODE_CONTESTIA) {
|
||||
mnuContestia_Tones->value(progdefaults.contestiatones = contestiatones);
|
||||
mnuContestia_Bandwidth->value(progdefaults.contestiabw = contestiabw);
|
||||
i_listbox_contestia_tones->index(progdefaults.contestiatones = contestiatones);
|
||||
i_listbox_contestia_bandwidth->index(progdefaults.contestiabw = contestiabw);
|
||||
cntContestia_smargin->value(progdefaults.contestiasmargin = contestiamargin);
|
||||
cntContestia_sinteg->value(progdefaults.contestiasinteg = contestiainteg);
|
||||
btnContestia_8bit->value(progdefaults.contestia8bit = contestia8bit);
|
||||
|
|
|
|||
|
|
@ -885,7 +885,7 @@ public:
|
|||
}
|
||||
void execute(const xmlrpc_c::paramList& params, xmlrpc_c::value* retval)
|
||||
{
|
||||
int bw, v = mnuOlivia_Bandwidth->value();
|
||||
int bw, v = i_listbox_olivia_bandwidth->index() + 1;
|
||||
|
||||
if (v == 0)
|
||||
bw = 125;
|
||||
|
|
@ -933,7 +933,7 @@ public:
|
|||
}
|
||||
void execute(const xmlrpc_c::paramList& params, xmlrpc_c::value* retval)
|
||||
{
|
||||
*retval = xmlrpc_c::value_int(1 << (mnuOlivia_Tones->value() + 1));
|
||||
*retval = xmlrpc_c::value_int(1 << (i_listbox_olivia_tones->index() + 1));
|
||||
}
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -104,7 +104,7 @@ void hamlib_get_defaults()
|
|||
}
|
||||
|
||||
testrig.getConf("serial_speed", szParam);
|
||||
mnuBaudRate->value(progdefaults.nBaudRate(szParam));
|
||||
listbox_baudrate->value(szParam);
|
||||
|
||||
testrig.getConf("post_write_delay", szParam);
|
||||
sscanf(szParam, "%d", &i);
|
||||
|
|
@ -161,9 +161,9 @@ void hamlib_restore_defaults()
|
|||
if (chkHamlibRTSCTSflow->value()) chkHamlibRTSplus->deactivate();
|
||||
chkHamlibRTSplus->value(progdefaults.HamlibRTSplus);
|
||||
chkHamlibXONXOFFflow->value(progdefaults.HamlibXONXOFFflow);
|
||||
mnuSideband->value(progdefaults.HamlibSideband);
|
||||
listbox_sideband->index(progdefaults.HamlibSideband);
|
||||
valHamRigStopbits->value(progdefaults.HamRigStopbits);
|
||||
mnuBaudRate->value(progdefaults.HamRigBaudrate);
|
||||
listbox_baudrate->index(progdefaults.HamRigBaudrate);
|
||||
if (xcvr && xcvr->canSetPTT()) btnHamlibCMDptt->activate();
|
||||
else btnHamlibCMDptt->deactivate();
|
||||
btnHamlibCMDptt->value(progdefaults.HamlibCMDptt);
|
||||
|
|
@ -188,9 +188,9 @@ void hamlib_init_defaults()
|
|||
progdefaults.HamlibRTSCTSflow = chkHamlibRTSCTSflow->value();
|
||||
progdefaults.HamlibRTSplus = chkHamlibRTSplus->value();
|
||||
progdefaults.HamlibXONXOFFflow = chkHamlibXONXOFFflow->value();
|
||||
progdefaults.HamlibSideband = mnuSideband->value();
|
||||
progdefaults.HamlibSideband = listbox_sideband->index();
|
||||
progdefaults.HamRigStopbits = static_cast<int>(valHamRigStopbits->value());
|
||||
progdefaults.HamRigBaudrate = mnuBaudRate->value();
|
||||
progdefaults.HamRigBaudrate = listbox_baudrate->index();
|
||||
progdefaults.HamlibCMDptt = btnHamlibCMDptt->value();
|
||||
progdefaults.HamConfig = inpHamlibConfig->value();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -996,7 +996,7 @@ void rigCAT_sendINIT(const string& icmd)
|
|||
|
||||
void rigCAT_defaults()
|
||||
{
|
||||
mnuXmlRigBaudrate->value(xmlrig.baud);
|
||||
listbox_xml_rig_baudrate->index(xmlrig.baud);
|
||||
valRigCatStopbits->value(xmlrig.stopbits);
|
||||
btnRigCatRTSplus->value(xmlrig.rts);
|
||||
btnRigCatDTRplus->value(xmlrig.dtr);
|
||||
|
|
@ -1014,7 +1014,7 @@ void rigCAT_defaults()
|
|||
void rigCAT_restore_defaults()
|
||||
{
|
||||
inpXmlRigDevice->value(progdefaults.XmlRigDevice.c_str());
|
||||
mnuXmlRigBaudrate->value(progdefaults.XmlRigBaudrate);
|
||||
listbox_xml_rig_baudrate->index(progdefaults.XmlRigBaudrate);
|
||||
valRigCatStopbits->value(progdefaults.RigCatStopbits);
|
||||
btnRigCatRTSplus->value(progdefaults.RigCatRTSplus);
|
||||
btnRigCatDTRplus->value(progdefaults.RigCatDTRplus);
|
||||
|
|
@ -1037,7 +1037,7 @@ void rigCAT_restore_defaults()
|
|||
void rigCAT_init_defaults()
|
||||
{
|
||||
progdefaults.XmlRigDevice = inpXmlRigDevice->value();
|
||||
progdefaults.XmlRigBaudrate = mnuXmlRigBaudrate->value();
|
||||
progdefaults.XmlRigBaudrate = listbox_xml_rig_baudrate->index();
|
||||
progdefaults.RigCatStopbits = static_cast<int>(valRigCatStopbits->value());
|
||||
progdefaults.RigCatRTSplus = btnRigCatRTSplus->value();
|
||||
progdefaults.RigCatDTRplus = btnRigCatDTRplus->value();
|
||||
|
|
|
|||
|
|
@ -181,11 +181,11 @@ static void init_portaudio(void)
|
|||
}
|
||||
// add to menu
|
||||
if (ilist->dev->maxInputChannels > 0)
|
||||
menuPortInDev->add(menu_item.c_str(), 0, NULL,
|
||||
reinterpret_cast<void *>(ilist->idx), 0);
|
||||
menuPortInDev->add(menu_item.c_str(),
|
||||
reinterpret_cast<void *>(ilist->idx));
|
||||
if (ilist->dev->maxOutputChannels > 0)
|
||||
menuPortOutDev->add(menu_item.c_str(), 0, NULL,
|
||||
reinterpret_cast<void *>(ilist->idx), 0);
|
||||
menuPortOutDev->add(menu_item.c_str(),
|
||||
reinterpret_cast<void *>(ilist->idx));
|
||||
}
|
||||
|
||||
if (progdefaults.PortInDevice.length() == 0) {
|
||||
|
|
@ -213,51 +213,30 @@ static void init_portaudio(void)
|
|||
}
|
||||
|
||||
// select the correct menu items
|
||||
const Fl_Menu_Item* menu;
|
||||
int size;
|
||||
int idx;
|
||||
|
||||
idx = -1;
|
||||
menu = menuPortInDev->menu();
|
||||
size = menuPortInDev->size();
|
||||
for (int i = 0; i < size - 1; i++, menu++) {
|
||||
if (menu->label() && progdefaults.PortInDevice == menu->label()) {
|
||||
idx = i; // near match
|
||||
if (reinterpret_cast<intptr_t>(menu->user_data()) == progdefaults.PortInIndex ||
|
||||
progdefaults.PortInIndex == -1) // exact match, or index was never saved
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (idx >= 0) {
|
||||
menuPortInDev->value(idx);
|
||||
menuPortInDev->set_changed();
|
||||
int size = menuPortInDev->lsize();
|
||||
for (int i = 1; i <= size; i++) {
|
||||
menuPortInDev->index(i);
|
||||
if (progdefaults.PortInDevice == menuPortInDev->value())
|
||||
break;
|
||||
}
|
||||
|
||||
idx = -1;
|
||||
menu = menuPortOutDev->menu();
|
||||
size = menuPortOutDev->size();
|
||||
for (int i = 0; i < size - 1; i++, menu++) {
|
||||
if (menu->label() && progdefaults.PortOutDevice == menu->label()) {
|
||||
idx = i;
|
||||
if (reinterpret_cast<intptr_t>(menu->user_data()) == progdefaults.PortOutIndex ||
|
||||
progdefaults.PortOutIndex == -1)
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (idx >= 0) {
|
||||
menuPortOutDev->value(idx);
|
||||
menuPortOutDev->set_changed();
|
||||
size = menuPortOutDev->lsize();
|
||||
for (int i = 1; i <= size; i++) {
|
||||
menuPortOutDev->index(i);
|
||||
if (progdefaults.PortOutDevice == menuPortOutDev->value())
|
||||
break;
|
||||
}
|
||||
}
|
||||
#else
|
||||
static void init_portaudio(void) { }
|
||||
#endif // USE_PORTAUDIO
|
||||
|
||||
static void build_srate_menu(Fl_Menu_* menu, const double* rates, size_t length, double defrate = -1.0)
|
||||
static void build_srate_listbox(Fl_ListBox* lbox, const double* rates, size_t length, double defrate = -1.0)
|
||||
{
|
||||
menu->clear();
|
||||
menu->add("Auto");
|
||||
menu->add("Native", 0, 0, 0, FL_MENU_DIVIDER);
|
||||
lbox->clear();
|
||||
lbox->add("Auto");
|
||||
lbox->add("Native");
|
||||
|
||||
char s[16];
|
||||
for (size_t i = 0; i < length; i++) {
|
||||
|
|
@ -265,7 +244,7 @@ static void build_srate_menu(Fl_Menu_* menu, const double* rates, size_t length,
|
|||
snprintf(s, sizeof(s), "%.0f", rates[i]);
|
||||
else
|
||||
snprintf(s, sizeof(s), "%.0f (native)", rates[i]);
|
||||
menu->add(s);
|
||||
lbox->add(s);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -280,9 +259,9 @@ int sample_rate_converters[FLDIGI_NUM_SRC] = {
|
|||
|
||||
static void sound_init_options(void)
|
||||
{
|
||||
build_srate_menu(menuInSampleRate, std_sample_rates,
|
||||
build_srate_listbox(menuInSampleRate, std_sample_rates,
|
||||
sizeof(std_sample_rates)/sizeof(*std_sample_rates) - 1);
|
||||
build_srate_menu(menuOutSampleRate, std_sample_rates,
|
||||
build_srate_listbox(menuOutSampleRate, std_sample_rates,
|
||||
sizeof(std_sample_rates)/sizeof(*std_sample_rates) - 1);
|
||||
|
||||
for (int i = 0; i < FLDIGI_NUM_SRC; i++)
|
||||
|
|
@ -303,7 +282,7 @@ static void sound_init_options(void)
|
|||
#endif
|
||||
for (int i = 0; i < FLDIGI_NUM_SRC; i++) {
|
||||
if (sample_rate_converters[i] == progdefaults.sample_converter) {
|
||||
menuSampleConverter->value(i);
|
||||
menuSampleConverter->index(i);
|
||||
menuSampleConverter->tooltip(src_get_description(progdefaults.sample_converter));
|
||||
break;
|
||||
}
|
||||
|
|
@ -328,9 +307,13 @@ static void sound_init_options(void)
|
|||
else if (progdefaults.in_sample_rate > SAMPLE_RATE_OTHER)
|
||||
snprintf(sr, sizeof(sr), "%d", progdefaults.in_sample_rate);
|
||||
if (progdefaults.in_sample_rate <= SAMPLE_RATE_NATIVE)
|
||||
menuInSampleRate->value(progdefaults.in_sample_rate);
|
||||
menuInSampleRate->index(progdefaults.in_sample_rate);
|
||||
else
|
||||
menuInSampleRate->value(menuInSampleRate->find_item(sr));
|
||||
for (int i = 1; i <= menuInSampleRate->lsize(); i++) {
|
||||
menuInSampleRate->index(i);
|
||||
if (strstr(menuInSampleRate->value(), sr))
|
||||
break;
|
||||
}
|
||||
|
||||
if (progdefaults.out_sample_rate == SAMPLE_RATE_UNSET &&
|
||||
(progdefaults.out_sample_rate = progdefaults.sample_rate) == SAMPLE_RATE_UNSET)
|
||||
|
|
@ -338,9 +321,13 @@ static void sound_init_options(void)
|
|||
else if (progdefaults.out_sample_rate > SAMPLE_RATE_OTHER)
|
||||
snprintf(sr, sizeof(sr), "%d", progdefaults.out_sample_rate);
|
||||
if (progdefaults.out_sample_rate <= SAMPLE_RATE_NATIVE)
|
||||
menuOutSampleRate->value(progdefaults.out_sample_rate);
|
||||
menuOutSampleRate->index(progdefaults.out_sample_rate);
|
||||
else
|
||||
menuOutSampleRate->value(menuOutSampleRate->find_item(sr));
|
||||
for (int i = 1; i <= menuOutSampleRate->lsize(); i++) {
|
||||
menuOutSampleRate->index(i);
|
||||
if (strstr(menuOutSampleRate->value(), sr))
|
||||
break;
|
||||
}
|
||||
|
||||
cntRxRateCorr->value(progdefaults.RX_corr);
|
||||
cntTxRateCorr->value(progdefaults.TX_corr);
|
||||
|
|
@ -465,41 +452,40 @@ void sound_update(unsigned idx)
|
|||
case SND_IDX_PORT:
|
||||
menuPortInDev->activate();
|
||||
menuPortOutDev->activate();
|
||||
if (menuPortInDev->text())
|
||||
scDevice[0] = menuPortInDev->text();
|
||||
if (menuPortOutDev->text())
|
||||
scDevice[1] = menuPortOutDev->text();
|
||||
if (menuPortInDev->value())
|
||||
scDevice[0] = menuPortInDev->value();
|
||||
if (menuPortOutDev->value())
|
||||
scDevice[1] = menuPortOutDev->value();
|
||||
|
||||
{
|
||||
Fl_Menu_* menus[2] = { menuInSampleRate, menuOutSampleRate };
|
||||
Fl_ListBox* listbox[2] = { menuInSampleRate, menuOutSampleRate };
|
||||
for (size_t i = 0; i < 2; i++) {
|
||||
char* label = strdup(menus[i]->text());
|
||||
char* label = strdup(listbox[i]->value());
|
||||
const vector<double>& srates = SoundPort::get_supported_rates(scDevice[i], i);
|
||||
|
||||
switch (srates.size()) {
|
||||
case 0: // startup; no devices initialised yet
|
||||
build_srate_menu(menus[i], std_sample_rates,
|
||||
build_srate_listbox(listbox[i], std_sample_rates,
|
||||
sizeof(std_sample_rates)/sizeof(*std_sample_rates) - 1);
|
||||
break;
|
||||
case 1: // default sample rate only, build menu with all std rates
|
||||
build_srate_menu(menus[i], std_sample_rates,
|
||||
build_srate_listbox(listbox[i], std_sample_rates,
|
||||
sizeof(std_sample_rates)/sizeof(*std_sample_rates) - 1, srates[0]);
|
||||
|
||||
break;
|
||||
default: // first element is default sample rate, build menu with rest
|
||||
build_srate_menu(menus[i], &srates[0] + 1, srates.size() - 1, srates[0]);
|
||||
build_srate_listbox(listbox[i], &srates[0] + 1, srates.size() - 1, srates[0]);
|
||||
break;
|
||||
}
|
||||
|
||||
for (const Fl_Menu_Item* item = menus[i]->menu(); item->text; item++) {
|
||||
if (strstr(item->text, label)) {
|
||||
menus[i]->value(item);
|
||||
for (int j = 1; j < listbox[i]->lsize(); j++) {
|
||||
listbox[i]->index(j);
|
||||
if (strstr(listbox[i]->value(), label))
|
||||
break;
|
||||
}
|
||||
}
|
||||
free(label);
|
||||
|
||||
menus[i]->activate();
|
||||
listbox[i]->activate();
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
|
|
|||
Ładowanie…
Reference in New Issue