kopia lustrzana https://github.com/jamescoxon/dl-fldigi
2882 wiersze
82 KiB
C++
2882 wiersze
82 KiB
C++
// ----------------------------------------------------------------------------
|
|
// Copyright (C) 2015
|
|
// Robert Stiles
|
|
//
|
|
// This file is part of fldigi
|
|
//
|
|
// fldigi is free software; you can redistribute it and/or modify
|
|
// it under the terms of the GNU General Public License as published by
|
|
// the Free Software Foundation; either version 3 of the License, or
|
|
// (at your option) any later version.
|
|
//
|
|
// fldigi is distributed in the hope that it will be useful,
|
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
// GNU General Public License for more details.
|
|
//
|
|
// You should have received a copy of the GNU General Public License
|
|
// along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
// ----------------------------------------------------------------------------
|
|
|
|
#include <cstdlib>
|
|
#include <cstdarg>
|
|
#include <string>
|
|
#include <fstream>
|
|
#include <algorithm>
|
|
#include <map>
|
|
#include <unistd.h>
|
|
#include <iostream>
|
|
#include <fstream>
|
|
#include <sstream>
|
|
#include <cstring>
|
|
#include <ctime>
|
|
#include <vector>
|
|
#include <sys/types.h>
|
|
#include <sys/stat.h>
|
|
#include <stdio.h>
|
|
#include <errno.h>
|
|
#include <time.h>
|
|
#include <pthread.h>
|
|
#include <libgen.h>
|
|
#include <ctype.h>
|
|
#include <sys/time.h>
|
|
|
|
#include "config.h"
|
|
|
|
#include <sys/types.h>
|
|
|
|
#ifdef __WOE32__
|
|
# ifdef __CYGWIN__
|
|
# include <w32api/windows.h>
|
|
# else
|
|
# include <windows.h>
|
|
# endif
|
|
#endif
|
|
|
|
#include <cstdlib>
|
|
#include <cstdarg>
|
|
#include <string>
|
|
#include <fstream>
|
|
#include <algorithm>
|
|
#include <map>
|
|
|
|
#ifndef __WOE32__
|
|
#include <sys/wait.h>
|
|
#endif
|
|
|
|
#include "gettext.h"
|
|
#include "fl_digi.h"
|
|
|
|
#include <FL/Fl.H>
|
|
#include <FL/fl_ask.H>
|
|
#include <FL/Fl_Pixmap.H>
|
|
#include <FL/Fl_Image.H>
|
|
//#include <FL/Fl_Tile.H>
|
|
#include <FL/x.H>
|
|
#include <FL/Fl_Help_Dialog.H>
|
|
#include <FL/Fl_Progress.H>
|
|
#include <FL/Fl_Tooltip.H>
|
|
#include <FL/Fl_Tabs.H>
|
|
#include <FL/Fl_Multiline_Input.H>
|
|
#include <FL/Fl_Menu_Bar.H>
|
|
#include <FL/Fl_Pack.H>
|
|
#include <FL/filename.H>
|
|
#include <FL/fl_ask.H>
|
|
|
|
#include "waterfall.h"
|
|
#include "raster.h"
|
|
#include "progress.h"
|
|
#include "Panel.h"
|
|
|
|
#include "main.h"
|
|
#include "threads.h"
|
|
#include "trx.h"
|
|
#if USE_HAMLIB
|
|
#include "hamlib.h"
|
|
#endif
|
|
#include "timeops.h"
|
|
#include "rigio.h"
|
|
#include "nullmodem.h"
|
|
#include "psk.h"
|
|
#include "cw.h"
|
|
#include "mfsk.h"
|
|
#include "wefax.h"
|
|
#include "wefax-pic.h"
|
|
#include "navtex.h"
|
|
#include "mt63.h"
|
|
#include "view_rtty.h"
|
|
#include "olivia.h"
|
|
#include "contestia.h"
|
|
#include "thor.h"
|
|
#include "dominoex.h"
|
|
#include "feld.h"
|
|
#include "throb.h"
|
|
//#include "pkt.h"
|
|
#include "wwv.h"
|
|
#include "analysis.h"
|
|
#include "fftscan.h"
|
|
#include "ssb.h"
|
|
|
|
#include "smeter.h"
|
|
#include "pwrmeter.h"
|
|
|
|
#include "ascii.h"
|
|
#include "globals.h"
|
|
#include "misc.h"
|
|
#include "FTextRXTX.h"
|
|
|
|
#include "confdialog.h"
|
|
#include "configuration.h"
|
|
#include "status.h"
|
|
|
|
#include "macros.h"
|
|
#include "macroedit.h"
|
|
#include "logger.h"
|
|
#include "lookupcall.h"
|
|
|
|
#include "font_browser.h"
|
|
|
|
#include "icons.h"
|
|
#include "pixmaps.h"
|
|
|
|
#include "rigsupport.h"
|
|
|
|
#include "qrunner.h"
|
|
|
|
#include "Viewer.h"
|
|
#include "soundconf.h"
|
|
|
|
#include "htmlstrings.h"
|
|
# include "xmlrpc.h"
|
|
#if BENCHMARK_MODE
|
|
# include "benchmark.h"
|
|
#endif
|
|
|
|
#include "debug.h"
|
|
#include "re.h"
|
|
#include "network.h"
|
|
#include "spot.h"
|
|
#include "dxcc.h"
|
|
#include "locator.h"
|
|
#include "notify.h"
|
|
|
|
#include "logbook.h"
|
|
|
|
#include "rx_extract.h"
|
|
#include "speak.h"
|
|
#include "flmisc.h"
|
|
|
|
#include "arq_io.h"
|
|
#include "data_io.h"
|
|
#include "kmlserver.h"
|
|
|
|
#include "notifydialog.h"
|
|
#include "macroedit.h"
|
|
#include "rx_extract.h"
|
|
#include "wefax-pic.h"
|
|
#include "charsetdistiller.h"
|
|
#include "charsetlist.h"
|
|
#include "outputencoder.h"
|
|
#include "record_loader.h"
|
|
#include "record_browse.h"
|
|
#include "fileselect.h"
|
|
|
|
#include "script_parsing.h"
|
|
#include "run_script.h"
|
|
|
|
pthread_mutex_t mutex_script_io = PTHREAD_MUTEX_INITIALIZER;
|
|
|
|
extern std::string ScriptsDir;
|
|
|
|
void script_execute(void *);
|
|
static void script_execute(const char *filename, bool queue_flag);
|
|
|
|
/** ********************************************************
|
|
* \brief Template for assigning bool values to various widget types.
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
template <typename widget_type>
|
|
static int assign_bool(widget_type * widget, ScriptParsing *sp, SCRIPT_COMMANDS *sc, bool &data)
|
|
{
|
|
if(!sp || !sc)
|
|
return script_function_parameter_error;
|
|
|
|
bool value = 0;
|
|
|
|
int error = sp->check_bool(sc->args[0], value);
|
|
|
|
if(error != script_no_errors)
|
|
return error;
|
|
|
|
if(!widget)
|
|
return script_no_errors;
|
|
|
|
widget->value(value);
|
|
widget->do_callback();
|
|
|
|
data = value;
|
|
|
|
return script_no_errors;
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief Template for assigning bool values to various widget types.
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
template <typename widget_type>
|
|
static int assign_bool(widget_type * widget, ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
bool data = false;
|
|
return assign_bool(widget, sp, sc, data);
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief Template for assigning integer values to various widget types.
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
template <typename widget_type>
|
|
static int assign_integer(widget_type * widget, ScriptParsing *sp, SCRIPT_COMMANDS *sc, int &data)
|
|
{
|
|
if(!sp || !sc)
|
|
return script_function_parameter_error;
|
|
|
|
std::string str_data = "";
|
|
|
|
if(sc->argc > 0)
|
|
str_data.assign(sc->args[0]);
|
|
|
|
if(str_data.empty())
|
|
return script_invalid_parameter;
|
|
|
|
int value = 0;
|
|
int cnt = sscanf(str_data.c_str(), "%d", &value);
|
|
|
|
if(cnt < 1)
|
|
return script_invalid_parameter;
|
|
|
|
if(!widget)
|
|
return script_no_errors;
|
|
|
|
int min = (int) widget->minimum();
|
|
int max = (int) widget->maximum();
|
|
|
|
if((value < min) || (value > max))
|
|
return script_invalid_parameter;
|
|
|
|
widget->value(value);
|
|
widget->do_callback();
|
|
|
|
data = value;
|
|
|
|
return script_no_errors;
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief Template for assigning integer values to various widget types.
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
template <typename widget_type>
|
|
static int assign_integer(widget_type * widget, ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
int data = 0.0;
|
|
return assign_integer(widget, sp, sc, data);
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief Template for assigning double values to various widget types.
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
template <typename widget_type>
|
|
static int assign_double(widget_type * widget, ScriptParsing *sp, SCRIPT_COMMANDS *sc, double &data)
|
|
{
|
|
if(!sp || !sc)
|
|
return script_function_parameter_error;
|
|
|
|
std::string str_data = "";
|
|
|
|
if(sc->argc > 0)
|
|
str_data.assign(sc->args[0]);
|
|
|
|
if(str_data.empty())
|
|
return script_invalid_parameter;
|
|
|
|
double value = 0;
|
|
int cnt = sscanf(str_data.c_str(), "%lf", &value);
|
|
|
|
if(cnt < 1)
|
|
return script_invalid_parameter;
|
|
|
|
if(!widget)
|
|
return script_no_errors;
|
|
|
|
double min = (double) widget->minimum();
|
|
double max = (double) widget->maximum();
|
|
|
|
if((value < min) || (value > max))
|
|
return script_invalid_parameter;
|
|
|
|
widget->value(value);
|
|
widget->do_callback();
|
|
|
|
data = value;
|
|
|
|
return script_no_errors;
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief Template for assigning double values to various widget types.
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
template <typename widget_type>
|
|
static int assign_double(widget_type * widget, ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
double data = 0.0;
|
|
return assign_double(widget, sp, sc, data);
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief Template for assigning string values to various widget types.
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
template <typename widget_type>
|
|
static int assign_string(widget_type * widget, ScriptParsing *sp, SCRIPT_COMMANDS *sc, std::string &data)
|
|
{
|
|
if(!sp || !sc)
|
|
return script_function_parameter_error;
|
|
|
|
std::string str_data = "";
|
|
|
|
if(sc->argc > 0)
|
|
str_data.assign(sc->args[0]);
|
|
|
|
if(str_data.empty())
|
|
return script_invalid_parameter;
|
|
|
|
if(!widget)
|
|
return script_no_errors;
|
|
|
|
widget->value(str_data.c_str());
|
|
widget->do_callback();
|
|
|
|
data.assign(str_data);
|
|
|
|
return script_no_errors;
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief Template for assigning string values to various widget types.
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
template <typename widget_type>
|
|
static int assign_string(widget_type * widget, ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
std::string data = "";
|
|
return assign_string(widget, sp, sc, data);
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief Template for assigning index values to various widget types.
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
template <typename widget_type>
|
|
static int assign_index(widget_type * widget, ScriptParsing *sp, SCRIPT_COMMANDS *sc, int &data)
|
|
{
|
|
if(!sp || !sc)
|
|
return script_function_parameter_error;
|
|
|
|
std::string str_data = "";
|
|
|
|
if(sc->argc > 0)
|
|
str_data.assign(sc->args[0]);
|
|
|
|
if(str_data.empty())
|
|
return script_invalid_parameter;
|
|
|
|
if(!widget)
|
|
return script_no_errors;
|
|
|
|
int index = widget->find_index(str_data.c_str());
|
|
if(index < 0)
|
|
return script_invalid_parameter;
|
|
|
|
widget->index(index);
|
|
widget->do_callback();
|
|
|
|
data = index;
|
|
|
|
return script_no_errors;
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief Template for assigning index values to various widget types.
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
template <typename widget_type>
|
|
static int assign_index(widget_type * widget, ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
int data = 0;
|
|
return assign_index(widget, sp, sc, data);
|
|
}
|
|
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_rsid_notify(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
return assign_bool(chkRSidNotifyOnly, sp, sc);
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_rsid_search_bp(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
return assign_bool(chkRSidWideSearch, sp, sc);
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_rsid_mark_prev(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
return assign_bool(chkRSidMark, sp, sc);
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_rsid_detector(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
return assign_bool(chkRSidAutoDisable, sp, sc);
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_rsid_alert_dialog(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
return assign_bool(chkRSidShowAlert, sp, sc);
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_rsid_tx_freq_lock(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
return assign_bool(chkRetainFreqLock, sp, sc);
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_rsid_freq_change(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
return assign_bool(chkDisableFreqChange, sp, sc);
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_rsid_allow_errors(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
return assign_index(listbox_rsid_errors, sp, sc);
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_rsid_sql_open(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
return assign_integer(sldrRSIDsquelch, sp, sc);
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_rsid_pretone(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
return assign_double(val_pretone, sp, sc);
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_rsid_char_per_row(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
return assign_integer(sldrVideowidth, sp, sc);
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_rsid_end_xmt_id(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
return assign_bool(btn_post_rsid, sp, sc);
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_video_tx_id_mode(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
return assign_bool(btnsendid, sp, sc);
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_video_tx_vid_txt(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
return assign_bool(btnsendvideotext, sp, sc);
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_video_txt_input(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
return assign_string(valVideotext, sp, sc);
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_video_small_font(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
return assign_bool(chkID_SMALL, sp, sc);
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_video_500hz(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
return assign_bool(btn_vidlimit, sp, sc);
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_video_width_limit(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
return assign_bool(btn_vidmodelimit, sp, sc);
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_cw_callsign(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
return assign_bool(btnCWID, sp, sc);
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_cw_speed(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
return assign_integer(sldrCWIDwpm, sp, sc);
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_misc_nbems_state(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
return assign_bool(chkAutoExtract, sp, sc);
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_misc_nbems_open_flmsg(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
return assign_bool(chk_open_flmsg, sp, sc);
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_misc_nbems_open_msg(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
return assign_bool(chk_open_wrap_folder, sp, sc);
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_misc_nbems_open_brwsr(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
return assign_bool(chk_open_flmsg_print, sp, sc);
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_misc_nbems_flmsg_path(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
return assign_string(txt_flmsg_pathname, sp, sc);
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_misc_nbems_timeout(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
return assign_integer(sldr_extract_timeout, sp, sc);
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_rig_freq(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
// Not suitable for assign_xxxx
|
|
if(!sp || !sc)
|
|
return script_function_parameter_error;
|
|
|
|
std::string str_data = "";
|
|
|
|
if(sc->argc > 0)
|
|
str_data.assign(sc->args[0]);
|
|
|
|
if(str_data.empty())
|
|
return script_invalid_parameter;
|
|
|
|
if(!qsoFreqDisp)
|
|
return script_no_errors;
|
|
|
|
double value = 0;
|
|
double max = (double) qsoFreqDisp->maximum();
|
|
|
|
int cnt = sscanf(str_data.c_str(), "%lf", &value);
|
|
|
|
if(cnt < 1 || value < 0.0 || value > max)
|
|
return script_invalid_parameter;
|
|
|
|
qsy((long int) value, active_modem ? active_modem->get_freq() : 1500);
|
|
|
|
return script_no_errors;
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_rig_mode(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
return assign_index(qso_opMODE, sp, sc);
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_wf_hz_offset(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
// Not suitable for assign_xxxx
|
|
if(!sp || !sc)
|
|
return script_function_parameter_error;
|
|
|
|
std::string str_data = "";
|
|
|
|
if(sc->argc > 0)
|
|
str_data.assign(sc->args[0]);
|
|
|
|
if(str_data.empty())
|
|
return script_invalid_parameter;
|
|
|
|
if(!cntrWfwidth)
|
|
return script_no_errors;
|
|
|
|
int value = 0;
|
|
int cnt = sscanf(str_data.c_str(), "%d", &value);
|
|
|
|
int min = 0;
|
|
int max = cntrWfwidth->maximum();
|
|
|
|
if(cnt < 1 || value < min || value > max)
|
|
return script_invalid_parameter;
|
|
|
|
active_modem->set_freq(value);
|
|
|
|
return script_no_errors;
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_rx_rsid(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
return assign_bool(btnRSID, sp, sc);
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_tx_rsid(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
return assign_bool(btnTxRSID, sp, sc);
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_spot(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
return assign_bool(btnAutoSpot, sp, sc);
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_rev(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
if(!wf) return script_no_errors;
|
|
return assign_bool(wf->btnRev, sp, sc);
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_afc(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
return assign_bool(btnAFC, sp, sc);
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_lock(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
if(!wf) return script_no_errors;
|
|
return assign_bool(wf->xmtlock, sp, sc);
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_sql(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
return assign_bool(btnSQL, sp, sc);
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_kpsql(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
return assign_bool(btnPSQL, sp, sc);
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
**********************************************************/
|
|
int process_modem(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
// Not suitable for assign_xxxx
|
|
if(!sp || !sc)
|
|
return script_function_parameter_error;
|
|
|
|
bool modem_found = false;
|
|
int index = 0;
|
|
|
|
std::string value;
|
|
value.assign(sc->args[0]);
|
|
|
|
if(value.empty())
|
|
return script_parameter_error;
|
|
|
|
sp->to_uppercase(value);
|
|
|
|
for(index = 0; index < NUM_MODES; index++) {
|
|
if(strncmp(value.c_str(), mode_info[index].sname, 32) == 0) {
|
|
modem_found = true;
|
|
break;
|
|
}
|
|
}
|
|
|
|
if(modem_found == false)
|
|
return script_invalid_parameter;
|
|
|
|
if((data_io_enabled == KISS_IO) && (!(mode_info[index].iface_io & KISS_IO))) {
|
|
LOG_INFO(_("Invalid Modem for KISS IO"));
|
|
return script_invalid_parameter;
|
|
}
|
|
|
|
REQ_SYNC(init_modem_sync, index, 0);
|
|
|
|
return script_no_errors;
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_io_kiss_ip_address(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
// Not suitable for assign_xxxx
|
|
if(!sp || !sc)
|
|
return script_function_parameter_error;
|
|
|
|
std::string str_data = "";
|
|
|
|
if(sc->argc > 0)
|
|
str_data.assign(sc->args[0]);
|
|
|
|
if(str_data.empty())
|
|
return script_invalid_parameter;
|
|
|
|
if(!txtKiss_ip_address)
|
|
return script_no_errors;
|
|
|
|
if(strncmp((const char *)str_data.c_str(), (const char *)txtKiss_ip_address->value(), 32) != 0) {
|
|
txtKiss_ip_address->value(str_data.c_str());
|
|
txtKiss_ip_address->do_callback();
|
|
sp->restart_flag(true);
|
|
}
|
|
|
|
return script_no_errors;
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_io_kiss_io_port_no(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
// Not suitable for assign_xxxx
|
|
if(!sp || !sc)
|
|
return script_function_parameter_error;
|
|
|
|
std::string str_data = "";
|
|
|
|
if(sc->argc > 0)
|
|
str_data.assign(sc->args[0]);
|
|
|
|
if(str_data.empty())
|
|
return script_invalid_parameter;
|
|
|
|
if(!txtKiss_ip_io_port_no)
|
|
return script_no_errors;
|
|
|
|
if(strncmp((const char *)str_data.c_str(), (const char *)txtKiss_ip_io_port_no->value(), 32) != 0) {
|
|
txtKiss_ip_io_port_no->value(str_data.c_str());
|
|
txtKiss_ip_io_port_no->do_callback();
|
|
sp->restart_flag(true);
|
|
}
|
|
|
|
return script_no_errors;
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_io_kiss_o_port_no(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
// Not suitable for assign_xxxx
|
|
if(!sp || !sc)
|
|
return script_function_parameter_error;
|
|
|
|
std::string str_data = "";
|
|
|
|
if(sc->argc > 0)
|
|
str_data.assign(sc->args[0]);
|
|
|
|
if(str_data.empty())
|
|
return script_invalid_parameter;
|
|
|
|
if(!txtKiss_ip_out_port_no)
|
|
return script_no_errors;
|
|
|
|
if(strncmp((const char *)str_data.c_str(), (const char *)txtKiss_ip_out_port_no->value(), 32) != 0) {
|
|
txtKiss_ip_out_port_no->value(str_data.c_str());
|
|
txtKiss_ip_out_port_no->do_callback();
|
|
sp->restart_flag(true);
|
|
}
|
|
|
|
return script_no_errors;
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_io_kiss_dual_port(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
return assign_bool(btnEnable_dual_port, sp, sc);
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_io_kiss_busy_channel(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
return assign_bool(btnEnableBusyChannel, sp, sc);
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_io_kiss_continue_after(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
return assign_integer(cntBusyChannelSeconds, sp, sc);
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_io_kiss_kpsql_atten(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
return assign_integer(cntKPSQLAttenuation, sp, sc);
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_io_arq_ip_address(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
// Not suitable for assign_xxxx
|
|
if(!sp || !sc)
|
|
return script_function_parameter_error;
|
|
|
|
std::string str_data = "";
|
|
|
|
if(sc->argc > 0)
|
|
str_data.assign(sc->args[0]);
|
|
|
|
if(str_data.empty())
|
|
return script_invalid_parameter;
|
|
|
|
if(!txtArq_ip_address)
|
|
return script_no_errors;
|
|
|
|
if(strncmp((const char *)str_data.c_str(), (const char *)txtArq_ip_address->value(), 32) != 0) {
|
|
txtArq_ip_address->value(str_data.c_str());
|
|
txtArq_ip_address->do_callback();
|
|
sp->restart_flag(true);
|
|
}
|
|
|
|
return script_no_errors;
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_io_arq_io_port_no(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
// Not suitable for assign_xxxx
|
|
if(!sp || !sc)
|
|
return script_function_parameter_error;
|
|
|
|
std::string str_data = "";
|
|
|
|
if(sc->argc > 0)
|
|
str_data.assign(sc->args[0]);
|
|
|
|
if(str_data.empty())
|
|
return script_invalid_parameter;
|
|
|
|
if(!txtArq_ip_address)
|
|
return script_no_errors;
|
|
|
|
if(strncmp((const char *)str_data.c_str(), (const char *)txtArq_ip_port_no->value(), 32) != 0) {
|
|
txtArq_ip_port_no->value(str_data.c_str());
|
|
txtArq_ip_port_no->do_callback();
|
|
sp->restart_flag(true);
|
|
}
|
|
|
|
return script_no_errors;
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_io_xmlrpc_ip_address(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
// Not suitable for assign_xxxx
|
|
if(!sp || !sc)
|
|
return script_function_parameter_error;
|
|
|
|
std::string str_data = "";
|
|
|
|
if(sc->argc > 0)
|
|
str_data.assign(sc->args[0]);
|
|
|
|
if(str_data.empty())
|
|
return script_invalid_parameter;
|
|
|
|
if(!txtXmlrpc_ip_address)
|
|
return script_no_errors;
|
|
|
|
if(strncmp((const char *)str_data.c_str(), (const char *)txtXmlrpc_ip_address->value(), 32) != 0) {
|
|
txtXmlrpc_ip_address->value(str_data.c_str());
|
|
txtXmlrpc_ip_address->do_callback();
|
|
sp->restart_flag(true);
|
|
}
|
|
|
|
return script_no_errors;
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_io_xmlrpc_io_port_no(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
// Not suitable for assign_xxxx
|
|
if(!sp || !sc)
|
|
return script_function_parameter_error;
|
|
|
|
std::string str_data = "";
|
|
|
|
if(sc->argc > 0)
|
|
str_data.assign(sc->args[0]);
|
|
|
|
if(str_data.empty())
|
|
return script_invalid_parameter;
|
|
|
|
if(!txtXmlrpc_ip_port_no)
|
|
return script_no_errors;
|
|
|
|
if(strncmp((const char *)str_data.c_str(), (const char *)txtXmlrpc_ip_port_no->value(), 32) != 0) {
|
|
txtXmlrpc_ip_port_no->value(str_data.c_str());
|
|
txtXmlrpc_ip_port_no->do_callback();
|
|
sp->restart_flag(true);
|
|
}
|
|
|
|
return script_no_errors;
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_io_lock(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
return assign_bool(btnDisable_p2p_io_widgets, sp, sc);
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_io_active_port(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
// Not suitable for assign_xxxx
|
|
if(!sp || !sc)
|
|
return script_function_parameter_error;
|
|
|
|
std::string value;
|
|
value.assign(sc->args[0]);
|
|
|
|
if(value.empty())
|
|
return script_parameter_error;
|
|
|
|
sp->to_uppercase(value);
|
|
|
|
if(!btnEnable_kiss || !btnEnable_arq)
|
|
return script_no_errors;
|
|
|
|
if(value.find(PARM_KISS) != std::string::npos) {
|
|
enable_kiss();
|
|
} else if(value.find(PARM_ARQ) != std::string::npos) {
|
|
enable_arq();
|
|
} else {
|
|
return script_invalid_parameter;
|
|
}
|
|
|
|
return script_no_errors;
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_io_ax25_decode(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
return assign_bool(btnEnable_ax25_decode, sp, sc);
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_io_csma(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
return assign_bool(btnEnable_csma, sp, sc);
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief Assign Call Sign.
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
* \par Note:
|
|
* This string storage can be assigned to anything. User
|
|
* should follow the limitations imposed by the rules
|
|
* of the host country.
|
|
***********************************************************/
|
|
int process_callsign_info(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
return assign_string(inpMyCallsign, sp, sc);
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief Operator Name
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_name_info(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
return assign_string(inpMyName, sp, sc);
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief QTH Location of Operator
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_qth_info(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
return assign_string(inpMyQth, sp, sc);
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief Assign Locator
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_locator_info(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
return assign_string(inpMyLocator, sp, sc);
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief Assign Antenna information
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_antenna_info(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
return assign_string(inpMyAntenna, sp, sc);
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_use_oss_audio_device(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
#if USE_OSS
|
|
return assign_bool(btnAudioIO[0], sp, sc);
|
|
#else
|
|
return script_no_errors;
|
|
#endif // USE_OSS
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_oss_audio_device_path(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
// Not suitable for assign_xxxx
|
|
#if USE_OSS
|
|
if(!sp || !sc)
|
|
return script_function_parameter_error;
|
|
|
|
std::string str_data;
|
|
std::string valid_data;
|
|
|
|
str_data.assign(sc->args[0]);
|
|
if(str_data.empty())
|
|
return script_invalid_parameter;
|
|
|
|
if(!menuOSSDev)
|
|
return script_no_errors;
|
|
|
|
if(sp->check_dev_path(str_data.c_str()))
|
|
return script_device_path_not_found;
|
|
|
|
int index = 0;
|
|
bool found = false;
|
|
int count = menuOSSDev->menubutton()->size();
|
|
|
|
for (index = 0; index < count; index++ ) {
|
|
const Fl_Menu_Item &item = menuOSSDev->menubutton()->menu()[index];
|
|
valid_data.assign(item.label());
|
|
if(!valid_data.empty()) {
|
|
if(strncmp(valid_data.c_str(), str_data.c_str(), FL_PATH_MAX) == 0) {
|
|
found = true;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
if(!found)
|
|
return script_invalid_parameter;
|
|
|
|
menuOSSDev->value(index);
|
|
menuOSSDev->do_callback();
|
|
return script_no_errors;
|
|
|
|
#else
|
|
return script_no_errors;
|
|
#endif // USE_OSS
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_use_port_audio_device(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
#if USE_PORTAUDIO
|
|
return assign_bool(btnAudioIO[1], sp, sc);
|
|
#else
|
|
return script_no_errors;
|
|
#endif // USE_PORTAUDIO
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_capture_path(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
// Not suitable for assign_xxxx
|
|
#if USE_PORTAUDIO
|
|
if(!sp || !sc)
|
|
return script_function_parameter_error;
|
|
|
|
int value = 0;
|
|
std::string str_data = "";
|
|
|
|
if(sc->argc < 2)
|
|
return script_invalid_parameter;
|
|
|
|
int cnt = sscanf(sc->args[0], "%d", &value);
|
|
|
|
if(cnt < 1 || value < 0)
|
|
return script_invalid_parameter;
|
|
|
|
str_data.assign(sc->args[1]);
|
|
if(str_data.empty())
|
|
return script_invalid_parameter;
|
|
|
|
if(!menuPortInDev)
|
|
return script_no_errors;
|
|
|
|
cnt = pa_set_dev(menuPortInDev, str_data, value);
|
|
|
|
if(cnt == PA_DEV_NOT_FOUND)
|
|
return script_invalid_parameter;
|
|
|
|
#endif // USE_PORTAUDIO
|
|
|
|
return script_no_errors;
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_playback_path(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
// Not suitable for assign_xxxx
|
|
#if USE_PORTAUDIO
|
|
|
|
if(!sp || !sc)
|
|
return script_function_parameter_error;
|
|
|
|
int value = 0;
|
|
std::string str_data = "";
|
|
|
|
if(sc->argc < 2)
|
|
return script_invalid_parameter;
|
|
|
|
int cnt = sscanf(sc->args[0], "%d", &value);
|
|
|
|
if(cnt < 1 || value < 0)
|
|
return script_invalid_parameter;
|
|
|
|
str_data.assign(sc->args[1]);
|
|
if(str_data.empty())
|
|
return script_invalid_parameter;
|
|
|
|
if(!menuPortOutDev)
|
|
return script_no_errors;
|
|
|
|
cnt = pa_set_dev(menuPortOutDev, str_data, value);
|
|
|
|
if(cnt == PA_DEV_NOT_FOUND)
|
|
return script_invalid_parameter;
|
|
|
|
#endif
|
|
|
|
return script_no_errors;
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_use_pulse_audio_device(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
#if USE_PULSEAUDIO
|
|
return assign_bool(btnAudioIO[2], sp, sc);
|
|
#else
|
|
return script_no_errors;
|
|
#endif // USE_PULSEAUDIO
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_pulse_audio_device_path(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
#if USE_PULSEAUDIO
|
|
return assign_string(inpPulseServer, sp, sc);
|
|
#else
|
|
return script_no_errors;
|
|
#endif // USE_PULSEAUDIO
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_audio_device_sample_rate_capture(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
// Not suitable for assign_xxxx
|
|
if(!sp || !sc)
|
|
return script_function_parameter_error;
|
|
|
|
std::string str_data = "";
|
|
|
|
if(sc->argc > 0)
|
|
str_data.assign(sc->args[0]);
|
|
|
|
if(str_data.empty())
|
|
return script_invalid_parameter;
|
|
|
|
if(!menuInSampleRate)
|
|
return script_no_errors;
|
|
|
|
int index = menuInSampleRate->find_index(str_data.c_str());
|
|
if(index < 0) {
|
|
str_data.append(" (native)");
|
|
index = menuInSampleRate->find_index(str_data.c_str());
|
|
}
|
|
|
|
if(index < 0)
|
|
return script_invalid_parameter;
|
|
|
|
menuInSampleRate->index(index);
|
|
menuInSampleRate->do_callback();
|
|
|
|
return script_no_errors;
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_audio_device_sample_rate_playback(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
// Not suitable for assign_xxxx
|
|
if(!sp || !sc)
|
|
return script_function_parameter_error;
|
|
|
|
std::string str_data = "";
|
|
|
|
if(sc->argc > 0)
|
|
str_data.assign(sc->args[0]);
|
|
|
|
if(str_data.empty())
|
|
return script_invalid_parameter;
|
|
|
|
if(!menuOutSampleRate)
|
|
return script_no_errors;
|
|
|
|
int index = menuOutSampleRate->find_index(str_data.c_str());
|
|
if(index < 0) {
|
|
str_data.append(" (native)");
|
|
index = menuOutSampleRate->find_index(str_data.c_str());
|
|
}
|
|
|
|
if(index < 0)
|
|
return script_invalid_parameter;
|
|
|
|
menuOutSampleRate->index(index);
|
|
menuOutSampleRate->do_callback();
|
|
|
|
return script_no_errors;
|
|
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_audio_device_converter(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
// Not suitable for assign_xxxx
|
|
if(!sp || !sc)
|
|
return script_function_parameter_error;
|
|
|
|
std::string str_data;
|
|
std::string append_string;
|
|
|
|
if(sc->argc > 0)
|
|
str_data.assign(sc->args[0]);
|
|
|
|
if(str_data.empty())
|
|
return script_invalid_parameter;
|
|
|
|
append_string.assign(" Sinc Interpolator");
|
|
if(str_data.find(append_string) != std::string::npos)
|
|
append_string.clear();
|
|
|
|
if(append_string.empty()) {
|
|
append_string.assign(" Interpolator");
|
|
if(str_data.find(append_string) != std::string::npos) {
|
|
append_string.clear();
|
|
}
|
|
}
|
|
|
|
str_data.append(append_string);
|
|
|
|
if(!menuSampleConverter)
|
|
return script_no_errors;
|
|
|
|
int index = menuSampleConverter->find_index(str_data.c_str());
|
|
if(index < 0)
|
|
return script_invalid_parameter;
|
|
|
|
menuSampleConverter->index(index);
|
|
menuSampleConverter->do_callback();
|
|
|
|
return script_no_errors;
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_rx_ppm(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
return assign_integer(cntRxRateCorr, sp, sc);
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_tx_ppm(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
return assign_integer(cntTxRateCorr, sp, sc);
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_tx_offset(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
return assign_integer(cntTxOffset, sp, sc);
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_modem_signal_left_right(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
return assign_bool(chkAudioStereoOut, sp, sc);
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_reverse_left_right(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
return assign_bool(chkReverseAudio, sp, sc);
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_ptt_tone_right_channel(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
return assign_bool(btnPTTrightchannel2, sp, sc);
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_cw_qsk_right_channel(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
return assign_bool(btnQSK2, sp, sc);
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_pseudo_fsk_right_channel(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
return assign_bool(chkPseudoFSK2, sp, sc);
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_wave_file_sample_rate(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
// Not suitable for assign_xxxx
|
|
if(!sp || !sc)
|
|
return script_function_parameter_error;
|
|
|
|
std::string str_data = "";
|
|
char buffer[32];
|
|
|
|
if(sc->argc > 0)
|
|
str_data.assign(sc->args[0]);
|
|
|
|
if(str_data.empty())
|
|
return script_invalid_parameter;
|
|
|
|
int value = 0;
|
|
int cnt = sscanf(str_data.c_str(), "%d", &value);
|
|
|
|
if(cnt < 1)
|
|
return script_invalid_parameter;
|
|
|
|
if((value < 8000) || (value > 48000))
|
|
return script_invalid_parameter;
|
|
|
|
memset(buffer, 0, sizeof(buffer));
|
|
snprintf(buffer, sizeof(buffer) - 1, "%d", value);
|
|
|
|
if(!listbox_wav_samplerate)
|
|
return script_no_errors;
|
|
|
|
int index = listbox_wav_samplerate->find_index(buffer);
|
|
if(index < 0)
|
|
return script_invalid_parameter;
|
|
|
|
listbox_wav_samplerate->index(index);
|
|
listbox_wav_samplerate->do_callback();
|
|
|
|
return script_no_errors;
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_hrdw_ptt_right_audio_channel(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
return assign_bool(btnPTTrightchannel, sp, sc);
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_hrdw_ptt_sep_serial_port(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
return assign_bool(btnTTYptt, sp, sc);
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
* \par NOTE:
|
|
* Fl_ComboBox (custom widget)
|
|
* find_index() located in combo.cxx and used here returns -1
|
|
* on non-matching.
|
|
***********************************************************/
|
|
int process_hrdw_ptt_sep_serial_port_path(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
return assign_index(inpTTYdev, sp, sc);
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_hrdw_ptt_sep_serial_port_rts(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
return assign_bool(btnRTSptt, sp, sc);
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_hrdw_ptt_sep_serial_port_dtr(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
return assign_bool(btnDTRptt, sp, sc);
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_hrdw_ptt_sep_serial_port_rts_v(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
return assign_bool(btnRTSplusV, sp, sc);
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_hrdw_ptt_sep_serial_port_dtr_v(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
return assign_bool(btnDTRplusV, sp, sc);
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_hrdw_ptt_start_delay(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
return assign_integer(cntPTT_on_delay, sp, sc);
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_hrdw_ptt_end_delay(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
return assign_integer(cntPTT_off_delay, sp, sc);
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_hrdw_ptt_uhrouter(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
#if HAVE_UHROUTER
|
|
return assign_bool(btnUseUHrouterPTT, sp, sc);
|
|
#else
|
|
return script_no_errors;
|
|
#endif // HAVE_UHROUTER
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_hrdw_ptt_parallel(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
return assign_bool(btnUsePPortPTT, sp, sc);
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_hrdw_ptt_initialize(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
|
|
if(!btnInitHWPTT)
|
|
return script_no_errors;
|
|
|
|
btnInitHWPTT->do_callback();
|
|
|
|
return script_no_errors;
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_use_rigcat(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
return assign_bool(chkUSERIGCAT, sp, sc);
|
|
}
|
|
|
|
extern void loadRigXmlFile(void);
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_rigcat_desc_file(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
// Not suitable for assign_xxxx
|
|
if(!sp || !sc)
|
|
return script_function_parameter_error;
|
|
|
|
std::string str_data = "";
|
|
|
|
if(sc->argc > 0)
|
|
str_data.assign(sc->args[0]);
|
|
|
|
if(str_data.empty())
|
|
return script_invalid_parameter;
|
|
|
|
if(str_data.find(DEFAULT_RIGXML_FILENAME) != std::string::npos)
|
|
return script_no_errors;
|
|
|
|
if(sp->check_filename((char *) str_data.c_str()))
|
|
return script_file_not_found;
|
|
|
|
if(!txtXmlRigFilename)
|
|
return script_no_errors;
|
|
|
|
progdefaults.XmlRigFilename.assign(str_data);
|
|
txtXmlRigFilename->value(fl_filename_name(progdefaults.XmlRigFilename.c_str()));
|
|
loadRigXmlFile();
|
|
|
|
return script_no_errors;
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_rigcat_device_path(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
return assign_index(inpXmlRigDevice, sp, sc);
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_rigcat_retries(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
int value = 0;
|
|
int error = assign_integer(cntRigCatRetries, sp, sc, value);
|
|
|
|
if(!error && cntRigCatRetries) {
|
|
progdefaults.RigCatRetries = value;
|
|
progdefaults.changed = true;
|
|
}
|
|
return error;
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_rigcat_retry_interval(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
int value = 0;
|
|
int error = assign_integer(cntRigCatTimeout, sp, sc, value);
|
|
|
|
if(!error && cntRigCatTimeout) {
|
|
progdefaults.RigCatTimeout = value;
|
|
progdefaults.changed = true;
|
|
}
|
|
|
|
return error;
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_rigcat_write_delay(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
int value = 0;
|
|
int error = assign_integer(cntRigCatWait, sp, sc, value);
|
|
|
|
if(!error && cntRigCatWait) {
|
|
progdefaults.RigCatTimeout = value;
|
|
progdefaults.changed = true;
|
|
}
|
|
|
|
return error;
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_rigcat_init_delay(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
int value = 0;
|
|
int error = assign_integer(cntRigCatInitDelay, sp, sc, value);
|
|
|
|
if(!error && cntRigCatInitDelay) {
|
|
progdefaults.RigCatInitDelay = value;
|
|
progdefaults.changed = true;
|
|
}
|
|
return error;
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_rigcat_baud_rate(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
int index = 0;
|
|
int error = assign_index(listbox_xml_rig_baudrate, sp, sc, index);
|
|
|
|
if(!error && listbox_xml_rig_baudrate) {
|
|
progdefaults.XmlRigBaudrate = index;
|
|
progdefaults.changed = true;
|
|
}
|
|
|
|
return error;
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_rigcat_cat_command_ptt(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
return assign_bool(btnRigCatCMDptt, sp, sc);
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_rigcat_stop_bits(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
int value = 0;
|
|
int error = assign_integer(valRigCatStopbits, sp, sc, value);
|
|
|
|
if(!error && valRigCatStopbits) {
|
|
progdefaults.RigCatStopbits = value;
|
|
progdefaults.changed = true;
|
|
}
|
|
|
|
return error;
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_rigcat_commands_echoed(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
bool value = 0;
|
|
int error = assign_bool(btnRigCatEcho, sp, sc, value);
|
|
|
|
if(!error && btnRigCatEcho) {
|
|
progdefaults.RigCatECHO = value;
|
|
progdefaults.changed = true;
|
|
}
|
|
|
|
return error;
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_rigcat_toggle_rts_ptt(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
bool value = 0;
|
|
int error = assign_bool(btnRigCatRTSptt, sp, sc, value);
|
|
|
|
if(!error && btnRigCatRTSptt) {
|
|
progdefaults.RigCatRTSptt = value;
|
|
progdefaults.changed = true;
|
|
}
|
|
|
|
return error;
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_rigcat_restore_on_close(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
bool value = 0;
|
|
int error = assign_bool(chk_restore_tio, sp, sc, value);
|
|
|
|
if(!error && chk_restore_tio) {
|
|
progdefaults.RigCatRestoreTIO = value;
|
|
progdefaults.changed = true;
|
|
}
|
|
|
|
return error;
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_rigcat_rts_12v(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
bool value = 0;
|
|
int error = assign_bool(btnRigCatRTSplus, sp, sc, value);
|
|
|
|
if(!error && btnRigCatRTSplus) {
|
|
progdefaults.RigCatRTSplus = value;
|
|
progdefaults.changed = true;
|
|
}
|
|
|
|
return error;
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_rigcat_dtr_12v(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
bool value = 0;
|
|
int error = assign_bool(btnRigCatDTRplus, sp, sc, value);
|
|
|
|
if(!error && btnRigCatDTRplus) {
|
|
progdefaults.RigCatDTRplus = value;
|
|
progdefaults.changed = true;
|
|
}
|
|
|
|
return error;
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_rigcat_hrdwr_flow(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
bool value = 0;
|
|
int error = assign_bool(chkRigCatRTSCTSflow, sp, sc, value);
|
|
|
|
if(!error && chkRigCatRTSCTSflow) {
|
|
progdefaults.RigCatRTSCTSflow = value;
|
|
progdefaults.changed = true;
|
|
}
|
|
|
|
return error;
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_rigcat_vsp_enable(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
bool value = 0;
|
|
int error = assign_bool(chkRigCatVSP, sp, sc, value);
|
|
|
|
if(!error && chkRigCatVSP) {
|
|
progdefaults.RigCatVSP = value;
|
|
progdefaults.changed = true;
|
|
}
|
|
|
|
return error;
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_rigcat_initialize(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
if(!btnInitRIGCAT)
|
|
return script_no_errors;
|
|
|
|
btnInitRIGCAT->do_callback();
|
|
|
|
return script_no_errors;
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_use_hamlib(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
#if USE_HAMLIB
|
|
return assign_bool(chkUSEHAMLIB, sp, sc);
|
|
#endif // USE_HAMLIB
|
|
|
|
return script_no_errors;
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_hamlib_rig(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
#if USE_HAMLIB
|
|
return assign_index(cboHamlibRig, sp, sc);
|
|
#else
|
|
return script_no_errors;
|
|
#endif // USE_HAMLIB
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_hamlib_retries(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
#if USE_HAMLIB
|
|
int value = 0;
|
|
int error = assign_integer(cntHamlibRetries, sp, sc, value);
|
|
|
|
if(!error && cntHamlibRetries) {
|
|
progdefaults.HamlibRetries = value;
|
|
progdefaults.changed = true;
|
|
}
|
|
|
|
return error;
|
|
|
|
#else
|
|
return script_no_errors;
|
|
#endif // USE_HAMLIB
|
|
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_hamlib_retry_interval(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
#if USE_HAMLIB
|
|
int value = 0;
|
|
int error = assign_integer(cntHamlibTimeout, sp, sc, value);
|
|
|
|
if(!error && cntHamlibTimeout) {
|
|
progdefaults.HamlibTimeout = value;
|
|
progdefaults.changed = true;
|
|
}
|
|
|
|
return error;
|
|
#else
|
|
return script_no_errors;
|
|
#endif // USE_HAMLIB
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_hamlib_write_delay(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
#if USE_HAMLIB
|
|
int value = 0;
|
|
int error = assign_integer(cntHamlibWriteDelay, sp, sc, value);
|
|
|
|
if(!error && cntHamlibWriteDelay) {
|
|
progdefaults.HamlibWriteDelay = value;
|
|
progdefaults.changed = true;
|
|
}
|
|
|
|
return error;
|
|
#else
|
|
return script_no_errors;
|
|
#endif // USE_HAMLIB
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_hamlib_post_write_delay(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
#if USE_HAMLIB
|
|
int value = 0;
|
|
int error = assign_integer(cntHamlibWait, sp, sc, value);
|
|
|
|
if(!error && cntHamlibWait) {
|
|
progdefaults.HamlibWait = value;
|
|
progdefaults.changed = true;
|
|
}
|
|
|
|
return error;
|
|
#else
|
|
return script_no_errors;
|
|
#endif // USE_HAMLIB
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
* \par Note:
|
|
* This string storage can be assigned to anything. User
|
|
* should follow the limitations imposed by the rules
|
|
* of the host country.
|
|
***********************************************************/
|
|
int process_hamlib_device_path(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
#if USE_HAMLIB
|
|
// Not suitable for assign_xxxx
|
|
if(!sp || !sc)
|
|
return script_function_parameter_error;
|
|
|
|
std::string str_data = "";
|
|
|
|
if(sc->argc > 0)
|
|
str_data.assign(sc->args[0]);
|
|
|
|
if(str_data.empty())
|
|
return script_invalid_parameter;
|
|
|
|
if(!inpRIGdev)
|
|
return script_no_errors;
|
|
|
|
int index = inpRIGdev->find_index(str_data.c_str());
|
|
if(index < 0)
|
|
return script_invalid_parameter;
|
|
|
|
progdefaults.HamRigDevice.assign(str_data);
|
|
progdefaults.changed = true;
|
|
|
|
inpRIGdev->value(str_data.c_str());
|
|
inpRIGdev->do_callback();
|
|
|
|
#endif // USE_HAMLIB
|
|
|
|
return script_no_errors;
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_hamlib_baud_rate(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
#if USE_HAMLIB
|
|
int index = 0;
|
|
int error = assign_index(listbox_baudrate, sp, sc, index);
|
|
|
|
if(!error && listbox_baudrate) {
|
|
progdefaults.HamRigBaudrate = index;
|
|
progdefaults.changed = true;
|
|
}
|
|
return error;
|
|
#else
|
|
return script_no_errors;
|
|
#endif // USE_HAMLIB
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_hamlib_stop_bits(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
#if USE_HAMLIB
|
|
int value = 0;
|
|
int error = assign_integer(valHamRigStopbits, sp, sc, value);
|
|
|
|
if(!error && valHamRigStopbits) {
|
|
progdefaults.HamRigStopbits = value;
|
|
progdefaults.changed = true;
|
|
}
|
|
return error;
|
|
#else
|
|
return script_no_errors;
|
|
#endif // USE_HAMLIB
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_hamlib_sideband(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
#if USE_HAMLIB
|
|
int index = 0;
|
|
int error = assign_index(listbox_sideband, sp, sc, index);
|
|
|
|
if(!error && listbox_sideband) {
|
|
progdefaults.HamlibSideband = index;
|
|
progdefaults.changed = true;
|
|
}
|
|
return error;
|
|
#else
|
|
return script_no_errors;
|
|
#endif // USE_HAMLIB
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_hamlib_ptt_hl_command(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
#if USE_HAMLIB
|
|
bool value = 0;
|
|
int error = assign_bool(btnHamlibCMDptt, sp, sc, value);
|
|
|
|
if(!error && btnHamlibCMDptt) {
|
|
progdefaults.HamlibCMDptt = value;
|
|
progdefaults.changed = true;
|
|
}
|
|
return error;
|
|
#else
|
|
return script_no_errors;
|
|
#endif // USE_HAMLIB
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_hamlib_dtr_12(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
#if USE_HAMLIB
|
|
bool value = 0;
|
|
int error = assign_bool(btnHamlibDTRplus, sp, sc, value);
|
|
|
|
if(!error && btnHamlibDTRplus) {
|
|
progdefaults.HamlibDTRplus = value;
|
|
progdefaults.changed = true;
|
|
}
|
|
return error;
|
|
#else
|
|
return script_no_errors;
|
|
#endif // USE_HAMLIB
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_hamlib_rts_12(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
#if USE_HAMLIB
|
|
// Not suitable for assign_xxxx
|
|
if(!sp || !sc)
|
|
return script_function_parameter_error;
|
|
|
|
bool value = 0;
|
|
int error = sp->check_bool(sc->args[0], value);
|
|
|
|
if(error != script_no_errors)
|
|
return error;
|
|
|
|
if(!chkHamlibRTSCTSflow || !chkHamlibRTSplus)
|
|
return script_no_errors;
|
|
|
|
if(chkHamlibRTSCTSflow->value())
|
|
value = false;
|
|
|
|
progdefaults.HamlibRTSplus = value;
|
|
progdefaults.changed = true;
|
|
|
|
chkHamlibRTSplus->value(value);
|
|
chkHamlibRTSplus->do_callback();
|
|
|
|
#endif // USE_HAMLIB
|
|
|
|
return script_no_errors;
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_hamlib_rts_cts_flow(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
#if USE_HAMLIB
|
|
bool value = 0;
|
|
int error = assign_bool(chkHamlibRTSCTSflow, sp, sc, value);
|
|
|
|
if(!error && chkHamlibRTSCTSflow) {
|
|
progdefaults.HamlibRTSCTSflow = value;
|
|
progdefaults.changed = true;
|
|
}
|
|
return error;
|
|
#else
|
|
return script_no_errors;
|
|
#endif // USE_HAMLIB
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_hamlib_xon_xoff_flow(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
#if USE_HAMLIB
|
|
bool value = 0;
|
|
int error = assign_bool(chkHamlibXONXOFFflow, sp, sc, value);
|
|
|
|
if(!error && chkHamlibXONXOFFflow) {
|
|
progdefaults.HamlibXONXOFFflow = value;
|
|
progdefaults.changed = true;
|
|
}
|
|
return error;
|
|
#else
|
|
return script_no_errors;
|
|
#endif // USE_HAMLIB
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_hamlib_advanced_config(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
#if USE_HAMLIB
|
|
std::string value = "";
|
|
int error = assign_string(inpHamlibConfig, sp, sc, value);
|
|
|
|
if(!error && inpHamlibConfig) {
|
|
progdefaults.HamConfig.assign(value);
|
|
progdefaults.changed = true;
|
|
}
|
|
return error;
|
|
#else
|
|
return script_no_errors;
|
|
#endif // USE_HAMLIB
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief Initialize HAMLIB Parameters
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_hamlib_initialize(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
#if USE_HAMLIB
|
|
|
|
if(!btnInitHAMLIB)
|
|
return script_no_errors;
|
|
|
|
btnInitHAMLIB->do_callback();
|
|
|
|
#endif // USE_HAMLIB
|
|
|
|
return script_no_errors;
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief Set XMLRPC rig control to active use.
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_use_xml_rpc(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
bool value = 0;
|
|
int error = assign_bool(chkUSEXMLRPC, sp, sc, value);
|
|
|
|
if(!error && chkUSEXMLRPC) {
|
|
progdefaults.chkUSEXMLRPCis = value;
|
|
progdefaults.changed = true;
|
|
}
|
|
|
|
return error;
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_xml_rpc_mode_bw_delay(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
double value = 0;
|
|
int error = assign_double(mbw_delay, sp, sc, value);
|
|
|
|
if(!error && mbw_delay) {
|
|
progdefaults.mbw = value;
|
|
progdefaults.changed = true;
|
|
}
|
|
|
|
return error;
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief Initialize Rig Control XMLRPC interface.
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_xml_rpc_initialize(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
|
|
if(!btnInitXMLRPC)
|
|
return script_no_errors;
|
|
|
|
btnInitXMLRPC->do_callback();
|
|
|
|
return script_no_errors;
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief Assign Macro information to there respective
|
|
* macro button.
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_load_macro(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
// Not suitable for assign_xxxx
|
|
if(!sp || !sc)
|
|
return script_function_parameter_error;
|
|
|
|
std::string macro_data = sp->macro_command();
|
|
std::string macro_label = "";
|
|
|
|
int col = 0;
|
|
int row = 0;
|
|
int index = 0;
|
|
|
|
if(sc->argc < 3) return script_invalid_parameter;
|
|
|
|
if((!sc->args[0]) || (!sc->args[1]) || (!sc->args[2]))
|
|
return script_invalid_parameter;
|
|
|
|
index = sscanf(sc->args[0], "%d", &col);
|
|
if(index < 1)
|
|
return script_invalid_parameter;
|
|
|
|
index = sscanf(sc->args[1], "%d", &row);
|
|
if(index < 1)
|
|
return script_invalid_parameter;
|
|
|
|
macro_label.assign(sc->args[2]);
|
|
if(macro_label.empty())
|
|
return script_invalid_parameter;
|
|
|
|
if(col > 0) col--;
|
|
if(row > 0) row--;
|
|
|
|
index = (col * NUMMACKEYS) + row;
|
|
|
|
if((index < 0) || (index > MAXMACROS))
|
|
return script_invalid_parameter;
|
|
|
|
if((col == 0) || ((col == altMacros) && (progdefaults.mbar_scheme > MACRO_SINGLE_BAR_MAX))) {
|
|
update_macro_button(index, macro_data.c_str(), macro_label.c_str());
|
|
} else {
|
|
macros.text[index].assign(macro_data);
|
|
macros.name[index].assign(macro_label);
|
|
}
|
|
|
|
return script_no_errors;
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief Reset Configuration panel attributes
|
|
* \param sp Access to ScritpParsing members.
|
|
* \param sc Access to SCRIPT_COMMANDS structure variables.
|
|
* \return 0 (no error) Other (error)
|
|
***********************************************************/
|
|
int process_reset(ScriptParsing *sp, SCRIPT_COMMANDS *sc)
|
|
{
|
|
return script_no_errors;
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief Pass script file name to script passing class
|
|
* for execution.
|
|
* Called from the File->Execute Config Script menu item.
|
|
* \param void
|
|
***********************************************************/
|
|
static void script_execute(const char *filename, bool queue_flag)
|
|
{
|
|
|
|
ScriptParsing *sp = 0;
|
|
static std::string script_filename = "";
|
|
|
|
if(!filename) {
|
|
LOG_INFO(_("Script file name (path) null pointer"));
|
|
return;
|
|
}
|
|
|
|
script_filename.assign(filename);
|
|
|
|
if(script_filename.empty()) {
|
|
LOG_INFO(_("Script file name (path) invalid"));
|
|
return;
|
|
}
|
|
|
|
sp = new ScriptParsing;
|
|
|
|
if(!sp) {
|
|
LOG_INFO(_("Script Parsing Class Allocation Fail (%s)"), script_filename.c_str());
|
|
return;
|
|
}
|
|
|
|
LOG_INFO(_("Executing script file: %s"), script_filename.c_str());
|
|
|
|
sp->parse_commands((char *) script_filename.c_str());
|
|
|
|
if(sp->script_errors()) {
|
|
LOG_INFO(_("Issues reported in processing script file: %s"), script_filename.c_str());
|
|
fl_alert("%s", _("Script file contains potential issues\nSee documentation and/or Log file for details."));
|
|
}
|
|
|
|
if(sp->restart_flag()) {
|
|
fl_alert("%s", _("Some changes made by the script requires program\nrestart before they become active."));
|
|
}
|
|
|
|
if(sp)
|
|
delete sp;
|
|
}
|
|
|
|
/** ********************************************************
|
|
* \brief Call back function when executing a configuration script.
|
|
* Called from the File->Execute Config Script menu item.
|
|
* \param void
|
|
***********************************************************/
|
|
void cb_scripts(bool reset_path = false)
|
|
{
|
|
pthread_mutex_lock(&mutex_script_io);
|
|
|
|
static bool first_time = true;
|
|
static char script_filename[FL_PATH_MAX + 1];
|
|
std::string new_path = "";
|
|
|
|
if(reset_path || first_time) {
|
|
memset(script_filename, 0, sizeof(script_filename));
|
|
strncpy(script_filename, ScriptsDir.c_str(), FL_PATH_MAX);
|
|
int len = strnlen(script_filename, FL_PATH_MAX);
|
|
|
|
if(len > 0) {
|
|
len--;
|
|
if(script_filename[len] == PATH_CHAR_SEPERATOR);
|
|
else strncat(script_filename, PATH_SEPERATOR, FL_PATH_MAX);
|
|
} else {
|
|
return;
|
|
}
|
|
|
|
first_time = false;
|
|
}
|
|
|
|
const char *p = FSEL::select((char *)_("Script Files"), (char *)_("*.txt"), \
|
|
script_filename);
|
|
|
|
if(p) {
|
|
memset(script_filename, 0, sizeof(script_filename));
|
|
strncpy(script_filename, p, FL_PATH_MAX);
|
|
|
|
Fl::lock();
|
|
script_execute(script_filename, false);
|
|
Fl::unlock();
|
|
|
|
}
|
|
|
|
pthread_mutex_unlock(&mutex_script_io);
|
|
}
|