video:hwc_planes: reduce duplicate codes. 30/225330/1
authorSeunghun Lee <shiin.lee@samsung.com>
Tue, 18 Feb 2020 11:46:59 +0000 (20:46 +0900)
committerSeunghun Lee <shiin.lee@samsung.com>
Tue, 18 Feb 2020 11:54:44 +0000 (20:54 +0900)
Change-Id: Ie57acaf419f0549d65e75852ed6d1279512f1b32

src/bin/video/iface/e_video_hwc_planes.c

index 93513e1d964cd5ba8cb04d71a3a1208eb58cfdc9..8519d4398f53017d06695e743e59bca1480ff509 100644 (file)
@@ -37,6 +37,52 @@ typedef struct _Tdm_Prop_Value
 
 static Eina_List *video_layers = NULL;
 
+static Eina_Bool
+_e_video_hwc_planes_prop_list_update(Eina_List *prop_list, const char *name, tdm_value value)
+{
+   Tdm_Prop_Value *prop;
+   Eina_List *l;
+
+   EINA_LIST_FOREACH(prop_list, l, prop)
+     {
+        if (strncmp(name, prop->name, TDM_NAME_LEN))
+          continue;
+
+        VDB("update property(%s) value(%d -> %d)",
+            NULL, name, prop->value.u32, value.u32);
+
+        prop->value.u32 = value.u32;
+
+        return EINA_TRUE;
+     }
+
+   return EINA_FALSE;
+}
+
+static Eina_Bool
+_e_video_hwc_planes_prop_list_append(Eina_List **prop_list, unsigned int id, const char *name, tdm_value value)
+{
+   Tdm_Prop_Value *prop;
+
+   prop = calloc(1, sizeof(Tdm_Prop_Value));
+   if (!prop)
+     {
+        VER("failed to alloc memory: property(%s) value(%d)",
+            NULL, name, value.u32);
+        return EINA_FALSE;
+     }
+
+   prop->value.u32 = value.u32;
+   prop->id = id;
+   memcpy(prop->name, name, sizeof(TDM_NAME_LEN));
+
+   VIN("Add property(%s) value(%d)", NULL, name, value.u32);
+
+   *prop_list = eina_list_append(*prop_list, prop);
+
+   return EINA_TRUE;
+}
+
 static tdm_layer *
 _tdm_output_video_layer_get(tdm_output *output)
 {
@@ -657,27 +703,19 @@ _e_video_hwc_planes_property_post_set(E_Video_Hwc_Planes *evhp,
                                       const char *name,
                                       tdm_value value)
 {
-   Tdm_Prop_Value *prop = NULL;
-   const Eina_List *l = NULL;
+   Eina_Bool res;
 
-   EINA_LIST_FOREACH(evhp->tdm.late_prop_list, l, prop)
-     {
-        if (!strncmp(name, prop->name, TDM_NAME_LEN))
-          {
-             prop->value.u32 = value.u32;
-             VDB("update property(%s) value(%d)", evhp->base.ec, prop->name, value.u32);
-             return;
-          }
-     }
+   VDB("property_post_set: property(%s) value(%d)",
+       evhp->base.ec, name, value.u32);
 
-   prop = calloc(1, sizeof(Tdm_Prop_Value));
-   if(!prop) return;
+   res = _e_video_hwc_planes_prop_list_update(evhp->tdm.late_prop_list,
+                                              name,
+                                              value);
+   if (res)
+     return;
 
-   prop->value.u32 = value.u32;
-   prop->id = id;
-   memcpy(prop->name, name, sizeof(TDM_NAME_LEN));
-   VIN("Add property(%s) value(%d)", evhp->base.ec, prop->name, value.u32);
-   evhp->tdm.late_prop_list = eina_list_append(evhp->tdm.late_prop_list, prop);
+   _e_video_hwc_planes_prop_list_append(&evhp->tdm.late_prop_list,
+                                        id, name, value);
 }
 
 static Eina_Bool
@@ -686,39 +724,27 @@ _e_video_hwc_planes_property_pre_set(E_Video_Hwc_Planes *evhp,
                                      const char *name,
                                      tdm_value value)
 {
-   Tdm_Prop_Value *prop = NULL;
-   const Eina_List *l = NULL;
+   Eina_Bool res;
 
-   EINA_LIST_FOREACH(evhp->tdm.prop_list, l, prop)
-     {
-        if (!strncmp(name, prop->name, TDM_NAME_LEN))
-          {
-             VDB("find prop data(%s) update value(%d -> %d)", evhp->base.ec,
-                 prop->name, (unsigned int)prop->value.u32, (unsigned int)value.u32);
-             prop->value.u32 = value.u32;
-             return EINA_TRUE;
-          }
-     }
-   EINA_LIST_FOREACH(evhp->tdm.late_prop_list, l, prop)
-     {
-        if (!strncmp(name, prop->name, TDM_NAME_LEN))
-          {
-             VDB("find prop data(%s) update value(%d -> %d)", evhp->base.ec,
-                 prop->name, (unsigned int)prop->value.u32, (unsigned int)value.u32);
-             prop->value.u32 = value.u32;
-             return EINA_TRUE;
-          }
-     }
+   VDB("property_pre_set: property(%s) value(%d)",
+       evhp->base.ec, name, value.u32);
 
-   prop = calloc(1, sizeof(Tdm_Prop_Value));
-   if(!prop) return EINA_FALSE;
-   prop->value.u32 = value.u32;
-   prop->id = id;
-   memcpy(prop->name, name, sizeof(TDM_NAME_LEN));
-   VIN("Add property(%s) value(%d)", evhp->base.ec, prop->name, value.u32);
-   evhp->tdm.prop_list = eina_list_append(evhp->tdm.prop_list, prop);
+   res = _e_video_hwc_planes_prop_list_update(evhp->tdm.prop_list,
+                                              name,
+                                              value);
+   if (res)
+     return EINA_TRUE;
 
-   return EINA_TRUE;
+   res = _e_video_hwc_planes_prop_list_update(evhp->tdm.late_prop_list,
+                                              name,
+                                              value);
+   if (res)
+     return EINA_TRUE;
+
+   res = _e_video_hwc_planes_prop_list_append(&evhp->tdm.prop_list,
+                                              id, name, value);
+
+   return res;
 }
 
 static Eina_Bool