Not tested and incomplete.
settings->setValue("lircPort", 8765);
settings->setValue("remoteName", "No remote selected");
settings->setValue("lircConf", "/etc/lircd.conf");
- settings->setValue("cmd0", "VOL+");
- settings->setValue("cmd1", "VOL-");
- settings->setValue("cmd2", "P+");
- settings->setValue("cmd3", "P-");
+ settings->setValue("cmd0", "VOLUP");
+ settings->setValue("cmd1", "VOLDOWN");
+ settings->setValue("cmd2", "CHUP");
+ settings->setValue("cmd3", "CHDOWN");
settings->setValue("cmd4", "POWER");
settings->setValue("cmd5", "MUTE");
settings->setValue("remoteUrl",
void IrCtrl::sendCmd0()
{
Q_D(IrCtrl);
- d->genericSendCmd(d->settings->value("cmd0", "VOL+").toString());
+ d->genericSendCmd(d->settings->value("cmd0", "VOLUP").toString());
}
void IrCtrl::sendCmd1()
{
Q_D(IrCtrl);
- d->genericSendCmd(d->settings->value("cmd1", "VOL-").toString());
+ d->genericSendCmd(d->settings->value("cmd1", "VOLDOWN-").toString());
}
void IrCtrl::sendCmd2()
{
Q_D(IrCtrl);
- d->genericSendCmd(d->settings->value("cmd2", "P+").toString());
+ d->genericSendCmd(d->settings->value("cmd2", "CHUP").toString());
}
void IrCtrl::sendCmd3()
{
Q_D(IrCtrl);
- d->genericSendCmd(d->settings->value("cmd3", "P-").toString());
+ d->genericSendCmd(d->settings->value("cmd3", "CHDOWN").toString());
}
void IrCtrl::sendCmd4()
--- /dev/null
+#include "remotelist.h"
+#include <QFile>
+#include <QDomElement>
+#include <QDomNodeList>
+#include <QDebug>
+
+RemoteList::RemoteList()
+ : valid(false)
+{
+}
+
+RemoteList::RemoteList(const RemoteList &r)
+ : valid(r.valid)
+ , mfgMap(r.mfgMap)
+ , modelMap(r.modelMap)
+{
+}
+
+RemoteList::RemoteList(QDomDocument &doc)
+{
+ parse(doc);
+}
+
+RemoteList::RemoteList(const QString &xmlFile)
+{
+ parse(xmlFile);
+}
+
+RemoteList::~RemoteList()
+{
+}
+
+void RemoteList::setContent(QDomDocument &doc)
+{
+ mfgMap.clear();
+ modelMap.clear();
+ parse(doc);
+}
+
+void RemoteList::setContent(const QString &xmlFile)
+{
+ mfgMap.clear();
+ modelMap.clear();
+ parse(xmlFile);
+}
+
+bool RemoteList::isValid()
+{
+ return valid;
+}
+
+QList<QChar> RemoteList::letters()
+{
+ return mfgMap.keys();
+}
+
+QStringList RemoteList::manufacturers(const QChar &letter)
+{
+ return mfgMap.value(letter);
+}
+
+QList<Model> RemoteList::models(const QString &manufacturer)
+{
+ return modelMap.value(manufacturer);
+}
+
+void RemoteList::parse(const QString &xmlFile)
+{
+ QFile file(xmlFile);
+ QDomDocument doc;
+
+ if (!file.open(QIODevice::ReadOnly))
+ {
+ valid = false;
+ return;
+ }
+
+ if (!doc.setContent(&file))
+ {
+ file.close();
+ valid = false;
+ return;
+ }
+ file.close();
+
+ parse(doc);
+}
+
+void RemoteList::parse(QDomDocument &doc)
+{
+ QDomNodeList chars = doc.elementsByTagName("char");
+
+ for (int i = 0; i < chars.size(); ++i)
+ {
+ QDomElement charEl = chars.at(i).toElement();
+ if (!charEl.isNull())
+ {
+ if (charEl.hasAttribute("id"))
+ mfgMap.insert(charEl.attribute("id").at(0), parseMfgs(charEl));
+ }
+ }
+
+ valid = (mfgMap.size() > 0 &&
+ modelMap.size() > 0 &&
+ mfgMap.values().size() == modelMap.keys().size());
+}
+
+QStringList RemoteList::parseMfgs(QDomElement &charEl)
+{
+ QStringList mfgStrings;
+ QDomNodeList mfgs = charEl.elementsByTagName("mfg");
+
+ for (int i = 0; i < mfgs.size(); ++i)
+ {
+ QDomElement mfgEl = mfgs.at(i).toElement();
+ if (!mfgEl.isNull())
+ {
+ if (mfgEl.hasAttribute("id"))
+ {
+ mfgStrings.append(mfgEl.attribute("id"));
+ modelMap.insert(mfgStrings.last(), parseModels(mfgEl));
+ }
+ }
+ }
+ return mfgStrings;
+}
+
+QList<Model> RemoteList::parseModels(QDomElement &mfgEl)
+{
+ QList<Model> modelList;
+ QDomNodeList models = mfgEl.elementsByTagName("model");
+
+ for (int i = 0; i < models.size(); ++i)
+ {
+ QDomElement modelEl = models.at(i).toElement();
+ if (!modelEl.isNull())
+ {
+ if (modelEl.hasAttribute("name") && modelEl.hasAttribute("file"))
+ {
+ modelList.append(Model(modelEl.attribute("name"),
+ modelEl.attribute("file")));
+ }
+ }
+ }
+ return modelList;
+}
+
--- /dev/null
+#ifndef _REMOTELIST_H_
+#define _REMOTELIST_H_
+
+#include <QDomDocument>
+#include <QStringList>
+#include <QMap>
+#include <QList>
+#include "model.h"
+
+class RemoteList
+{
+public:
+ RemoteList();
+ RemoteList(const RemoteList &);
+ RemoteList(QDomDocument &);
+ RemoteList(const QString &xmlFile);
+ ~RemoteList();
+
+ void setContent(QDomDocument &);
+ void setContent(const QString &xmlFile);
+
+ // Returns false if document is not set or it's invalid
+ bool isValid();
+
+ QList<QChar> letters();
+ QStringList manufacturers(const QChar &letter);
+ QList<Model> models(const QString &manufacturer);
+
+private:
+ void parse(const QString &xmlFile);
+ void parse(QDomDocument &doc);
+ QStringList parseMfgs(QDomElement &charEl);
+ QList<Model> parseModels(QDomElement &mfgEl);
+ void printMaps();
+
+private:
+ bool valid;
+ QMap<QChar, QStringList> mfgMap;
+ QMap<QString, QList<Model> > modelMap;
+};
+
+#endif // _REMOTELIST_H_
+
+
+
SOURCES += advsettingsdlg.cpp
SOURCES += settingstable.cpp
SOURCES += aboutdlg.cpp
+SOURCES += remotelist.cpp
HEADERS += mainwidget.h
HEADERS += irctrl.h
HEADERS += advsettingsdlg.h
HEADERS += settingstable.h
HEADERS += aboutdlg.h
+HEADERS += remotelist.h
include(qmaemo5homescreenadaptor/qmaemo5homescreenadaptor.pri)
QCOMPARE(socketOut.size(), 0);
subject.sendCmd0();
QCOMPARE(socketOut.size(), 1);
- QCOMPARE(socketOut.at(0), QString("SEND_ONCE REMOTE_NAME_MISSING VOL+\n"));
+ QCOMPARE(socketOut.at(0),
+ QString("SEND_ONCE REMOTE_NAME_MISSING VOLUP\n"));
}
void Ut_IrCtrl::testSendCmd1()
QCOMPARE(socketOut.size(), 0);
subject.sendCmd1();
QCOMPARE(socketOut.size(), 1);
- QCOMPARE(socketOut.at(0), QString("SEND_ONCE REMOTE_NAME_MISSING VOL-\n"));
+ QCOMPARE(socketOut.at(0),
+ QString("SEND_ONCE REMOTE_NAME_MISSING VOLDOWN\n"));
}
void Ut_IrCtrl::testSendCmd2()
QCOMPARE(socketOut.size(), 0);
subject.sendCmd2();
QCOMPARE(socketOut.size(), 1);
- QCOMPARE(socketOut.at(0), QString("SEND_ONCE REMOTE_NAME_MISSING P+\n"));
+ QCOMPARE(socketOut.at(0),
+ QString("SEND_ONCE REMOTE_NAME_MISSING CHUP\n"));
}
void Ut_IrCtrl::testSendCmd3()
QCOMPARE(socketOut.size(), 0);
subject.sendCmd3();
QCOMPARE(socketOut.size(), 1);
- QCOMPARE(socketOut.at(0), QString("SEND_ONCE REMOTE_NAME_MISSING P-\n"));
+ QCOMPARE(socketOut.at(0),
+ QString("SEND_ONCE REMOTE_NAME_MISSING CHDOWN\n"));
}
void Ut_IrCtrl::testSendCmd4()
QCOMPARE(socketOut.size(), 0);
subject.sendCmd4();
QCOMPARE(socketOut.size(), 1);
- QCOMPARE(socketOut.at(0), QString("SEND_ONCE REMOTE_NAME_MISSING POWER\n"));
+ QCOMPARE(socketOut.at(0),
+ QString("SEND_ONCE REMOTE_NAME_MISSING POWER\n"));
}
void Ut_IrCtrl::testSendCmd5()
QCOMPARE(socketOut.size(), 0);
subject.sendCmd5();
QCOMPARE(socketOut.size(), 1);
- QCOMPARE(socketOut.at(0), QString("SEND_ONCE REMOTE_NAME_MISSING MUTE\n"));
+ QCOMPARE(socketOut.at(0),
+ QString("SEND_ONCE REMOTE_NAME_MISSING MUTE\n"));
}
QTEST_MAIN(Ut_IrCtrl)
+
--- /dev/null
+#include "ut_remotelist.h"
+#include "remotelist.h"
+#include <QtTest>
+#include <QStringList>
+
+void Ut_RemoteList::initTestCase()
+{
+}
+
+void Ut_RemoteList::cleanupTestCase()
+{
+}
+
+void Ut_RemoteList::init()
+{
+}
+
+void Ut_RemoteList::testSetContent()
+{
+}
+
+void Ut_RemoteList::testIsValid()
+{
+ RemoteList subject("remotes.xml");
+ QCOMPARE(subject.isValid(), true);
+}
+
+void Ut_RemoteList::testIsValid_InvalidFile()
+{
+// RemoteList subject("notxmlfile");
+// QCOMPARE(subject.isValid(), false);
+}
+
+void Ut_RemoteList::testIsValid_FileNotFound()
+{
+// RemoteList subject("thisdoesnotexist");
+// QCOMPARE(subject.isValid(), false);
+}
+
+void Ut_RemoteList::testLetters()
+{
+
+}
+
+void Ut_RemoteList::testManufacturers()
+{
+
+}
+
+void Ut_RemoteList::testModels()
+{
+
+}
+
+
+
+
+QTEST_MAIN(Ut_RemoteList)
+
+
--- /dev/null
+#ifndef _UT_REMOTELIST_H_
+#define _UT_REMOTELIST_H_
+
+#include <QObject>
+
+class Ut_RemoteList: public QObject
+{
+ Q_OBJECT
+
+private slots:
+ void initTestCase();
+ void cleanupTestCase();
+ void init(); // Before each test case
+
+ void testSetContent();
+ void testIsValid();
+ void testIsValid_InvalidFile();
+ void testIsValid_FileNotFound();
+ void testLetters();
+ void testManufacturers();
+ void testModels();
+};
+
+#endif // UT_REMOTELIST_H
+
--- /dev/null
+!include( ../ut.pri ) {
+ error( Could not find the ut.pri file )
+}
+
+QT += xml
+QT += testlib
+
+HEADERS += model.h
+HEADERS += ut_remotelist.h
+HEADERS += remotelist.h
+
+SOURCES += ut_remotelist.cpp
+SOURCES += remotelist.cpp
+