From fc0023a0cd5a3a8227512cc6159ae070df71111c Mon Sep 17 00:00:00 2001 From: Fred Gleason Date: Wed, 5 Dec 2018 11:33:35 -0500 Subject: [PATCH] 2018-12-05 Fred Gleason * Added a set of enclosing '{}' braces around the JSON-formatted PAD output to make it well-formed. --- ChangeLog | 3 +++ lib/rdlogplay.cpp | 36 +++++++++++++++++++----------------- 2 files changed, 22 insertions(+), 17 deletions(-) diff --git a/ChangeLog b/ChangeLog index a95ca202..6f22c37e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -18097,3 +18097,6 @@ 2018-12-04 Fred Gleason * Added an rdrlmd(8) service. * Implemented JSON-formatted PAD output on TCP port 34289. +2018-12-05 Fred Gleason + * Added a set of enclosing '{}' braces around the JSON-formatted PAD + output to make it well-formed. diff --git a/lib/rdlogplay.cpp b/lib/rdlogplay.cpp index 46369502..6259de4e 100644 --- a/lib/rdlogplay.cpp +++ b/lib/rdlogplay.cpp @@ -2961,46 +2961,48 @@ void RDLogPlay::SendNowNext() // // RLM2 // - play_pad_socket->write(QString("\"padUpdate\": {\r\n").toUtf8()); - play_pad_socket->write(RDJsonField("dateTime",QDateTime::currentDateTime(),4).toUtf8()); - play_pad_socket->write(RDJsonField("logMachine",play_id,4)); - play_pad_socket->write(RDJsonField("onairFlag",play_onair_flag,4)); - play_pad_socket->write(RDJsonField("logMode",RDAirPlayConf::logModeText(play_op_mode),4)); + play_pad_socket->write(QString("{\r\n").toUtf8()); + play_pad_socket->write(QString(" \"padUpdate\": {\r\n").toUtf8()); + play_pad_socket->write(RDJsonField("dateTime",QDateTime::currentDateTime(),8).toUtf8()); + play_pad_socket->write(RDJsonField("logMachine",play_id,8)); + play_pad_socket->write(RDJsonField("onairFlag",play_onair_flag,8)); + play_pad_socket->write(RDJsonField("logMode",RDAirPlayConf::logModeText(play_op_mode),8)); // // Service // RDSvc *svc=new RDSvc(svcname,rda->station(),rda->config(),this); - play_pad_socket->write(QString(" \"service\": {\r\n").toUtf8()); - play_pad_socket->write(RDJsonField("name",svcname,8).toUtf8()); + play_pad_socket->write(QString(" \"service\": {\r\n").toUtf8()); + play_pad_socket->write(RDJsonField("name",svcname,12).toUtf8()); play_pad_socket-> - write(RDJsonField("description",svc->description(),8).toUtf8()); + write(RDJsonField("description",svc->description(),12).toUtf8()); play_pad_socket-> - write(RDJsonField("programCode",svc->programCode(),8,true).toUtf8()); - play_pad_socket->write(QString(" },\r\n").toUtf8()); + write(RDJsonField("programCode",svc->programCode(),12,true).toUtf8()); + play_pad_socket->write(QString(" },\r\n").toUtf8()); delete svc; // // Log // - play_pad_socket->write(QString(" \"log\": {\r\n").toUtf8()); - play_pad_socket->write(RDJsonField("name",logName(),8,true).toUtf8()); - play_pad_socket->write(QString(" },\r\n").toUtf8()); + play_pad_socket->write(QString(" \"log\": {\r\n").toUtf8()); + play_pad_socket->write(RDJsonField("name",logName(),12,true).toUtf8()); + play_pad_socket->write(QString(" },\r\n").toUtf8()); // // Now // - play_pad_socket->write(GetPadJson("now",logline[0],4,false).toUtf8()); + play_pad_socket->write(GetPadJson("now",logline[0],8,false).toUtf8()); // // Next // - play_pad_socket->write(GetPadJson("next",logline[1],4,true).toUtf8()); + play_pad_socket->write(GetPadJson("next",logline[1],8,true).toUtf8()); // // Commit the update // - play_pad_socket->write("}\r\n\r\n",5); + play_pad_socket->write(QString(" }\r\n").toUtf8()); + play_pad_socket->write(QString("}\r\n\r\n").toUtf8()); // // Old-style RLM Hosts @@ -3039,7 +3041,7 @@ QString RDLogPlay::GetPadJson(const QString &name,RDLogLine *ll, QString ret; if(ll==NULL) { - ret=RDJsonNullField(name,4,final); + ret=RDJsonNullField(name,padding,final); } else { ret+=RDJsonPadding(padding)+"\""+name+"\": {\r\n";