Init Tizen 2.2.1
[framework/osp/uix.git] / src / FUixSensor_SensorEventDeliverer.h
1 // 
2 // Open Service Platform
3 // Copyright (c) 2012 Samsung Electronics Co., Ltd.
4 // 
5 // Licensed under the Flora License, Version 1.1 (the License);
6 // you may not use this file except in compliance with the License.
7 // You may obtain a copy of the License at
8 //
9 //     http://floralicense.org/license/
10 //
11 // Unless required by applicable law or agreed to in writing, software
12 // distributed under the License is distributed on an AS IS BASIS,
13 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14 // See the License for the specific language governing permissions and
15 // limitations under the License.
16 //
17
18 /**
19  * @file     FUixSensor_SensorEventDeliverer.h
20  * @brief    This is the header file for the %_SensorEventDeliverer class.
21  *
22  * This header file contains the declarations of the %_SensorEventDeliverer class.
23  */
24
25 #ifndef _FUIX_SENSOR_INTERNAL_SENSOR_EVENT_DELIVERER_H_
26 #define _FUIX_SENSOR_INTERNAL_SENSOR_EVENT_DELIVERER_H_
27
28 #include <FBaseDataType.h>
29 #include <FBaseObject.h>
30 #include <FUixSensorSensorTypes.h>
31 #include "FUixSensor_ISensorCoreEventReceiver.h"
32
33 namespace Tizen { namespace Uix { namespace Sensor
34 {
35 class SensorData;
36 class ISensorEventListener;
37
38 class _SensorEventDeliverer
39         : public Tizen::Base::Object
40         , private Tizen::Uix::Sensor::_ISensorCoreEventReceiver
41 {
42 public:
43         _SensorEventDeliverer(void);
44         virtual ~_SensorEventDeliverer(void);
45
46         void SetDataEventInfo(Tizen::Uix::Sensor::ISensorEventListener& listener, Tizen::Uix::Sensor::SensorType sensorType, long interval, bool dataChanged);
47         void SetWakeupEventInfo(Tizen::Uix::Sensor::ISensorEventListener& listener, Tizen::Uix::Sensor::SensorType sensorType);
48         bool IsListenerEquals(Tizen::Uix::Sensor::ISensorEventListener& listener) const;
49
50         result Start(void);
51         result Stop(void);
52
53         result ResetInterval(long interval);
54
55         virtual Tizen::Uix::Sensor::SensorData& GetSensorDataBuffer(void);
56
57         // _ISensorCoreEventReceiver
58         virtual Tizen::Uix::Sensor::_SensorCoreEvent& GetSensorCoreEventBuffer(void);
59         virtual void OnSensorCoreEventReceived(Tizen::Uix::Sensor::_SensorCoreEvent& event);
60
61 private:
62         // _ISensorCoreEventReceiver
63         virtual Tizen::Uix::Sensor::_SensorCoreEventType GetSensorCoreEventType(void) const;
64         virtual long GetSensorCoreDataEventInterval(void) const;
65         virtual void SetSensorCoreEventHandle(Tizen::Uix::Sensor::_SensorCoreEventHandle sensorCoreEventHandle);
66         virtual Tizen::Uix::Sensor::_SensorCoreEventHandle GetSensorCoreEventHandle(void) const;
67         virtual void SetSensorCoreEventReceiverState(Tizen::Uix::Sensor::_ISensorCoreEventReceiver::SensorCoreEventReceiverState state);
68         virtual Tizen::Uix::Sensor::_ISensorCoreEventReceiver::SensorCoreEventReceiverState GetSensorCoreEventReceiverState(void) const;
69
70 private:
71         enum SensorEventType
72         {
73                 SENSOR_EVENT_TYPE_DATA = 0,
74                 SENSOR_EVENT_TYPE_WAKE_UP,
75                 SENSOR_EVENT_TYPE_NONE = -1
76         };
77
78         SensorEventType __eventType;
79         Tizen::Uix::Sensor::ISensorEventListener* __pListener;
80         Tizen::Uix::Sensor::SensorType __sensorType;
81         long __interval;
82         bool __dataChanged;
83
84         Tizen::Uix::Sensor::_SensorCoreEventHandle __sensorCoreEventHandle;
85         Tizen::Uix::Sensor::_ISensorCoreEventReceiver::SensorCoreEventReceiverState __state;
86         Tizen::Uix::Sensor::_SensorCoreEvent __currentSensorCoreEvent;
87         Tizen::Uix::Sensor::_SensorCoreEvent __beforeSensorCoreEvent;
88
89         friend class _ISensorCore;
90 }; // _SensorEventDeliverer
91 } } }// Tizen::Uix::Sensor
92
93 #endif // _FUIX_SENSOR_INTERNAL_SENSOR_EVENT_DELIVERER_H_