+ if (msg.size() >= 9 && msg[0] == 'G' && msg[1] == '1' && msg[2] == '0') {
+ // G10: Game clock, score, period?
+ bool clock_running = !(msg[3] & 0x02);
+// bool klaxon = (msg[3] & 0x04);
+ int minutes = parse_clock(msg[4], msg[5]);
+ int seconds = parse_clock(msg[6], msg[7]);
+ int score1 = parse_score_weird(msg[8], msg[9], msg[10]);
+ int score2 = parse_score_weird(msg[11], msg[12], msg[13]);
+
+ map<string, string> param;
+ ws->send_command("update " + serialize_as_json(param));
+
+ if (port == 6002) {
+ map<string, string> param;
+ param["score1"] = to_string(score1);
+ param["score2"] = to_string(score2);
+ ws->send_command("update " + serialize_as_json(param));
+ ws->send_command("eval setscore3()");
+ } else if (port == 6001) {
+ map<string, string> param;
+ param["score1"] = to_string(score1);
+ param["score2"] = to_string(score2);
+ ws->send_command("update " + serialize_as_json(param));
+ ws->send_command("eval setscore2()");
+ } else {
+ map<string, string> param;
+ param["clock_min"] = to_string(minutes);
+ param["clock_sec"] = to_string(seconds);
+ ws->send_command("update " + serialize_as_json(param));
+ ui->score_1_box->setValue(score1);
+ ui->score_2_box->setValue(score2);
+ set_score_clicked();
+ }
+ if (port == 6002) {
+ ws->send_command("eval adjustclockfromstate(2)");
+ if (clock_running) {
+ ws->send_command("eval startclock(2)");
+ } else {
+ ws->send_command("eval stopclock(2)");
+ }
+ } else if (port == 6001) {
+ ws->send_command("eval adjustclockfromstate(1)");
+ if (clock_running) {
+ ws->send_command("eval startclock(1)");
+ } else {
+ ws->send_command("eval stopclock(1)");
+ }
+ } else {
+ ws->send_command("eval adjustclockfromstate(0)");
+ if (clock_running) {
+ ws->send_command("eval startclock(0)");
+ } else {
+ ws->send_command("eval stopclock(0)");
+ }
+ }
+ }