kopia lustrzana https://github.com/jamescoxon/dl-fldigi
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 barpull/4/head
rodzic
01245fe7b5
commit
9c959afcd8
|
@ -49,6 +49,7 @@ private:
|
||||||
extern void xmlrpc_set_qsy(long long rfc);
|
extern void xmlrpc_set_qsy(long long rfc);
|
||||||
extern int xmltest_char();
|
extern int xmltest_char();
|
||||||
extern bool xmltest_char_available;
|
extern bool xmltest_char_available;
|
||||||
|
extern void reset_xmlchars();
|
||||||
extern int number_of_samples(std::string s);
|
extern int number_of_samples(std::string s);
|
||||||
|
|
||||||
extern bool flmsg_online;
|
extern bool flmsg_online;
|
||||||
|
|
|
@ -1725,10 +1725,29 @@ public:
|
||||||
static string xmlchars;
|
static string xmlchars;
|
||||||
bool xmltest_char_available;
|
bool xmltest_char_available;
|
||||||
static size_t pxmlchar = 0;
|
static size_t pxmlchar = 0;
|
||||||
|
static char xml_status_msg[50];
|
||||||
int xmltest_char()
|
int xmltest_char()
|
||||||
{
|
{
|
||||||
if (pxmlchar >= xmlchars.length() ) return -3;
|
if (xmlchars.empty() || !xmltest_char_available)
|
||||||
return xmlchars[pxmlchar++] & 0xFF;
|
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)
|
int number_of_samples( string s)
|
||||||
|
@ -2944,7 +2963,10 @@ public:
|
||||||
void execute(const xmlrpc_c::paramList& params, xmlrpc_c::value* retval)
|
void execute(const xmlrpc_c::paramList& params, xmlrpc_c::value* retval)
|
||||||
{
|
{
|
||||||
XMLRPC_LOCK;
|
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();
|
*retval = xmlrpc_c::value_nil();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
@ -71,6 +71,7 @@
|
||||||
#include "flslider2.h"
|
#include "flslider2.h"
|
||||||
#include "debug.h"
|
#include "debug.h"
|
||||||
#include "rigsupport.h"
|
#include "rigsupport.h"
|
||||||
|
#include "xmlrpc.h"
|
||||||
|
|
||||||
using namespace std;
|
using namespace std;
|
||||||
|
|
||||||
|
@ -1245,6 +1246,7 @@ void xmtrcv_cb(Fl_Widget *w, void *vi)
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
TransmitText->clear();
|
TransmitText->clear();
|
||||||
|
reset_xmlchars();
|
||||||
if (arq_text_available)
|
if (arq_text_available)
|
||||||
AbortARQ();
|
AbortARQ();
|
||||||
if (progStatus.timer)
|
if (progStatus.timer)
|
||||||
|
|
Ładowanie…
Reference in New Issue