diff options
Diffstat (limited to 'tdelirc/tdelirc/remoteserver.h')
-rw-r--r-- | tdelirc/tdelirc/remoteserver.h | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/tdelirc/tdelirc/remoteserver.h b/tdelirc/tdelirc/remoteserver.h new file mode 100644 index 0000000..80891ba --- /dev/null +++ b/tdelirc/tdelirc/remoteserver.h @@ -0,0 +1,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 <tqstring.h> +#include <tqxml.h> +#include <tqdict.h> + +/** +@author Gav Wood +*/ + + +class RemoteButton +{ + TQString theName, theId, theClass, theParameter; + + friend class Remote; +public: + void setName(const TQString &a) { theName = a; } + const TQString &name(void) const { return theName; } + void setClass(const TQString &a) { theClass = a; } + const TQString &getClass(void) const { return theClass; } + void setParameter(const TQString &a) { theParameter = a; } + const TQString ¶meter(void) const { return theParameter; } + void setId(const TQString &a) { theId = a; } + const TQString &id(void) const { return theId; } +}; + +class Remote : public TQXmlDefaultHandler +{ + TQString theName, theId, theAuthor; + TQDict<RemoteButton> theButtons; + + TQString charBuffer; + RemoteButton *curRB; + + friend class RemoteServer; +public: + bool characters(const TQString &data); + bool startElement(const TQString &, const TQString &, const TQString &name, const TQXmlAttributes &attributes); + bool endElement(const TQString &, const TQString &, const TQString &name); + + void setName(const TQString &a) { theName = a; } + const TQString &name(void) const { return theName; } + void setId(const TQString &a) { theId = a; } + const TQString &id(void) const { return theId; } + void setAuthor(const TQString &a) { theAuthor = a; } + const TQString &author(void) const { return theAuthor; } + const TQDict<RemoteButton> &buttons() const { return theButtons; } + + void loadFromFile(const TQString &fileName); + + const TQString &getButtonName(const TQString &id) const { if(theButtons[id]) return theButtons[id]->name(); return id; } + + Remote(); + ~Remote(); +}; + +class RemoteServer +{ + static RemoteServer *theInstance; + void loadRemotes(); + TQDict<Remote> theRemotes; + +public: + static RemoteServer *remoteServer() { if(!theInstance) theInstance = new RemoteServer(); return theInstance; } + + const TQDict<Remote> &remotes() const { return theRemotes; } + + const TQString &getRemoteName(const TQString &id) const { if(theRemotes[id]) return theRemotes[id]->name(); return id; } + const TQString &getButtonName(const TQString &remote, const TQString &button) const { if(theRemotes[remote]) return theRemotes[remote]->getButtonName(button); return button; } + + RemoteServer(); + ~RemoteServer(); +}; + +#endif |