tbm_module : add tbm_module_bufmgr_get_capabilities
[platform/core/uifw/libtbm.git] / src / tbm_module.c
index eec0f34..fe90662 100644 (file)
@@ -532,3 +532,31 @@ tbm_module_unload(tbm_module *module)
        free(module);
 }
 
+int
+tbm_module_bufmgr_get_capabilities(tbm_module *module)
+{
+       tbm_error_e error = TBM_ERROR_NOT_SUPPORTED;
+       int capabilities = 0;
+
+       switch (module->type) {
+       case TBM_MODULE_TYPE_HAL_TBM:
+               capabilities = hal_tbm_bufmgr_get_capabilities(module->hal_bufmgr, (hal_tbm_error *)&error);
+               break;
+       case TBM_MODULE_TYPE_TBM_BACKEND:
+               capabilities = module->bufmgr_func->bufmgr_get_capabilities(module->bufmgr_data, &error);
+               break;
+       case TBM_MODULE_TYPE_BUFMGR_BACKEND:
+               TBM_ERR("Do not support at tbm_bufmgr_backend.");
+               break;
+       default:
+               TBM_ERR("Wrong module type:%d", module->type);
+               break;
+       }
+
+       if (error != TBM_ERROR_NONE) {
+               TBM_ERR("fail to get capabilities of bufmgr");
+               return 0;
+       }
+
+       return capabilities;
+}