Added touchscreen enabled flag.
[situare] / src / engine / mceprivate.h
1 /*
2    Situare - A location system for Facebook
3    Copyright (C) 2010  Ixonos Plc. Authors:
4
5        Jussi Laitinen - jussi.laitinen@ixonos.com
6
7    Situare is free software; you can redistribute it and/or
8    modify it under the terms of the GNU General Public License
9    version 2 as published by the Free Software Foundation.
10
11    Situare is distributed in the hope that it will be useful,
12    but WITHOUT ANY WARRANTY; without even the implied warranty of
13    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14    GNU General Public License for more details.
15
16    You should have received a copy of the GNU General Public License
17    along with Situare; if not, write to the Free Software
18    Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301,
19    USA.
20 */
21
22 #ifndef MCEPRIVATE_H
23 #define MCEPRIVATE_H
24
25 #include <QtDBus/QDBusInterface>
26 #include <QtDBus/QDBusMessage>
27
28 class MCE;
29
30 /**
31 * @brief MCEPrivate class.
32 *
33 * Mode Control Entity (MCE) controls phone and listens changes in phone state.
34 */
35 class MCEPrivate : public QObject
36 {
37     Q_OBJECT
38
39 public:
40     /**
41     * @brief Constructor.
42     *
43     * @param parent QObject
44     *
45     * Enables vibration mode.
46     */
47     MCEPrivate(QObject *parent);
48
49     /**
50     * @brief Destructor.
51     *
52     * Disables vibration mode.
53     */
54     ~MCEPrivate();
55
56 /*******************************************************************************
57  * MEMBER FUNCTIONS AND SLOTS
58  ******************************************************************************/
59 public:
60     /**
61     * @brief Is the display on.
62     *
63     * @return true if on, false if off.
64     */
65     bool isDisplayOn();
66
67     /**
68     * @brief Vibrates the phone for short time.
69     *
70     * Uses pre-defined vibration pattern.
71     */
72     void vibrationFeedback();
73
74 private:
75     /**
76     * @brief Is the touchscreen vibration enabled.
77     *
78     * Reads settings from file.
79     * @return true if enabled, false otherwise
80     */
81     bool isTouchscreenVibrationEnabled();
82
83 private slots:
84     /**
85     * @brief Slot for display state changed.
86     *
87     * @return message QDBusMessage
88     */
89     void displayStateChanged(const QDBusMessage &message);
90
91     /**
92     * @brief Display state error.
93     *
94     * @param error QDBusError
95     */
96     void displayStateError(const QDBusError &error);
97
98     /**
99     * @brief Sets display state.
100     *
101     * @param state display state
102     */
103     void setDisplayState(const QString &state);
104
105     /**
106     * @brief Stops vibration.
107     */
108     void stopVibration();
109
110 /*******************************************************************************
111  * DATA MEMBERS
112  ******************************************************************************/
113 private:
114     bool m_displayOn;                   ///< Flag for display on/off
115     bool m_touchscreenVibrationEnabled; ///< Flag for toucscreen vibration enabled
116     QDBusInterface *m_dBusInterface;    ///< D-Bus interface
117     MCE *m_parent;                      ///< Parent object
118 };
119
120 #endif // MCEPRIVATE_H