return UNKNOWN_STR;
}
-static unsigned long get_lcd_on_flags(void)
-{
- unsigned long flags = NORMAL_MODE;
- bool lcd_paneloff_mode = false;
-
- display_panel_get_lcd_paneloff_mode(&lcd_paneloff_mode);
- if (lcd_paneloff_mode)
- flags |= LCD_PANEL_OFF_MODE;
-
- return flags;
-}
-
bool touch_event_blocked(void)
{
return touch_blocked;
void lcd_on_procedure(int state, enum device_flags flag)
{
- unsigned long flags = get_lcd_on_flags();
+ unsigned long flags = NORMAL_MODE;
+ display_plugin_get_device_flags(&flags);
flags |= flag;
/*
touch_blocked = false;
}
-static unsigned long get_lcd_off_flags(void)
-{
- unsigned long flags = NORMAL_MODE;
- bool stay_touchscreen_off = false;
-
- display_misc_get_stay_touchscreen_off(&stay_touchscreen_off);
- if (stay_touchscreen_off)
- flags |= TOUCH_SCREEN_OFF_MODE;
-
- return flags;
-}
-
inline void lcd_off_procedure(enum device_flags flag)
{
- unsigned long flags = get_lcd_off_flags();
+ unsigned long flags = NORMAL_MODE;
+ display_plugin_get_device_flags(&flags);
flags |= flag;
/*
setup_display_plugin_backlight_ops(dp);
dp->delete_state_cond = del_state_cond;
dp->set_dim_state = set_dim_state;
+ dp->get_device_flags = NULL;
setup_display_plugin_backlight_ops(dp);
/* check display feature */
return UNKNOWN_STR;
}
-static unsigned long get_lcd_on_flags(void)
-{
- unsigned long flags = NORMAL_MODE;
- bool lcd_paneloff_mode = false;
-
- display_panel_get_lcd_paneloff_mode(&lcd_paneloff_mode);
- if (lcd_paneloff_mode)
- flags |= LCD_PANEL_OFF_MODE;
-
- return flags;
-}
-
bool touch_event_blocked(void)
{
return touch_blocked;
void lcd_on_procedure(int state, enum device_flags flag)
{
- unsigned long flags = get_lcd_on_flags();
+ unsigned long flags = NORMAL_MODE;
+ display_plugin_get_device_flags(&flags);
flags |= flag;
/*
touch_blocked = false;
}
-static unsigned long get_lcd_off_flags(void)
-{
- unsigned long flags = NORMAL_MODE;
- bool stay_touchscreen_off = false;
-
- display_misc_get_stay_touchscreen_off(&stay_touchscreen_off);
- if (stay_touchscreen_off)
- flags |= TOUCH_SCREEN_OFF_MODE;
-
- return flags;
-}
-
inline void lcd_off_procedure(enum device_flags flag)
{
- unsigned long flags = get_lcd_off_flags();
+ unsigned long flags = NORMAL_MODE;
+ display_plugin_get_device_flags(&flags);
flags |= flag;
/*
setup_display_plugin_backlight_ops(dp);
dp->delete_state_cond = del_state_cond;
dp->set_dim_state = set_dim_state;
+ dp->get_device_flags = NULL;
setup_display_plugin_backlight_ops(dp);
/**
return UNKNOWN_STR;
}
-static unsigned long get_lcd_on_flags(void)
-{
- unsigned long flags = NORMAL_MODE;
- bool lcd_paneloff_mode = false;
-
- display_panel_get_lcd_paneloff_mode(&lcd_paneloff_mode);
- if (lcd_paneloff_mode)
- flags |= LCD_PANEL_OFF_MODE;
-
- return flags;
-}
-
bool touch_event_blocked(void)
{
return touch_blocked;
void lcd_on_procedure(int state, enum device_flags flag)
{
- unsigned long flags = get_lcd_on_flags();
+ unsigned long flags = NORMAL_MODE;
+ display_plugin_get_device_flags(&flags);
flags |= flag;
/*
touch_blocked = false;
}
-static unsigned long get_lcd_off_flags(void)
-{
- unsigned long flags = NORMAL_MODE;
- bool stay_touchscreen_off = false;
-
- display_misc_get_stay_touchscreen_off(&stay_touchscreen_off);
- if (stay_touchscreen_off)
- flags |= TOUCH_SCREEN_OFF_MODE;
-
- return flags;
-}
-
inline void lcd_off_procedure(enum device_flags flag)
{
- unsigned long flags = get_lcd_off_flags();
+ unsigned long flags = NORMAL_MODE;
+ display_plugin_get_device_flags(&flags);
flags |= flag;
/*
setup_display_plugin_backlight_ops(dp);
dp->delete_state_cond = del_state_cond;
dp->set_dim_state = set_dim_state;
+ dp->get_device_flags = NULL;
setup_display_plugin_backlight_ops(dp);
/**
initialized_killable_daemon_list = false;
}
-static unsigned long get_lcd_on_flags(void)
+static int get_device_flags(unsigned long *device_flags)
{
- unsigned long flags = NORMAL_MODE;
- bool lcd_paneloff_mode = false;
+ if (!device_flags)
+ return -EINVAL;
+ *device_flags = NORMAL_MODE;
+ bool lcd_paneloff_mode = false;
+ bool stay_touchscreen_off = false;
display_panel_get_lcd_paneloff_mode(&lcd_paneloff_mode);
- if (lcd_paneloff_mode)
- flags |= LCD_PANEL_OFF_MODE;
+ display_misc_get_stay_touchscreen_off(&stay_touchscreen_off);
+
+ if (lcd_paneloff_mode) {
+ *device_flags |= LCD_PANEL_OFF_MODE;
+ }
+
+ if (stay_touchscreen_off) {
+ *device_flags |= TOUCH_SCREEN_OFF_MODE;
+ }
if (ambient_get_state()) {
- flags |= AMBIENT_MODE;
- flags |= LCD_PHASED_TRANSIT_MODE;
+ *device_flags |= AMBIENT_MODE;
+ *device_flags |= LCD_PHASED_TRANSIT_MODE;
}
- return flags;
+ return 0;
}
bool touch_event_blocked(void)
void lcd_on_procedure(int state, enum device_flags flag)
{
- unsigned long flags = get_lcd_on_flags();
+ unsigned long flags = NORMAL_MODE;
+ display_plugin_get_device_flags(&flags);
flags |= flag;
int ret;
touch_blocked = false;
}
-static unsigned long get_lcd_off_flags(void)
-{
- unsigned long flags = NORMAL_MODE;
- bool stay_touchscreen_off = false;
-
- if (ambient_get_condition() == true) {
- flags |= AMBIENT_MODE;
- flags |= LCD_PHASED_TRANSIT_MODE;
- }
-
- display_misc_get_stay_touchscreen_off(&stay_touchscreen_off);
- if (stay_touchscreen_off)
- flags |= TOUCH_SCREEN_OFF_MODE;
-
- return flags;
-}
-
inline void lcd_off_procedure(enum device_flags flag)
{
- unsigned long flags = get_lcd_off_flags();
+ unsigned long flags = NORMAL_MODE;
+ display_plugin_get_device_flags(&flags);
flags |= flag;
/*
setup_display_plugin_backlight_ops(dp);
dp->delete_state_cond = del_state_cond;
dp->set_dim_state = set_dim_state;
+ dp->get_device_flags = get_device_flags;
setup_display_plugin_backlight_ops(dp);
/**
*/
#include <errno.h>
+#include "display-misc.h"
#include "display-plugin.h"
#include "shared/log-macro.h"
}
return -EOPNOTSUPP;
+}
+
+int display_plugin_get_device_flags(unsigned long *device_flags)
+{
+ if (!device_flags)
+ return -EINVAL;
+
+ if (g_display_plugin.get_device_flags)
+ return g_display_plugin.get_device_flags(device_flags);
+
+ *device_flags = NORMAL_MODE;
+ bool lcd_paneloff_mode = false;
+ bool stay_touchscreen_off = false;
+ display_panel_get_lcd_paneloff_mode(&lcd_paneloff_mode);
+ display_misc_get_stay_touchscreen_off(&stay_touchscreen_off);
+
+ if (lcd_paneloff_mode)
+ *device_flags |= LCD_PANEL_OFF_MODE;
+
+ if (stay_touchscreen_off)
+ *device_flags |= TOUCH_SCREEN_OFF_MODE;
+
+ return 0;
}
\ No newline at end of file
/* FIXME: function names will be redefined */
void (*delete_state_cond) (void *data, enum state_t s_state);
void (*set_dim_state) (bool on);
+ int (*get_device_flags) (unsigned long *device_flags);
struct display_config *config;
struct display_backlight_ops *backlight;
const char* display_plugin_device_flags_to_string(enum device_flags flags);
int display_plugin_auto_brightness_control(enum brightness_request_e request, int set_brightness);
int display_plugin_set_dim_state(bool on);
+int display_plugin_get_device_flags(unsigned long *device_flags);
int display_plugin_backlight_get_lcd_power(void);
int display_plugin_backlight_set_brightness(int brightness);