sdp.h

Go to the documentation of this file.
00001 
00023 #ifndef CONTROLLER_SDP_H
00024 #define CONTROLLER_SDP_H
00025 
00026 #include <serdisplib/serdisp.h>
00027 
00028 #include "module_interface.h"
00029 #include "sdp_config.h"
00030 
00031 class Serdisp : public ControllerInterface
00032 {
00033         Q_OBJECT
00034         Q_PROPERTY(QString port READ port WRITE setPort)
00035         Q_PROPERTY(QString wiring READ wiring WRITE setWiring)
00036         Q_PROPERTY(QString interface READ interface WRITE setInterface)
00037         Q_PROPERTY(bool rotate READ rotate WRITE setRotate)
00038         Q_PROPERTY(bool invert READ invert WRITE setInvert)
00039         Q_PROPERTY(bool backlight READ backlight WRITE setBacklight)
00040         Q_PROPERTY(int delay READ delay WRITE setDelay)
00041         Q_PROPERTY(int contrast READ contrast WRITE setContrast)
00042         Q_PROPERTY(int width READ width WRITE setWidth)
00043         Q_PROPERTY(int height READ height WRITE setHeight)
00044         Q_PROPERTY(int oscillator READ oscillator WRITE setOscillator)
00045         Q_PROPERTY(int check READ check WRITE setCheck)
00046         Q_PROPERTY(int fontwidth READ fontwidth WRITE setFontWidth)
00047 
00048         public:
00049                 Serdisp(const QString&);
00050                 QWidget* configWidget();
00051                 QSize size();
00052                 bool init();
00053                 void exit();
00054                 void setPixel(int, int, bool);
00055                 void update();
00056                 void clear(const QRect& rect=QRect());
00057 
00058         private:
00059                 enum ControllerType { ERICSSONT2X, OPTREX323, LSU7S1011A, NOKIA7110, NEC21A, LPH7508, HP12542R, PCD8544, T6963, SED133X, KS0108, CTINCLUD };
00060                 inline void setPort(const QString& port) 
00061                 {
00062                         int index = m_config->cmbPort.findText(port);
00063                         m_config->cmbPort.setCurrentIndex(index);
00064                 }
00065                 inline void setWiring(const QString& wiring)
00066                 {
00067                         int index = m_config->cmbWiring.findText(wiring);
00068                         m_config->cmbWiring.setCurrentIndex(index);
00069                 }
00070                 inline void setInterface(const QString& interface)
00071                 {
00072                         int index = m_config->cmbInterface.findText(interface);
00073                         m_config->cmbInterface.setCurrentIndex(index);
00074                 }
00075                 inline void setRotate(bool enable) { m_config->checkRotate.setCheckState(boolToQtCheckState(enable)); }
00076                 inline void setInvert(bool enable) { m_config->checkInvert.setCheckState(boolToQtCheckState(enable)); }
00077                 inline void setBacklight(bool enable) { m_config->checkBacklight.setCheckState(boolToQtCheckState(enable)); }
00078                 inline void setDelay(int delay) { m_config->spinDelay.setValue(delay); }
00079                 inline void setContrast(int contrast) { m_config->spinContrast.setValue(contrast); }
00080                 inline void setWidth(int width) { m_config->spinWidth.setValue(width); }
00081                 inline void setHeight(int height) { m_config->spinHeight.setValue(height); }
00082                 inline void setOscillator(int oscillator) { m_config->spinOscillator.setValue(oscillator); }
00083                 inline void setCheck(int check) { m_config->spinCheck.setValue(check); }
00084                 inline void setFontWidth(int fontwidth)
00085                 {
00086                         if (fontwidth == 6)
00087                                 m_config->cmbFontWidth.setCurrentIndex(0);
00088                         else if (fontwidth == 8)
00089                                 m_config->cmbFontWidth.setCurrentIndex(1);
00090                 }
00091 
00092                 inline QString port() const { return m_config->cmbPort.currentText(); }
00093                 inline QString wiring() const { return m_config->cmbWiring.currentText(); }
00094                 inline QString interface() const { return m_config->cmbInterface.currentText(); }
00095                 inline bool rotate() { return m_config->checkRotate.checkState(); }
00096                 inline bool invert() { return m_config->checkInvert.checkState(); }
00097                 inline bool backlight() { return m_config->checkBacklight.checkState(); }
00098                 inline int delay() { return m_config->spinDelay.value(); }
00099                 inline int contrast() { return m_config->spinContrast.value(); }
00100                 inline int width() { return m_config->spinWidth.value(); }
00101                 inline int height() { return m_config->spinHeight.value(); }
00102                 inline int oscillator() { return m_config->spinOscillator.value(); }
00103                 inline int check() { return m_config->spinCheck.value(); }
00104                 inline int fontwidth() const { return m_config->cmbFontWidth.itemData(m_config->cmbFontWidth.currentIndex()).toInt(); }
00105 
00106                 void initConfigWidget();
00107                 const char* getOptions();
00108                 Qt::CheckState boolToQtCheckState(bool);
00109 
00110                 ControllerType m_controllerType;
00111 
00112                 SerdispConfig* m_config;
00113                 QString m_id;
00114                 serdisp_CONN_t* m_sdcd;
00115                 serdisp_t* m_dd;
00116 };
00117 
00118 class SerdispFactory : public ModuleFactory
00119 {
00120         Q_OBJECT
00121         Q_INTERFACES(ModuleFactory)
00122         
00123                 public:
00124                         SerdispFactory() : ModuleFactory("serdisp", "Serdisp Controller") {}
00125                         void init();
00126                         inline ModulType type() { return ModuleFactory::Controller; }
00127                         ModuleInterface* create(const QString&);
00128 };
00129 
00130 #endif

Generated on Thu Apr 5 13:06:31 2007 for LCDBuilder by  doxygen 1.4.7