added display count call
[profile/ivi/device-manager-plugin-ivi.git] / device-manager-plugin-ivi.c
1
2 /*
3  * Overview: device mananger(devman) plugin for pinetrail platform
4  *
5  * Copyright (c) 2000 - 2011 Intel Co., Ltd. All rights reserved.
6  *
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  * http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  *
19  */
20
21 #include <devman/devman.h>
22 #include <devman/devman_plugin_intf.h>
23 #include <string.h>
24
25 #include "devlog.h"
26 #include "device_engine.h"
27
28 #include "device-manager-plugin-ivi.h"
29
30 #define BATTERY_PRESENT_PATH            "/sys/class/power_supply/BAT1/present"
31 #define BATTERY_CHARGE_STATUS_PATH  "/sys/class/power_supply/BAT1/status"
32 #define BATTERY_CHARGE_FULL_PATH    "/sys/class/power_supply/BAT1/charge_full"
33 #define BATTERY_CHARGE_NOW_PATH     "/sys/class/power_supply/BAT1/charge_now"
34
35 #define BACKLIGHTNESS_MAX_PATH      "/sys/class/backlight/intel_backlight/max_brightness"
36 #define BACKLIGHTNESS_PATH          "/sys/class/backlight/intel_backlight/brightness"
37
38 #define WAKEUP_COUNT_PATH           "/sys/power/wakeup_count"
39 #define POWER_STATE_PATH            "/sys/power/state"
40
41
42 #define DEVIDE(_x, _y, _z)\
43     if(_y)      \
44 {       \
45     int _tmpy = _y;     \
46     _z = 0;     \
47     while(_x >= _tmpy)  \
48     {                   \
49         ++_z;   \
50         _tmpy += _y;    \
51     }   \
52 }
53
54 int OEM_sys_get_backlight_max_brightness(int index, int *value)
55 {
56     int ret = -1;
57
58 //    ret = sys_get_int(BACKLIGHTNESS_MAX_PATH, value);
59 //    DBG("path[%s]value[%d]", BACKLIGHTNESS_MAX_PATH, *value);
60     return ret;
61 }
62
63 int OEM_sys_get_backlight_brightness(int index, int *value, int power_saving)
64 {
65     int ret = -1;
66
67 //    ret = sys_get_int(BACKLIGHTNESS_PATH, value);
68 //    DBG("path[%s]value[%d]", BACKLIGHTNESS_PATH, *value);
69
70     return ret;
71 }
72
73 int OEM_sys_set_backlight_brightness(int index, int value, int power_saving)
74 {
75     int ret = -1;
76
77 //    ret = sys_set_int(BACKLIGHTNESS_PATH, value);
78 //    DBG("path[%s]value[%d]", BACKLIGHTNESS_PATH, value);
79
80     return ret;
81 }
82
83 int OEM_sys_get_power_wakeup_count(int *value)
84 {
85     int ret = -1;
86
87 //    ret = sys_get_int(WAKEUP_COUNT_PATH, value);
88     /*
89      * Fix me: with the below format output, we always run into
90      * SEGFAULT if *value != 0, it may from overflow/out of binds
91      * type issue.
92      */
93     //DBG("path[%s], value[%d], line[%d]", WAKEUP_COUNT_PATH, *value, __LINE__);
94
95     return ret;
96 }
97
98 int OEM_sys_set_power_wakeup_count(int value)
99 {
100     int ret = -1;
101
102 //    ret = sys_set_int(WAKEUP_COUNT_PATH, value);
103 //    DBG("path[%s]value[%d]", WAKEUP_COUNT_PATH, value);
104
105     return ret;
106 }
107
108 int OEM_sys_set_power_state(int value)
109 {
110     int ret = -1;
111
112  //   if(POWER_STATE_SUSPEND == value)
113 //        ret = sys_set_str(POWER_STATE_PATH, "mem");
114  //   DBG("path[%s], value[%d]", POWER_STATE_PATH, value);
115
116     return ret;
117 }
118
119 int OEM_sys_get_battery_present(int *value)
120 {
121     int ret = -1;
122
123     *value = 1;
124     ret = 0;
125 //    ret = sys_get_int(BATTERY_PRESENT_PATH, value);
126     DBG("path[%s], value[%d]", BATTERY_PRESENT_PATH, *value);
127
128     return ret;
129 }
130
131
132 int OEM_sys_get_battery_capacity(int *value)
133 {
134     int ret = -1;
135     static int charge_full = 0;
136     static int unit = 0;
137     int charge_now;
138     int capacity = 100;
139
140     /*if(charge_full == 0)
141     {
142         ret = sys_get_int(BATTERY_CHARGE_FULL_PATH, &charge_full);
143         if(ret != 0)
144         {
145             ERR("get battery charge full error!");
146             charge_full = 0;
147             return -1;
148         }
149         DEVIDE(charge_full, 100, unit);
150     }
151
152     ret = sys_get_int(BATTERY_CHARGE_NOW_PATH, &charge_now);
153     if(ret != 0)
154     {
155         ERR("get battery charge now error!");
156         return -1;
157     }
158
159     DEVIDE(charge_now, unit, capacity);
160     */
161     *value = capacity;
162     DBG("battery capacity value[%d]", *value);
163
164     return 0;
165 }
166
167
168 int OEM_sys_get_battery_charge_full(int *value)
169 {
170     int capacity = 0;
171
172     if(OEM_sys_get_battery_capacity(&capacity) < 0){
173         DBG("OEM_sys_get_battery_capacity failed");
174         return -1;
175     }else{
176         if(capacity == 100){
177             *value = 1;
178         }else{
179             *value = 0;
180         }
181     }
182
183     DBG("func[%s]value[%d]", __func__, *value);
184
185     return 0;
186 }
187
188 int OEM_sys_get_battery_charge_now(int *value)
189 {
190     char* buf = NULL;
191     int ret = 0;
192     int len = strlen("Charging\n");
193
194 /*    buf = sys_get_str(BATTERY_CHARGE_STATUS_PATH);
195
196     if(buf){
197         if(0 == strncmp(buf, "Charging\n", len )){
198             *value = 1;
199         }else{
200             *value = 0;
201         }
202         DBG("path[%s]value[%d]", BATTERY_CHARGE_STATUS_PATH, *value);
203
204         free(buf);
205         ret = 0;
206     }*/
207
208     *value = 1;
209
210     return ret;
211 }
212
213 int OEM_sys_get_display_count(int *value)
214 {
215     int ret = -1;
216 //    ERR("get diplay count");
217
218     *value = 1;
219
220     return ret;
221 }
222
223 int OEM_sys_get_null_1(int *value)
224 {
225     int ret = -1;
226     ERR("this interface is not implemented");
227
228     return ret;
229 }
230
231 int OEM_sys_set_null_1(int value)
232 {
233     int ret = -1;
234     ERR("this interface is not implemented");
235
236     return ret;
237 }
238
239
240 int OEM_sys_get_null_2(int index, int *value)
241 {
242     int ret = -1;
243     ERR("this interface is not implemented");
244
245     return ret;
246
247 }
248
249 int OEM_sys_get_null_4(int index, int* value, int bar)
250 {
251         ERR("not implemented");
252         return -1;
253 }
254
255 int OEM_sys_set_null_3(int index, int value, int bar)
256 {
257         ERR("not implemented");
258         return -1;
259 }
260
261 int OEM_sys_set_null_2(int index, int value)
262 {
263     int ret = -1;
264     ERR("this interface is not implemented");
265
266     return ret;
267
268 }
269
270
271 int OEM_sys_get_null_3(char *node)
272 {
273     int ret = -1;
274     ERR("this interface is not implemented");
275
276     return ret;
277
278 }
279
280
281 /*  devman_plugin_interface_sampledevice is the structure of the type
282  *  OEM_sys_devman_plugin_interface in which OEM API’s which are implemented are
283  *  defined */
284
285 static const OEM_sys_devman_plugin_interface  devman_plugin_interface_pinetrail = {
286     OEM_sys_get_display_count, //int        (*OEM_sys_get_display_count) (int *value);
287
288     OEM_sys_get_null_2, //int        (*OEM_sys_get_backlight_min_brightness) (int index, int *value);
289         OEM_sys_get_null_2, //int        (*OEM_sys_get_backlight_max_brightness) (int index, int *value);
290         OEM_sys_get_null_4, //int        (*OEM_sys_get_backlight_brightness) (int index, int *value, int power_saving);
291         OEM_sys_set_null_3, //int        (*OEM_sys_set_backlight_brightness) (int index, int value, int power_saving);
292
293     OEM_sys_get_null_2, //int        (*OEM_sys_set_backlight_dimming) (int index, int *value);
294     OEM_sys_get_null_2, //int        (*OEM_sys_get_backlight_acl_control) (int index, int *value);
295     OEM_sys_set_null_2, //int        (*OEM_sys_set_backlight_acl_control) (int index, int value);
296
297     OEM_sys_get_null_2, //int        (*OEM_sys_get_lcd_power) (int index, int *value);
298     OEM_sys_set_null_2, //int        (*OEM_sys_set_lcd_power) (int index, int value);
299
300     OEM_sys_get_null_1, //int        (*OEM_sys_get_image_enhance_mode) (int *value);
301     OEM_sys_set_null_1, //int        (*OEM_sys_set_image_enhance_mode) (int value);
302     OEM_sys_get_null_1, //int        (*OEM_sys_get_image_enhance_scenario) (int *value);
303     OEM_sys_set_null_1, //int        (*OEM_sys_set_image_enhance_scenario) (int value);
304     OEM_sys_get_null_1, //int        (*OEM_sys_get_image_enhance_tone) (int *value);
305     OEM_sys_set_null_1, //int        (*OEM_sys_set_image_enhance_tone) (int value);
306     OEM_sys_get_null_1, //int        (*OEM_sys_get_image_enhance_outdoor) (int *value);
307     OEM_sys_set_null_1, //int        (*OEM_sys_set_image_enhance_outdoor) (int value);
308
309     OEM_sys_get_null_1, //int        (*OEM_sys_get_image_enhance_tune) (int *value);
310     OEM_sys_set_null_1, //int        (*OEM_sys_set_image_enhance_tune) (int value);
311
312     OEM_sys_get_null_1, //int        (*OEM_sys_image_enhance_info) (int *value);
313
314     OEM_sys_set_null_1, //int        (*OEM_sys_set_display_frame_rate) (int value);
315
316     OEM_sys_get_null_1, //int        (*OEM_sys_get_uart_path) (int *value);
317     OEM_sys_set_null_1, //int        (*OEM_sys_set_uart_path) (int value);
318
319     OEM_sys_get_null_1, //int        (*OEM_sys_get_usb_path) (int *value);
320     OEM_sys_set_null_1, //int        (*OEM_sys_set_usb_path) (int value);
321
322     OEM_sys_get_null_1, //int        (*OEM_sys_get_haptic_vibetones_level_max) (int *value);
323     OEM_sys_get_null_1, //int        (*OEM_sys_get_haptic_vibetones_level) (int *value);
324     OEM_sys_set_null_1, //int        (*OEM_sys_set_haptic_vibetones_level) (int value);
325     OEM_sys_set_null_1, //int        (*OEM_sys_set_haptic_vibetones_enable) (int value);
326     OEM_sys_set_null_1, //int        (*OEM_sys_set_haptic_vibetones_oneshot) (int value);
327
328     OEM_sys_get_battery_capacity, //int     (*OEM_sys_get_battery_capacity) (int *value);
329     OEM_sys_get_null_1, //int        (*OEM_sys_get_battery_capacity_raw) (int *value);
330     OEM_sys_get_battery_charge_full, //int        (*OEM_sys_get_battery_charge_full) (int *value);
331     OEM_sys_get_battery_charge_now, //int        (*OEM_sys_get_battery_charge_now) (int *value);
332     OEM_sys_get_battery_present, //int      (*OEM_sys_get_battery_present) (int *value);
333     OEM_sys_get_null_1, //int        (*OEM_sys_get_battery_health) (int *value);
334     OEM_sys_get_null_1, //int        (*OEM_sys_get_battery_polling_required) (int *value);
335
336     OEM_sys_get_null_1, //int        (*OEM_sys_get_jack_charger_online) (int *value);
337     OEM_sys_get_null_1, //int        (*OEM_sys_get_jack_earjack_online) (int *value);
338     OEM_sys_get_null_1, //int        (*OEM_sys_get_jack_earkey_online) (int *value);
339     OEM_sys_get_null_1, //int        (*OEM_sys_get_jack_hdmi_online) (int *value);
340     OEM_sys_get_null_1, //int        (*OEM_sys_get_jack_usb_online) (int *value);
341     OEM_sys_get_null_1, //int        (*OEM_sys_get_jack_cradle_online) (int *value);
342     OEM_sys_get_null_1, //int        (*OEM_sys_get_jack_tvout_online) (int *value);
343     OEM_sys_get_null_1, //int        (*OEM_sys_get_jack_keyboard_online) (int *value);
344
345     OEM_sys_get_null_1, //int        (*OEM_sys_get_leds_torch_max_brightness) (int *value);
346     OEM_sys_get_null_1, //int        (*OEM_sys_get_leds_torch_brightness) (int *value);
347     OEM_sys_set_null_1, //int        (*OEM_sys_set_leds_torch_brightness) (int value);
348
349     OEM_sys_set_power_state, //int        (*OEM_sys_set_power_state) (int value);
350
351     OEM_sys_get_power_wakeup_count, //int        (*OEM_sys_get_power_wakeup_count) (int *value);
352     OEM_sys_set_power_wakeup_count, //int        (*OEM_sys_set_power_wakeup_count) (int value);
353
354     OEM_sys_get_null_3, //int        (*OEM_sys_get_memnotify_node) (char *node);
355     OEM_sys_get_null_1, //int        (*OEM_sys_get_memnotify_victim_task) (int *value);
356     OEM_sys_set_null_1, //int        (*OEM_sys_set_memnotify_threshold_lv1) (int value);
357     OEM_sys_set_null_1, //int        (*OEM_sys_set_memnotify_threshold_lv2) (int value);
358
359     OEM_sys_get_null_3, //int        (*OEM_sys_get_process_monitor_node) (char *node);
360     OEM_sys_set_null_1, //int        (*OEM_sys_set_process_monitor_mp_pnp) (int value);
361     OEM_sys_set_null_1, //int        (*OEM_sys_set_process_monitor_mp_vip) (int value);
362
363     OEM_sys_get_null_1, //int        (*OEM_sys_get_cpufreq_cpuinfo_max_freq) (int *value);
364     OEM_sys_get_null_1, //int        (*OEM_sys_get_cpufreq_cpuinfo_min_freq) (int *value);
365     OEM_sys_get_null_1, //int        (*OEM_sys_get_cpufreq_scaling_max_freq) (int *value);
366     OEM_sys_set_null_1, //int        (*OEM_sys_set_cpufreq_scaling_max_freq) (int value);
367     OEM_sys_get_null_1, //int        (*OEM_sys_get_cpufreq_scaling_min_freq) (int *value);
368     OEM_sys_set_null_1, //int        (*OEM_sys_set_cpufreq_scaling_min_freq) (int value);
369 };
370
371 /*  The following code returns  the address  of the structure
372  *  devman_plugin_interface_sampledevice  as defined above*/
373
374 const OEM_sys_devman_plugin_interface *OEM_sys_get_devman_plugin_interface()
375 {
376
377     return &devman_plugin_interface_pinetrail;
378 }