Blame SOURCES/0011-cheese-camera-device-Add-cheese_camera_device_find_f.patch

ecdf9b
From 0d5c4a4df0836bdbab85b3ccbca1dffeb54affe1 Mon Sep 17 00:00:00 2001
ecdf9b
From: Hans de Goede <hdegoede@redhat.com>
ecdf9b
Date: Mon, 10 Jun 2013 14:27:04 +0200
ecdf9b
Subject: [PATCH 11/35] cheese-camera-device: Add
ecdf9b
 cheese_camera_device_find_full_format() helper
ecdf9b
ecdf9b
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
ecdf9b
---
ecdf9b
 libcheese/cheese-camera-device.c | 40 ++++++++++++++++++++++++++++++----------
ecdf9b
 1 file changed, 30 insertions(+), 10 deletions(-)
ecdf9b
ecdf9b
diff --git a/libcheese/cheese-camera-device.c b/libcheese/cheese-camera-device.c
ecdf9b
index c684367..25d4a51 100644
ecdf9b
--- a/libcheese/cheese-camera-device.c
ecdf9b
+++ b/libcheese/cheese-camera-device.c
ecdf9b
@@ -319,6 +319,30 @@ cheese_camera_device_format_update_framerate(CheeseVideoFormatFull *format,
ecdf9b
 }
ecdf9b
 
ecdf9b
 /*
ecdf9b
+ * cheese_camera_device_find_full_format
ecdf9b
+ * @device: a #CheeseCameraDevice
ecdf9b
+ * @format: #CheeseVideoFormat to find the matching #CheeseVideoFormatFull for
ecdf9b
+ *
ecdf9b
+ * Find a #CheeseVideoFormatFull matching the passed in #CheeseVideoFormat
ecdf9b
+ */
ecdf9b
+static CheeseVideoFormatFull *
ecdf9b
+cheese_camera_device_find_full_format(CheeseCameraDevice *device,
ecdf9b
+  CheeseVideoFormat* format)
ecdf9b
+{
ecdf9b
+  GList *l;
ecdf9b
+
ecdf9b
+  for (l = device->priv->formats; l != NULL; l = l->next)
ecdf9b
+  {
ecdf9b
+    CheeseVideoFormatFull *item = l->data;
ecdf9b
+    if ((item != NULL) &&
ecdf9b
+        (item->width == format->width) &&
ecdf9b
+        (item->height == format->height))
ecdf9b
+      return item;
ecdf9b
+  }
ecdf9b
+  return NULL;
ecdf9b
+}
ecdf9b
+
ecdf9b
+/*
ecdf9b
  * cheese_camera_device_add_format:
ecdf9b
  * @device: a #CheeseCameraDevice
ecdf9b
  * @format: the #CheeseVideoFormatFull to add
ecdf9b
@@ -330,18 +354,14 @@ cheese_camera_device_add_format (CheeseCameraDevice *device,
ecdf9b
   CheeseVideoFormatFull *format, const GValue *framerate)
ecdf9b
 {
ecdf9b
   CheeseCameraDevicePrivate *priv =  device->priv;
ecdf9b
-  GList *l;
ecdf9b
+  CheeseVideoFormatFull *existing;
ecdf9b
 
ecdf9b
-  for (l = priv->formats; l != NULL; l = l->next)
ecdf9b
+  existing = cheese_camera_device_find_full_format(device,
ecdf9b
+                                                 (CheeseVideoFormat *)format);
ecdf9b
+  if (existing)
ecdf9b
   {
ecdf9b
-    CheeseVideoFormatFull *item = l->data;
ecdf9b
-    if ((item != NULL) &&
ecdf9b
-        (item->width == format->width) &&
ecdf9b
-        (item->height == format->height))
ecdf9b
-    {
ecdf9b
-      cheese_camera_device_format_update_framerate (item, framerate);
ecdf9b
-      return;
ecdf9b
-    }
ecdf9b
+    cheese_camera_device_format_update_framerate (existing, framerate);
ecdf9b
+    return;
ecdf9b
   }
ecdf9b
 
ecdf9b
   cheese_camera_device_get_highest_framerate (framerate,
ecdf9b
-- 
ecdf9b
1.8.2.1
ecdf9b