static int SendMessage(const MythUtilCommandLineParser &cmdline) { QHostAddress address = QHostAddress::Broadcast; unsigned short port = 6948; QString message = kMessage; if (cmdline.toBool("udpport")) port = (unsigned short)cmdline.toUInt("udpport"); if (cmdline.toBool("bcastaddr")) address.setAddress(cmdline.toString("bcastaddr")); QMap<QString,QString>::const_iterator i; QMap<QString,QString> extras = cmdline.GetExtra(); for (i = extras.begin(); i != extras.end(); ++i) { QString name = i.key(); QString value = i.value(); name.replace("--", ""); cerr << "name: " << name.toLocal8Bit().constData() << " -- value: " << value.toLocal8Bit().constData() << endl; name.append("%"); name.prepend("%"); message.replace(name, value); } cout << "output:\n" << message.toLocal8Bit().constData() << endl; QUdpSocket *sock = new QUdpSocket(); QByteArray utf8 = message.toUtf8(); int result = GENERIC_EXIT_OK; if (sock->writeDatagram(utf8, address, port) < 0) { cout << "Failed to send UDP/XML packet" << endl; result = GENERIC_EXIT_NOT_OK; } else { cout << "Sent UDP/XML packet to IP " << address.toString().toLocal8Bit().constData() << " and port: " << port << endl; } sock->deleteLater(); return result; }
bool GetProgramInfo(const MythUtilCommandLineParser &cmdline, ProgramInfo &pginfo) { if (cmdline.toBool("video")) { QString video = cmdline.toString("video"); pginfo = ProgramInfo(video); return true; } if (!cmdline.toBool("chanid")) { LOG(VB_GENERAL, LOG_ERR, "No chanid specified"); return false; } if (!cmdline.toBool("starttime")) { LOG(VB_GENERAL, LOG_ERR, "No start time specified"); return false; } uint chanid = cmdline.toUInt("chanid"); QDateTime starttime = cmdline.toDateTime("starttime"); QString startstring = starttime.toString("yyyyMMddhhmmss"); const ProgramInfo tmpInfo(chanid, starttime); if (!tmpInfo.GetChanID()) { LOG(VB_GENERAL, LOG_ERR, QString("No program data exists for channel %1 at %2") .arg(chanid).arg(startstring)); return false; } pginfo = tmpInfo; return true; }