typedef struct _syscommon_plugin_backend_deviced_display_funcs {
int (*load_display_config) (struct syscommon_deviced_display_config **);
int (*on_changed_setting_value) (int, int);
+ int (*lcd_on_procedure) (enum syscommon_deviced_display_state, enum deviced_event);
+ int (*lcd_off_procedure) (enum deviced_event);
+ int (*custom_lcd_on) (int timeout);
+ int (*custom_lcd_off) (enum deviced_event reason);
+ int (*on_by_reason) (const char *reason, int timeout);
+ int (*off_by_reason) (const char *reason);
} syscommon_plugin_backend_deviced_display_funcs;
#ifdef __cplusplus
* @param[in] value Value that a key has changed to
* @return @c 0 on success, otherwise a negative error value
*/
-
int syscommon_plugin_deviced_display_notify_setting_value_changed(int key, int value);
+/**
+ * @breif Plugin implementation for turning on display
+ * @param[in] state Which state to be changed on turning on display, ON or DIM are possible
+ * @param[in] reason Which event has triggered display on
+ * @return @c 0 on success, otherwise a negative error value
+ */
+int syscommon_plugin_deviced_display_lcd_on_procedure(enum syscommon_deviced_display_state state, enum deviced_event reason);
+
+/**
+ * @breif Plugin implementation for turning off display
+ * @param[in] reason Which event has triggered display off
+ * @return @c 0 on success, otherwise a negative error value
+ */
+int syscommon_plugin_deviced_display_lcd_off_procedure(enum deviced_event reason);
+
+/**
+ * @breif Plugin implementation for turning on display
+ * @param[in] timeout Screen timeout that has been requested for the display on state
+ * @return @c 0 on success, otherwise a negative error value
+ */
+int syscommon_plugin_deviced_display_custom_lcd_on(int timeout);
+
+/**
+ * @breif Plugin implementation for turning off display
+ * @param[in] reason Which event has triggered display off
+ * @return @c 0 on success, otherwise a negative error value
+ */
+int syscommon_plugin_deviced_display_custom_lcd_off(enum deviced_event reason);
+
+/**
+ * @breif Plugin implementation for turning on display
+ * @param[in] reason Which event has triggered display on
+ * @param[in] timeout Screen timeout that has been requested for the display on state
+ * @return @c 0 on success, otherwise a negative error value
+ */
+int syscommon_plugin_deviced_display_on_by_reason(const char *reason, int timeout);
+
+/**
+ * @breif Plugin implementation for turning off display
+ * @param[in] reason Which event has triggered display off
+ * @return @c 0 on success, otherwise a negative error value
+ */
+int syscommon_plugin_deviced_display_off_by_reason(const char *reason);
+
#ifdef __cplusplus
}
#endif
return g_display_funcs->on_changed_setting_value(key, value);
}
+
+EXPORT
+int syscommon_plugin_deviced_display_lcd_on_procedure(enum syscommon_deviced_display_state state, enum deviced_event reason)
+{
+ int ret = 0;
+
+ if (!g_display_funcs) {
+ ret = syscommon_plugin_deviced_display_get_backend();
+ if (ret < 0)
+ return ret;
+ }
+
+ assert(g_display_funcs);
+
+ if (!g_display_funcs->lcd_on_procedure)
+ return -EOPNOTSUPP;
+
+ return g_display_funcs->lcd_on_procedure(state, reason);
+}
+
+EXPORT
+int syscommon_plugin_deviced_display_lcd_off_procedure(enum deviced_event reason)
+{
+ int ret = 0;
+
+ if (!g_display_funcs) {
+ ret = syscommon_plugin_deviced_display_get_backend();
+ if (ret < 0)
+ return ret;
+ }
+
+ assert(g_display_funcs);
+
+ if (!g_display_funcs->lcd_off_procedure)
+ return -EOPNOTSUPP;
+
+ return g_display_funcs->lcd_off_procedure(reason);
+}
+
+EXPORT
+int syscommon_plugin_deviced_display_custom_lcd_on(int timeout)
+{
+ int ret = 0;
+
+ if (!g_display_funcs) {
+ ret = syscommon_plugin_deviced_display_get_backend();
+ if (ret < 0)
+ return ret;
+ }
+
+ assert(g_display_funcs);
+
+ if (!g_display_funcs->custom_lcd_on)
+ return -EOPNOTSUPP;
+
+ return g_display_funcs->custom_lcd_on(timeout);
+}
+
+EXPORT
+int syscommon_plugin_deviced_display_custom_lcd_off(enum deviced_event reason)
+{
+ int ret = 0;
+
+ if (!g_display_funcs) {
+ ret = syscommon_plugin_deviced_display_get_backend();
+ if (ret < 0)
+ return ret;
+ }
+
+ assert(g_display_funcs);
+
+ if (!g_display_funcs->custom_lcd_off)
+ return -EOPNOTSUPP;
+
+ return g_display_funcs->custom_lcd_off(reason);
+}
+
+EXPORT
+int syscommon_plugin_deviced_display_on_by_reason(const char *reason, int timeout)
+{
+ int ret = 0;
+
+ if (!g_display_funcs) {
+ ret = syscommon_plugin_deviced_display_get_backend();
+ if (ret < 0)
+ return ret;
+ }
+
+ assert(g_display_funcs);
+
+ if (!g_display_funcs->on_by_reason)
+ return -EOPNOTSUPP;
+
+ return g_display_funcs->on_by_reason(reason, timeout);
+}
+
+EXPORT
+int syscommon_plugin_deviced_display_off_by_reason(const char *reason)
+{
+ int ret = 0;
+
+ if (!g_display_funcs) {
+ ret = syscommon_plugin_deviced_display_get_backend();
+ if (ret < 0)
+ return ret;
+ }
+
+ assert(g_display_funcs);
+
+ if (!g_display_funcs->off_by_reason)
+ return -EOPNOTSUPP;
+
+ return g_display_funcs->off_by_reason(reason);
+}
return 0;
}
+static int lcd_on_procedure(enum syscommon_deviced_display_state state, enum deviced_event reason)
+{
+ check_expected(state);
+ check_expected(reason);
+
+ return 0;
+}
+
+static int lcd_off_procedure(enum deviced_event reason)
+{
+ check_expected(reason);
+
+ return 0;
+}
+
+static int custom_lcd_on(int timeout)
+{
+ check_expected(timeout);
+
+ return 0;
+}
+
+static int custom_lcd_off(enum deviced_event reason)
+{
+ check_expected(reason);
+
+ return 0;
+}
+
+static int on_by_reason(const char *reason, int timeout)
+{
+ check_expected(reason);
+ check_expected(timeout);
+
+ return 0;
+}
+
+static int off_by_reason(const char *reason)
+{
+ check_expected(reason);
+
+ return 0;
+}
+
static syscommon_plugin_backend_deviced_display_funcs g_display_funcs = {
.load_display_config = load_display_config,
.on_changed_setting_value = on_changed_setting_value,
+ .lcd_on_procedure = lcd_on_procedure,
+ .lcd_off_procedure = lcd_off_procedure,
+ .custom_lcd_on = custom_lcd_on,
+ .custom_lcd_off = custom_lcd_off,
+ .on_by_reason = on_by_reason,
+ .off_by_reason = off_by_reason,
};
static int deviced_display_init(void **data)
#include "../../test-mock.h"
#include <system/syscommon-plugin-common-interface.h>
+#include <system/syscommon-plugin-deviced-display.h>
+#include <system/syscommon-plugin-deviced-display-interface.h>
extern syscommon_plugin_backend system_plugin_backend_deviced_display_data;
assert_int_equal(ret, 0);
}
+static void test_lcd_on_procedure(void **state)
+{
+ int ret;
+
+ expect_value(lcd_on_procedure, state, SYSCOMMON_DEVICED_DISPLAY_STATE_ON);
+ expect_value(lcd_on_procedure, reason, DEVICED_EVENT_INPUT_POWERKEY);
+
+ ret = syscommon_plugin_deviced_display_lcd_on_procedure(SYSCOMMON_DEVICED_DISPLAY_STATE_ON,
+ DEVICED_EVENT_INPUT_POWERKEY);
+ assert_int_equal(ret, 0);
+}
+
+static void test_lcd_off_procedure(void **state)
+{
+ int ret;
+
+ expect_value(lcd_off_procedure, reason, DEVICED_EVENT_INPUT_POWERKEY);
+
+ ret = syscommon_plugin_deviced_display_lcd_off_procedure(DEVICED_EVENT_INPUT_POWERKEY);
+ assert_int_equal(ret, 0);
+}
+
+static void test_custom_lcd_on(void **state)
+{
+ int ret;
+
+ expect_value(custom_lcd_on, timeout, 10000 /* milisecond time */);
+
+ ret = syscommon_plugin_deviced_display_custom_lcd_on(10000);
+ assert_int_equal(ret, 0);
+}
+
+static void test_custom_lcd_off(void **state)
+{
+ int ret;
+
+ expect_value(custom_lcd_off, reason, DEVICED_EVENT_INPUT_POWERKEY);
+
+ ret = syscommon_plugin_deviced_display_custom_lcd_off(DEVICED_EVENT_INPUT_POWERKEY);
+ assert_int_equal(ret, 0);
+}
+
+static void test_on_by_reason(void **state)
+{
+ int ret;
+
+ expect_string(on_by_reason, reason, "reason");
+ expect_value(on_by_reason, timeout, 10000);
+
+ ret = syscommon_plugin_deviced_display_on_by_reason("reason", 10000);
+ assert_int_equal(ret, 0);
+}
+
+static void test_off_by_reason(void **state)
+{
+ int ret;
+
+ expect_string(off_by_reason, reason, "reason");
+
+ ret = syscommon_plugin_deviced_display_off_by_reason("reason");
+ assert_int_equal(ret, 0);
+
+}
+
static const struct CMUnitTest testsuite_plugin_api_deviced[] = {
cmocka_unit_test(test_notify_setting_value_changed),
+ cmocka_unit_test(test_lcd_on_procedure),
+ cmocka_unit_test(test_lcd_off_procedure),
+ cmocka_unit_test(test_custom_lcd_on),
+ cmocka_unit_test(test_custom_lcd_off),
+ cmocka_unit_test(test_on_by_reason),
+ cmocka_unit_test(test_off_by_reason),
};
TESTSUITE_FIXTURE(testsuite_plugin_api_deviced, setup_plugin_deviced, teardown_plugin_deviced)