void Xbmc::do_command1(const QString &command, int id)
{
QSettings settings;
- QString server = settings.value(SETUP_XBMC_SERVER, SETUP_XBMC_SERVER_DEFAULT).toString();
- QString port = settings.value(SETUP_XBMC_PORT, SETUP_XBMC_PORT_DEFAULT).toString();
+ QString host = settings.value(SETUP_XBMC_SERVER, SETUP_XBMC_SERVER_DEFAULT).toString();
+ int port = settings.value(SETUP_XBMC_PORT, SETUP_XBMC_PORT_DEFAULT).toInt();
+ bool requires_authentication = settings.value(SETUP_XBMC_REQUIRES_AUTHENTICATION, SETUP_XBMC_REQUIRES_AUTHENTICATION_DEFAULT).toBool();
+
+ QUrl url;
+ url.setScheme("http");
+ url.setHost(host);
+ url.setPort(port);
+ url.setPath("/xbmcCmds/xbmcHttp");
+
+ if (requires_authentication) {
+ QString username = settings.value(SETUP_XBMC_USERNAME, SETUP_XBMC_USERNAME_DEFAULT).toString();
+ QString password = settings.value(SETUP_XBMC_PASSWORD, SETUP_XBMC_PASSWORD_DEFAULT).toString();
+ qDebug("authentication required: %s : %s", qPrintable(username), qPrintable(password));
+ url.setUserName(username);
+ url.setPassword(password);
+ }
- QUrl url = QUrl(QString("http://%1:%2/xbmcCmds/xbmcHttp?command=%3(%4)").arg(server).arg(port).arg(command).arg(id));
+ QList<QPair<QString, QString> > querry;
+ querry.append(QPair<QString, QString>(QString("command"), QString("%1(%2)").arg(command).arg(id)));
+ url.setQueryItems(querry);
- qDebug("executing command: %s", qPrintable(url.toString()));
+// qDebug("executing command: %s", qPrintable(url.toString()));
QNetworkRequest request;
request.setUrl(url);