xmlrpc add tx text

* remove dependency on inserting text into Tx panel
    - causes slow response to large block transfers
      such as might be used by flmsg AutoSend process
    - show % of block sent on status bar
pull/4/head
David Freese 2016-05-28 19:48:41 -05:00
rodzic 01245fe7b5
commit 9c959afcd8
3 zmienionych plików z 28 dodań i 3 usunięć

Wyświetl plik

@ -49,6 +49,7 @@ private:
extern void xmlrpc_set_qsy(long long rfc);
extern int xmltest_char();
extern bool xmltest_char_available;
extern void reset_xmlchars();
extern int number_of_samples(std::string s);
extern bool flmsg_online;

Wyświetl plik

@ -1725,10 +1725,29 @@ public:
static string xmlchars;
bool xmltest_char_available;
static size_t pxmlchar = 0;
static char xml_status_msg[50];
int xmltest_char()
{
if (pxmlchar >= xmlchars.length() ) return -3;
return xmlchars[pxmlchar++] & 0xFF;
if (xmlchars.empty() || !xmltest_char_available)
return 0;
if (pxmlchar >= xmlchars.length() ) {
xmlchars.clear();
pxmlchar = 0;
xmltest_char_available = false;
return -3;
}
pxmlchar++;
snprintf(xml_status_msg, sizeof(xml_status_msg), "%d%% sent",
100*pxmlchar/xmlchars.length());
put_status(xml_status_msg, 1.0);
return xmlchars[pxmlchar] & 0xFF;
}
void reset_xmlchars()
{
xmlchars.clear();
pxmlchar = 0;
xmltest_char_available = false;
}
int number_of_samples( string s)
@ -2944,7 +2963,10 @@ public:
void execute(const xmlrpc_c::paramList& params, xmlrpc_c::value* retval)
{
XMLRPC_LOCK;
REQ_SYNC(&FTextTX::add_text, TransmitText, params.getString(0));
// REQ_SYNC(&FTextTX::add_text, TransmitText, params.getString(0));
xmlchars = params.getString(0);
xmltest_char_available = true;
pxmlchar = 0;
*retval = xmlrpc_c::value_nil();
}
};

Wyświetl plik

@ -71,6 +71,7 @@
#include "flslider2.h"
#include "debug.h"
#include "rigsupport.h"
#include "xmlrpc.h"
using namespace std;
@ -1245,6 +1246,7 @@ void xmtrcv_cb(Fl_Widget *w, void *vi)
}
else {
TransmitText->clear();
reset_xmlchars();
if (arq_text_available)
AbortARQ();
if (progStatus.timer)