sensorfw
|
00001 00026 #ifndef PROXIMITY_H 00027 #define PROXIMITY_H 00028 00029 #include <QDBusArgument> 00030 00031 #include <datatypes/unsigned.h> 00032 #include <datatypes/orientationdata.h> 00033 00037 class Proximity : public Unsigned 00038 { 00039 Q_OBJECT 00040 00041 Q_PROPERTY(int reflectance READ reflectance) 00042 Q_PROPERTY(int withinProximity READ withinProximity) 00043 00044 public: 00045 00049 Proximity() {} 00050 00056 Proximity(const ProximityData& data) : 00057 Unsigned(TimedUnsigned(data.timestamp_, data.withinProximity_)), 00058 data_(data.timestamp_, data.value_, data.withinProximity_) 00059 {} 00060 00066 Proximity(const Proximity& data) : 00067 Unsigned(data.UnsignedData()), data_(data.proximityData().timestamp_, data.proximityData().value_, data.proximityData().withinProximity_) 00068 {} 00069 00074 const ProximityData& proximityData() const { return data_; } 00075 00081 bool withinProximity() const { return data_.withinProximity_; } 00082 00088 int reflectance() const { return data_.value_; } 00089 00095 Proximity& operator=(const Proximity& origin) 00096 { 00097 data_ = origin.proximityData(); 00098 return *this; 00099 } 00100 00107 bool operator==(const Proximity& right) const 00108 { 00109 ProximityData rdata = right.proximityData(); 00110 return (data_.value_ == rdata.value_ && 00111 data_.withinProximity_ == rdata.withinProximity_ && 00112 data_.timestamp_ == rdata.timestamp_); 00113 } 00114 00115 private: 00116 ProximityData data_; 00118 friend const QDBusArgument &operator>>(const QDBusArgument &argument, Proximity& data); 00119 }; 00120 00121 Q_DECLARE_METATYPE( Proximity ) 00122 00123 00130 inline QDBusArgument &operator<<(QDBusArgument &argument, const Proximity &data) 00131 { 00132 argument.beginStructure(); 00133 argument << data.proximityData().timestamp_ << data.proximityData().value_ << data.proximityData().withinProximity_; 00134 argument.endStructure(); 00135 return argument; 00136 } 00137 00145 inline const QDBusArgument &operator>>(const QDBusArgument &argument, Proximity &data) 00146 { 00147 argument.beginStructure(); 00148 argument >> data.data_.timestamp_ >> data.data_.value_ >> data.data_.withinProximity_; 00149 argument.endStructure(); 00150 return argument; 00151 } 00152 00153 #endif // PROXIMITY_H