-#include "irctrl.h"
#include "remote.h"
-#include "netio.h"
+#include <QString>
#include <QSettings>
+#include <QNetworkAccessManager>
+#include <QNetworkRequest>
+#include <QUrl>
-Remote::Remote()
- : rated(false)
- , model("", "")
- , settings(new QSettings())
- , irCtrl(new IrCtrl())
- , netIO(NULL)
+Remote::Remote(const Remote::QString &name)
+ : m_name(name)
{
}
-Remote::Remote(const QString &id, NetIO *netIO)
- : rated(false)
- , settings(new QSettings())
- , irCtrl(new IrCtrl())
- , netIO(netIO)
+Remote::Remote(const QString &name, const QString &mfg,
+ int rating, int voteCount)
+ : m_name(name), m_mfg(mfg),
+ m_rating(rating), m_voteCount(voteCount)
{
- setId(id);
}
-Remote::~Remote()
+void Remote::saveToFile()
{
- delete settings;
- delete irCtrl;
}
-const QString &Remote::id() const
-{
- return model.id;
-}
-
-void Remote::setId(const QString &id)
-{
- model.id = id;
-}
-
-void Remote::setNetIO(NetIO *netIO)
-{
- this->netIO = netIO;
-}
-
-void Remote::updateRating()
-{
- connect(netIO, SIGNAL(ratingDownloaded(int)),
- this, SIGNAL(ratingChanged(int)));
- netIO->ratingById(model.id);
-}
-
-void Remote::sendRating(bool)
+void Remote::updateInfo()
{
+ QSettings settings;
+ if (m_name != "") {
+ m_infoNAM->get(QNetworkRequest(QUrl(
+ settings.value("baseUrl").toString()
+ + "vote/get?name="
+ + m_name )));
+ }
}
-void Remote::sendCmd(RemoteCmd cmd)
+void Remote::sendRating(Rating::Rating r)
{
- switch (cmd)
- {
- case VOLUMEUP:
- irCtrl->sendCmd(
- model.name,
- settings->value("cmdVolumeUp", "VOLUP").toString());
- break;
-
- case VOLUMEDOWN:
- irCtrl->sendCmd(
- model.name,
- settings->value("cmdVolumeDown", "VOLUP").toString());
- break;
-
- case CHANNELUP:
- irCtrl->sendCmd(
- model.name,
- settings->value("cmdChannelUp", "CHUP").toString());
- break;
-
- case CHANNELDOWN:
- irCtrl->sendCmd(
- model.name,
- settings->value("cmdChannelDown", "CHDOWN").toString());
- break;
-
- case POWER:
- irCtrl->sendCmd(
- model.name,
- settings->value("cmdPower", "POWER").toString());
- break;
-
- case MUTE:
- irCtrl->sendCmd(
- model.name,
- settings->value("cmdMute", "MUTE").toString());
- break;
-
- default:
- break;
+ QSettings settings;
+ if (m_name != "") {
+ m_ratingNAM->get(QNetworkRequest(QUrl(
+ settings.value("baseUrl").toString()
+ + "vote/"
+ + r == Rating::Up ? "up" : "down"
+ + "?name="
+ + m_name )));
}
}
-
-
#include <QObject>
#include <QString>
+#include <QNetworkReply>
+#include <QNetworkAccessManager>
namespace Rating {
typedef bool Rating;
Q_OBJECT
public:
Remote(const QString &name);
+ Remote(const QString &name, const QString &mfg,
+ int rating, int voteCount);
//getters
- QString name() const;
- QString mfg() const;
- int rating() const;
- int voteCount() const;
+ QString name() const { return m_name; }
+ QString mfg() const { return m_mfg; }
+ int rating() const { return m_rating; }
+ int voteCount() const { return m_voteCount; }
public slots:
void saveToFile();
signals:
void infoUpdated();
+
+private:
+ QString m_name;
+ QString m_mfg;
+ int m_rating;
+ int m_voteCount;
+
+ QNetworkAccessManager m_infoNAM;
+ QNetworkAccessManager m_remoteNAM;
+ QNetworkAccessManager m_ratingNAM;
+
+ void init();
+
+ void Remote::remoteDownloadFinished(QNetworkReply *reply);
+ void Remote::infoRequestFinished(QNetworkReply *reply);
};
#endif