Remote class implementation
authorTorste Aikio <zokier@zokier.laptop>
Fri, 18 Jun 2010 08:25:47 +0000 (11:25 +0300)
committerTorste Aikio <zokier@zokier.laptop>
Fri, 18 Jun 2010 08:25:47 +0000 (11:25 +0300)
src/remote.cpp
src/remote.h

index 7ebab5a..b6d623b 100644 (file)
-#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 )));
     }
 }
 
-
-
index f6abb44..a104ff1 100644 (file)
@@ -3,6 +3,8 @@
 
 #include <QObject>
 #include <QString>
+#include <QNetworkReply>
+#include <QNetworkAccessManager>
 
 namespace Rating {
     typedef bool Rating;
@@ -15,12 +17,14 @@ class Remote
     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();
@@ -29,6 +33,21 @@ public slots:
 
 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