From c0c5007a5424b0668886bdc62ff74b275cd8be60 Mon Sep 17 00:00:00 2001
From: Matthias Vogelgesang <matthias.vogelgesang@kit.edu>
Date: Sun, 4 Mar 2012 20:30:31 +0100
Subject: Add callback func and change data to gpointer

---
 src/cameras/uca-mock-camera.c |  2 +-
 src/cameras/uca-pco-camera.c  |  2 +-
 src/uca-camera.c              |  7 ++++++-
 src/uca-camera.h              | 14 ++++++++++++--
 4 files changed, 20 insertions(+), 5 deletions(-)

(limited to 'src')

diff --git a/src/cameras/uca-mock-camera.c b/src/cameras/uca-mock-camera.c
index 94645af..8dacf5d 100644
--- a/src/cameras/uca-mock-camera.c
+++ b/src/cameras/uca-mock-camera.c
@@ -78,7 +78,7 @@ static void uca_mock_camera_stop_recording(UcaCamera *camera, GError **error)
     g_return_if_fail(UCA_IS_MOCK_CAMERA(camera));
 }
 
-static void uca_mock_camera_grab(UcaCamera *camera, gchar *data, GError **error)
+static void uca_mock_camera_grab(UcaCamera *camera, gpointer data, GError **error)
 {
     g_return_if_fail(UCA_IS_MOCK_CAMERA(camera));
     UcaMockCameraPrivate *priv = UCA_MOCK_CAMERA_GET_PRIVATE(camera);
diff --git a/src/cameras/uca-pco-camera.c b/src/cameras/uca-pco-camera.c
index 0f8ca14..80034e3 100644
--- a/src/cameras/uca-pco-camera.c
+++ b/src/cameras/uca-pco-camera.c
@@ -247,7 +247,7 @@ static void uca_pco_camera_stop_recording(UcaCamera *camera, GError **error)
     pco_stop_recording(UCA_PCO_CAMERA_GET_PRIVATE(camera)->pco);
 }
 
-static void uca_pco_camera_grab(UcaCamera *camera, gchar *data, GError **error)
+static void uca_pco_camera_grab(UcaCamera *camera, gpointer data, GError **error)
 {
     g_return_if_fail(UCA_IS_PCO_CAMERA(camera));
 }
diff --git a/src/uca-camera.c b/src/uca-camera.c
index 00bda82..7079279 100644
--- a/src/uca-camera.c
+++ b/src/uca-camera.c
@@ -220,7 +220,12 @@ void uca_camera_stop_recording(UcaCamera *camera, GError **error)
     g_signal_emit_by_name(G_OBJECT(camera), "recording-stopped");
 }
 
-void uca_camera_grab(UcaCamera *camera, gchar *data, GError **error)
+void uca_camera_set_grab_func(UcaCamera *camera, UcaCameraGrabFunc func)
+{
+    /* TODO: implement */
+}
+
+void uca_camera_grab(UcaCamera *camera, gpointer data, GError **error)
 {
     g_return_if_fail(UCA_IS_CAMERA(camera));
 
diff --git a/src/uca-camera.h b/src/uca-camera.h
index 59a0670..b09e12b 100644
--- a/src/uca-camera.h
+++ b/src/uca-camera.h
@@ -37,6 +37,15 @@ typedef struct _UcaCamera           UcaCamera;
 typedef struct _UcaCameraClass      UcaCameraClass;
 typedef struct _UcaCameraPrivate    UcaCameraPrivate;
 
+/**
+ * UcaCameraGrabFunc:
+ * @data: a pointer to the raw data
+ * @user_data: user data passed to the function
+ *
+ * A function receiving the data when streaming in asynchronous mode.
+ */
+typedef void (*UcaCameraGrabFunc) (gpointer data, gpointer user_data);
+
 struct _UcaCamera {
     /*< private >*/
     GObject parent;
@@ -55,7 +64,7 @@ struct _UcaCameraClass {
 
     void (*start_recording) (UcaCamera *camera, GError **error);
     void (*stop_recording) (UcaCamera *camera, GError **error);
-    void (*grab) (UcaCamera *camera, gchar *data, GError **error);
+    void (*grab) (UcaCamera *camera, gpointer data, GError **error);
 
     void (*recording_started) (UcaCamera *camera);
     void (*recording_stopped) (UcaCamera *camera);
@@ -63,7 +72,8 @@ struct _UcaCameraClass {
 
 void uca_camera_start_recording(UcaCamera *camera, GError **error);
 void uca_camera_stop_recording(UcaCamera *camera, GError **error);
-void uca_camera_grab(UcaCamera *camera, gchar *data, GError **error);
+void uca_camera_grab(UcaCamera *camera, gpointer data, GError **error);
+void uca_camera_set_grab_func(UcaCamera *camera, UcaCameraGrabFunc func);
 
 GType uca_camera_get_type(void);
 
-- 
cgit v1.2.3