1 // ---------------------------------------------------------------------------- 2 // 3 // data_io.h 4 // 5 // support for ARQ server/client system such as pskmail and fl_arq 6 // support for KISS server/client system such as BPQ and JNOS 7 // 8 // Copyright (C) 2014 9 // Robert Stiles, KK5VD 10 // 11 // This file is part of fldigi. 12 // 13 // Fldigi is free software: you can redistribute it and/or modify 14 // it under the terms of the GNU General Public License as published by 15 // the Free Software Foundation, either version 3 of the License, or 16 // (at your option) any later version. 17 // 18 // Fldigi is distributed in the hope that it will be useful, 19 // but WITHOUT ANY WARRANTY; without even the implied warranty of 20 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 21 // GNU General Public License for more details. 22 // 23 // You should have received a copy of the GNU General Public License 24 // along with fldigi. If not, see <http://www.gnu.org/licenses/>. 25 // ---------------------------------------------------------------------------- 26 27 #ifndef fldigi_data_io_h 28 #define fldigi_data_io_h 29 30 #include "gettext.h" 31 32 #define IO_START_STR _("Start") 33 #define IO_STOP_STR _("Stop") 34 35 #define DEFAULT_ARQ_IP_ADDRESS "127.0.0.1" 36 #define DEFAULT_ARQ_IP_PORT "7322" 37 38 #define DEFAULT_KISS_IP_ADDRESS "127.0.0.1" 39 #define DEFAULT_KISS_IP_IO_PORT "7342" 40 #define DEFAULT_KISS_IP_OUT_PORT "7343" 41 42 #define DEFAULT_XMLPRC_IP_ADDRESS "127.0.0.1" 43 #define DEFAULT_XMLRPC_IP_PORT "7362" 44 45 #define DEFAULT_FLRIG_IP_ADDRESS "127.0.0.1" 46 #define DEFAULT_FLRIG_IP_PORT "12345" 47 48 #define DEFAULT_FLLOG_IP_ADDRESS "127.0.0.1" 49 #define DEFAULT_FLLOG_IP_PORT "8421" 50 51 enum {DISABLED_IO, ARQ_IO, KISS_IO, XMLRPC_IO, FLRIG_IO, FLLOG_IO}; 52 53 #define RSID_KISS_NOTIFY 0x01 54 #define RSID_KISS_ACTIVE 0x02 55 #define RSID_KISS_USER 0x03 56 57 #define DATA_IO_NA 0x00 58 #define DATA_IO_TCP 0x01 59 #define DATA_IO_UDP 0x02 60 61 // This variable indepent of progdefaults.data_io_enabled 62 // and progStatus.data_io_enabled 63 // Only on start do we assign this variable with progStatus.data_io_enabled. 64 // This is one way assignment as we dont want to save all of the available states 65 // this variable will have. 66 extern int data_io_enabled; // Located in kiss_io.cxx 67 extern int data_io_type; // Located in kiss_io.cxx 68 69 extern void disable_config_p2p_io_widgets(void); 70 extern void enable_config_p2p_io_widgets(void); 71 extern void set_ip_to_default(int which_io); 72 73 // KISS implementation 74 extern void kiss_init(bool connect_flag); 75 extern void kiss_close(bool override_flag); 76 extern void kiss_reset(void); 77 extern void WriteKISS(const char data); 78 extern void WriteKISS(const char *data); 79 extern void WriteKISS(const char *data, size_t size); 80 extern void WriteKISS(std::string data); 81 extern bool kiss_thread_running(void); 82 83 extern bool kiss_auto_connect(void); 84 85 extern void check_kiss_modem(void); 86 extern int kiss_get_char(void); 87 extern bool kiss_text_available; // Located in kiss_io.cxx 88 89 extern bool kiss_bcast_rsid_reception; 90 extern bool kiss_bcast_trx_toggle; 91 extern bool bcast_rsid_kiss_frame(int new_wf_pos, int new_mode, int old_wf_pos, int old_mode, int notify); 92 extern void bcast_trxc_kiss_frame(void); 93 extern void kiss_io_set_button_state(void *); 94 extern void connect_to_kiss_io(bool); 95 96 // ARQ implementation 97 extern void arq_init(void); 98 extern void arq_close(void); 99 extern bool arq_state(void); 100 extern void WriteARQ(unsigned char); 101 extern void checkTLF(void); 102 extern int arq_get_char(void); 103 extern bool arq_text_available; 104 extern bool gmfskmail; 105 extern std::string ArqFilename; 106 extern bool mailclient; 107 extern bool mailserver; 108 extern bool tlfio; 109 extern time_t inhibit_tx_seconds; 110 111 // Misc calls 112 extern void enable_disable_kpsql(void); 113 #endif 114