blob: 3700acd356909f78fa0a55c2f00c9f3857d41b03 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
|
//
//
// C++ Interface: $MODULE$
//
// Description:
//
//
// Author: Gav Wood <gav@kde.org>, (C) 2003
//
// Copyright: See COPYING file that comes with this distribution
//
//
#ifndef REMOTESERVER_H
#define REMOTESERVER_H
#include <qstring.h>
#include <qxml.h>
#include <qdict.h>
/**
@author Gav Wood
*/
class RemoteButton
{
QString theName, theId, theClass, theParameter;
friend class Remote;
public:
void setName(const QString &a) { theName = a; }
const QString &name(void) const { return theName; }
void setClass(const QString &a) { theClass = a; }
const QString &getClass(void) const { return theClass; }
void setParameter(const QString &a) { theParameter = a; }
const QString ¶meter(void) const { return theParameter; }
void setId(const QString &a) { theId = a; }
const QString &id(void) const { return theId; }
};
class Remote : public QXmlDefaultHandler
{
QString theName, theId, theAuthor;
QDict<RemoteButton> theButtons;
QString charBuffer;
RemoteButton *curRB;
friend class RemoteServer;
public:
bool characters(const QString &data);
bool startElement(const QString &, const QString &, const QString &name, const QXmlAttributes &attributes);
bool endElement(const QString &, const QString &, const QString &name);
void setName(const QString &a) { theName = a; }
const QString &name(void) const { return theName; }
void setId(const QString &a) { theId = a; }
const QString &id(void) const { return theId; }
void setAuthor(const QString &a) { theAuthor = a; }
const QString &author(void) const { return theAuthor; }
const QDict<RemoteButton> &buttons() const { return theButtons; }
void loadFromFile(const QString &fileName);
const QString &getButtonName(const QString &id) const { if(theButtons[id]) return theButtons[id]->name(); return id; }
Remote();
~Remote();
};
class RemoteServer
{
static RemoteServer *theInstance;
void loadRemotes();
QDict<Remote> theRemotes;
public:
static RemoteServer *remoteServer() { if(!theInstance) theInstance = new RemoteServer(); return theInstance; }
const QDict<Remote> &remotes() const { return theRemotes; }
const QString &getRemoteName(const QString &id) const { if(theRemotes[id]) return theRemotes[id]->name(); return id; }
const QString &getButtonName(const QString &remote, const QString &button) const { if(theRemotes[remote]) return theRemotes[remote]->getButtonName(button); return button; }
RemoteServer();
~RemoteServer();
};
#endif
|