plugin-api: deviced: Add interface for loading state info 17/313317/1
authorYoungjae Cho <y0.cho@samsung.com>
Mon, 17 Jun 2024 12:58:27 +0000 (21:58 +0900)
committerYoungjae Cho <y0.cho@samsung.com>
Mon, 24 Jun 2024 02:13:19 +0000 (11:13 +0900)
Change-Id: Ibb30166a10ae437d580ff8e2bf10810723b27ec4
Signed-off-by: Youngjae Cho <y0.cho@samsung.com>
src/plugin-api/deviced/include/system/syscommon-plugin-deviced-display-interface.h
src/plugin-api/deviced/include/system/syscommon-plugin-deviced-display.h
src/plugin-api/deviced/src/syscommon-plugin-deviced-display.c
tests/plugin-api/deviced/test-plugin-display.c
tests/plugin-api/deviced/test.c

index 59f937586305281dd9fb567a190cde994630685d..dfc1c0cbe8299af6e694af9e9ac5f23d002f331b 100644 (file)
@@ -144,6 +144,7 @@ enum syscommon_deviced_display_capability {
 
 typedef struct _syscommon_plugin_backend_deviced_display_funcs {
        int (*load_display_config) (struct syscommon_deviced_display_config **);
+       int (*load_state_info) (struct syscommon_deviced_display_state_info *);
        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);
index 156dad58a8da44147150ad47bc58672039b0a757..97f543f97d9fd08a2b445100c9e9ae59d88699a8 100644 (file)
@@ -50,6 +50,13 @@ int syscommon_plugin_deviced_display_put_backend(void);
  */
 int syscommon_plugin_deviced_display_load_config(struct syscommon_deviced_display_config **);
 
+/**
+ * @brief Load the backend states
+ * @param[in] states Array of states transition information
+ * @return @c 0 on success, otherwise a negative error value
+ */
+int syscommon_plugin_deviced_display_load_state_info(struct syscommon_deviced_display_state_info *states);
+
 /**
  * @brief Let plugin know about setting value change
  * @param[in] key Key of which setting value has changed
index e462e81273a9891e98fed3b15bc9ca16954d423b..3f4c7956b7fc6d333b7ad054382cef27e2d6f7b0 100644 (file)
@@ -100,6 +100,26 @@ int syscommon_plugin_deviced_display_load_config(struct syscommon_deviced_displa
        return g_display_funcs->load_display_config(data);
 }
 
+EXPORT
+int syscommon_plugin_deviced_display_load_state_info(struct syscommon_deviced_display_state_info *states)
+{
+       int ret = 0;
+
+       if (!g_display_funcs) {
+               ret = syscommon_plugin_deviced_display_get_backend();
+               if (ret < 0)
+                       return -ENOTSUP;
+       }
+
+       assert(g_display_funcs);
+
+       if (!g_display_funcs->load_state_info)
+               return -EOPNOTSUPP;
+
+       return g_display_funcs->load_state_info(states);
+
+}
+
 EXPORT
 int syscommon_plugin_deviced_display_notify_setting_value_changed(int key, int value)
 {
index f495f17b88a86a90e9438c3829a5699a91a0095a..81b98b2c6b192db59045b53592fa7cb714096a1d 100644 (file)
@@ -20,6 +20,13 @@ static int load_display_config(struct syscommon_deviced_display_config **data)
        return 0;
 }
 
+static int load_state_info(struct syscommon_deviced_display_state_info *states)
+{
+       check_expected(states);
+
+       return 0;
+}
+
 static int on_changed_setting_value(int key, int value)
 {
        check_expected(key);
@@ -132,6 +139,7 @@ static int set_auto_brightness_min(int brightness, const char *name)
 
 static syscommon_plugin_backend_deviced_display_funcs g_display_funcs = {
        .load_display_config = load_display_config,
+       .load_state_info = load_state_info,
        .on_changed_setting_value = on_changed_setting_value,
        .lcd_on_procedure = lcd_on_procedure,
        .lcd_off_procedure = lcd_off_procedure,
index d16beb7cf425d57c4168365fdf8f30f5bffe5949..480d14e5bc0f4bb1d94f5c72a3bbf799b4805c6e 100644 (file)
@@ -33,6 +33,19 @@ static int teardown_plugin_deviced(void **state)
        return 0;
 }
 
+static void test_load_state_info(void **state)
+{
+       int ret;
+       struct syscommon_deviced_display_state_info s[SYSCOMMON_DEVICED_DISPLAY_STATE_END] = {
+               0,
+       };
+
+       expect_value(load_state_info, states, s);
+
+       ret = syscommon_plugin_deviced_display_load_state_info(s);
+       assert_int_equal(ret, 0);
+}
+
 static void test_notify_setting_value_changed(void **state)
 {
        int ret;
@@ -121,7 +134,7 @@ static void test_get_brightness(void **state)
 static void test_set_brightness(void **state)
 {
        int ret;
-       
+
        expect_value(set_brightness, brightness, 100);
 
        ret = syscommon_plugin_deviced_display_set_brightness(100);
@@ -174,6 +187,7 @@ static void test_set_auto_brightness_min(void **state)
 }
 
 static const struct CMUnitTest testsuite_plugin_api_deviced[] = {
+       cmocka_unit_test(test_load_state_info),
        cmocka_unit_test(test_notify_setting_value_changed),
        cmocka_unit_test(test_lcd_on_procedure),
        cmocka_unit_test(test_lcd_off_procedure),