|
 |
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 |
|