mmi-provider: implement set_op_mode_on_caps()/register_caps() apis 69/264069/1
authorSung-Jin Park <sj76.park@samsung.com>
Thu, 2 Sep 2021 08:14:04 +0000 (17:14 +0900)
committerSung-Jin Park <sj76.park@samsung.com>
Mon, 13 Sep 2021 11:25:37 +0000 (20:25 +0900)
Change-Id: I7380a6d5d70c752936d6d9731f3f3344f5ed0320
Signed-off-by: Sung-Jin Park <sj76.park@samsung.com>
src/mmi-provider.c
src/mmi-provider.h

index 51630d5..a788b4e 100644 (file)
 Eina_List *_provider_list = NULL;
 
 int
-mmi_provider_register_caps(mmi_provider_handle provider, int caps)
+mmi_provider_set_op_mode_on_caps(unsigned long long caps, mmi_provider_op_mode mode)
 {
-       (void) provider;
-       (void) caps;
+       Eina_List *l = NULL;
+       mmi_provider_handle *provider = NULL;
+
+       if (!caps)
+       {
+               LOGE("Given caps in empty !\n");
+               return -1;
+       }
+
+       EINA_LIST_FOREACH(_provider_list, l, provider)
+       {
+               if (provider->capabilities & caps)
+               {
+                       LOGD("Set op_mode(%d) on provider(%s) !\n", mode, provider->module_info->name);
+                       provider->module_data->set_mode(mode);
+               }
+       }
+
+       return 0;
+}
+
+int
+mmi_provider_register_caps(mmi_provider_handle *provider, unsigned long long caps)
+{
+       if (!provider)
+       {
+               LOGE("Given provider is invalid !\n");
+               return -1;
+       }
+
+       if (!caps)
+       {
+               LOGE("Given caps is invalid ! (caps=%lld)\n", caps);
+               return -1;
+       }
 
+       /* Right now, we add the given caps to the existing caps. */
+       provider->capabilities |= caps;
        return 0;
 }
 
index 1e48d3a..275ebb2 100644 (file)
 #ifndef __MMI_PROVIDER_H__
 #define __MMI_PROVIDER_H__
 
+#include "mmi-common.h"
+
+int mmi_provider_set_op_mode_on_caps(unsigned long long caps, mmi_provider_op_mode mode);
+
 void modality_providers_init(void);
 void modality_providers_shutdown(void);