#endif
#include "cameracontrol.h"
-//#include "interfaces-marshal.h"
/**
* SECTION:gstcameracontrol
CONTROL_LAST_SIGNAL
};
-static void gst_camera_control_class_init(GstCameraControlClass *klass);
+static void gst_camera_control_base_init(GstCameraControlInterface *iface);
static guint gst_camera_control_signals[CONTROL_LAST_SIGNAL] = { 0 };
if (!gst_camera_control_type) {
static const GTypeInfo gst_camera_control_info =
{
- sizeof(GstCameraControlClass),
- (GBaseInitFunc)gst_camera_control_class_init,
+ sizeof(GstCameraControlInterface),
+ (GBaseInitFunc)gst_camera_control_base_init,
NULL,
NULL,
NULL,
};
gst_camera_control_type = g_type_register_static(G_TYPE_INTERFACE,
- "GstCameraControl",
- &gst_camera_control_info,
- 0);
- //g_type_interface_add_prerequisite(gst_camera_control_type, GST_TYPE_IMPLEMENTS_INTERFACE);
+ "GstCameraControl", &gst_camera_control_info, 0);
}
return gst_camera_control_type;
}
-static void gst_camera_control_class_init(GstCameraControlClass *klass)
+static void gst_camera_control_base_init(GstCameraControlInterface *iface)
{
static gboolean initialized = FALSE;
if (!initialized) {
gst_camera_control_signals[CONTROL_VALUE_CHANGED] =
g_signal_new("control-value-changed",
- GST_TYPE_CAMERA_CONTROL, G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET(GstCameraControlClass, value_changed),
- NULL, NULL, NULL,
- //gst_interfaces_marshal_VOID__OBJECT_INT,
- G_TYPE_NONE, 2, GST_TYPE_CAMERA_CONTROL_CHANNEL, G_TYPE_INT);
+ GST_TYPE_CAMERA_CONTROL, G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET(GstCameraControlInterface, value_changed),
+ NULL, NULL, NULL,
+ G_TYPE_NONE, 2, GST_TYPE_CAMERA_CONTROL_CHANNEL, G_TYPE_INT);
initialized = TRUE;
}
// TODO :
- klass->camera_control_type = 0;
-
- /* defauld virtual functions */
- klass->list_channels = NULL;
- klass->set_exposure = NULL;
- klass->get_exposure = NULL;
- klass->set_capture_mode = NULL;
- klass->get_capture_mode = NULL;
- klass->set_strobe = NULL;
- klass->get_strobe = NULL;
- klass->set_detect = NULL;
- klass->get_detect = NULL;
- klass->set_value = NULL;
- klass->get_value = NULL;
- klass->set_zoom = NULL;
- klass->get_zoom = NULL;
- klass->set_focus = NULL;
- klass->get_focus = NULL;
- klass->start_auto_focus = NULL;
- klass->stop_auto_focus = NULL;
- klass->set_focus_level = NULL;
- klass->get_focus_level = NULL;
- klass->set_auto_focus_area = NULL;
- klass->get_auto_focus_area = NULL;
- klass->set_wdr = NULL;
- klass->get_wdr = NULL;
- klass->set_ahs = NULL;
- klass->get_ahs = NULL;
- klass->set_part_color = NULL;
- klass->get_part_color = NULL;
- klass->get_exif_info = NULL;
- klass->set_capture_command = NULL;
- klass->set_record_command = NULL;
- klass->start_face_zoom = NULL;
- klass->stop_face_zoom = NULL;
- klass->set_ae_lock = NULL;
- klass->get_ae_lock = NULL;
- klass->set_awb_lock = NULL;
- klass->get_awb_lock = NULL;
-}
-
-const GList* gst_camera_control_list_channels(GstCameraControl *control)
-{
- GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
-
- if (klass && klass->list_channels) {
- return klass->list_channels(control);
+ iface->camera_control_type = 0;
+
+ /* default virtual functions */
+ iface->list_channels = NULL;
+ iface->set_exposure = NULL;
+ iface->get_exposure = NULL;
+ iface->set_capture_mode = NULL;
+ iface->get_capture_mode = NULL;
+ iface->set_strobe = NULL;
+ iface->get_strobe = NULL;
+ iface->set_detect = NULL;
+ iface->get_detect = NULL;
+ iface->set_value = NULL;
+ iface->get_value = NULL;
+ iface->set_zoom = NULL;
+ iface->get_zoom = NULL;
+ iface->set_focus = NULL;
+ iface->get_focus = NULL;
+ iface->start_auto_focus = NULL;
+ iface->stop_auto_focus = NULL;
+ iface->set_focus_level = NULL;
+ iface->get_focus_level = NULL;
+ iface->set_auto_focus_area = NULL;
+ iface->get_auto_focus_area = NULL;
+ iface->set_wdr = NULL;
+ iface->get_wdr = NULL;
+ iface->set_ahs = NULL;
+ iface->get_ahs = NULL;
+ iface->set_part_color = NULL;
+ iface->get_part_color = NULL;
+ iface->get_exif_info = NULL;
+ iface->set_capture_command = NULL;
+ iface->set_record_command = NULL;
+ iface->start_face_zoom = NULL;
+ iface->stop_face_zoom = NULL;
+ iface->set_ae_lock = NULL;
+ iface->get_ae_lock = NULL;
+ iface->set_awb_lock = NULL;
+ iface->get_awb_lock = NULL;
+}
+
+/**
+ * gst_camera_control_list_channels:
+ * @control: A #GstCameraControl instance
+ *
+ * Retrieve a list of the available channels.
+ *
+ * Returns: (element-type GstCameraControlChannel) (transfer none): A
+ * GList containing pointers to #GstCameraControlChannel
+ * objects. The list is owned by the #GstCameraControl
+ * instance and must not be freed.
+ */
+const GList *gst_camera_control_list_channels(GstCameraControl *control)
+{
+ GstCameraControlInterface *iface;
+
+ g_return_val_if_fail(GST_IS_CAMERA_CONTROL(control), NULL);
+
+ iface = GST_CAMERA_CONTROL_GET_INTERFACE(control);
+
+ if (iface->list_channels) {
+ return iface->list_channels(control);
}
return NULL;
gboolean gst_camera_control_set_value(GstCameraControl *control, GstCameraControlChannel *control_channel, gint value)
{
- GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
+ GstCameraControlInterface *iface;
+
+ g_return_val_if_fail(GST_IS_CAMERA_CONTROL(control), FALSE);
- if (klass && klass->set_value) {
- return klass->set_value(control, control_channel, value);
+ iface = GST_CAMERA_CONTROL_GET_INTERFACE(control);
+
+ if (iface->set_value) {
+ return iface->set_value(control, control_channel, value);
}
return FALSE;
gboolean gst_camera_control_get_value(GstCameraControl *control, GstCameraControlChannel *control_channel, gint *value)
{
- GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
+ GstCameraControlInterface *iface;
+
+ g_return_val_if_fail(GST_IS_CAMERA_CONTROL(control), FALSE);
+
+ iface = GST_CAMERA_CONTROL_GET_INTERFACE(control);
- if (klass && klass->get_value) {
- return klass->get_value(control, control_channel, value);
+ if (iface->get_value) {
+ return iface->get_value(control, control_channel, value);
}
return FALSE;
gboolean gst_camera_control_set_exposure(GstCameraControl *control, gint type, gint value1, gint value2)
{
- GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
+ GstCameraControlInterface *iface;
- if (klass && klass->set_exposure) {
- return klass->set_exposure(control, type, value1, value2);
+ g_return_val_if_fail(GST_IS_CAMERA_CONTROL(control), FALSE);
+
+ iface = GST_CAMERA_CONTROL_GET_INTERFACE(control);
+
+ if (iface->set_exposure) {
+ return iface->set_exposure(control, type, value1, value2);
}
return FALSE;
gboolean gst_camera_control_get_exposure(GstCameraControl *control, gint type, gint *value1, gint *value2)
{
- GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
+ GstCameraControlInterface *iface;
+
+ g_return_val_if_fail(GST_IS_CAMERA_CONTROL(control), FALSE);
- if (klass && klass->get_exposure) {
- return klass->get_exposure(control, type, value1, value2);
+ iface = GST_CAMERA_CONTROL_GET_INTERFACE(control);
+
+ if (iface->get_exposure) {
+ return iface->get_exposure(control, type, value1, value2);
}
return FALSE;
gboolean gst_camera_control_set_capture_mode(GstCameraControl *control, gint type, gint value)
{
- GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
+ GstCameraControlInterface *iface;
+
+ g_return_val_if_fail(GST_IS_CAMERA_CONTROL(control), FALSE);
+
+ iface = GST_CAMERA_CONTROL_GET_INTERFACE(control);
- if (klass && klass->set_capture_mode) {
- return klass->set_capture_mode(control, type, value);
+ if (iface->set_capture_mode) {
+ return iface->set_capture_mode(control, type, value);
}
return FALSE;
gboolean gst_camera_control_get_capture_mode(GstCameraControl *control, gint type, gint *value)
{
- GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
+ GstCameraControlInterface *iface;
+
+ g_return_val_if_fail(GST_IS_CAMERA_CONTROL(control), FALSE);
+
+ iface = GST_CAMERA_CONTROL_GET_INTERFACE(control);
- if (klass && klass->get_capture_mode) {
- return klass->get_capture_mode(control, type, value);
+ if (iface->get_capture_mode) {
+ return iface->get_capture_mode(control, type, value);
}
return FALSE;
gboolean gst_camera_control_set_strobe(GstCameraControl *control, gint type, gint value)
{
- GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
+ GstCameraControlInterface *iface;
- if (klass && klass->set_strobe) {
- return klass->set_strobe(control, type, value);
+ g_return_val_if_fail(GST_IS_CAMERA_CONTROL(control), FALSE);
+
+ iface = GST_CAMERA_CONTROL_GET_INTERFACE(control);
+
+ if (iface->set_strobe) {
+ return iface->set_strobe(control, type, value);
}
return FALSE;
gboolean gst_camera_control_get_strobe(GstCameraControl *control, gint type, gint *value)
{
- GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
+ GstCameraControlInterface *iface;
+
+ g_return_val_if_fail(GST_IS_CAMERA_CONTROL(control), FALSE);
- if (klass && klass->get_strobe) {
- return klass->get_strobe(control, type, value);
+ iface = GST_CAMERA_CONTROL_GET_INTERFACE(control);
+
+ if (iface->get_strobe) {
+ return iface->get_strobe(control, type, value);
}
return FALSE;
gboolean gst_camera_control_set_detect(GstCameraControl *control, gint type, gint value)
{
- GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
+ GstCameraControlInterface *iface;
+
+ g_return_val_if_fail(GST_IS_CAMERA_CONTROL(control), FALSE);
+
+ iface = GST_CAMERA_CONTROL_GET_INTERFACE(control);
- if (klass && klass->set_detect) {
- return klass->set_detect(control, type, value);
+ if (iface->set_detect) {
+ return iface->set_detect(control, type, value);
}
return FALSE;
gboolean gst_camera_control_get_detect(GstCameraControl *control, gint type, gint *value)
{
- GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
+ GstCameraControlInterface *iface;
- if (klass && klass->get_detect) {
- return klass->get_detect(control, type, value);
+ g_return_val_if_fail(GST_IS_CAMERA_CONTROL(control), FALSE);
+
+ iface = GST_CAMERA_CONTROL_GET_INTERFACE(control);
+
+ if (iface->get_detect) {
+ return iface->get_detect(control, type, value);
}
return FALSE;
gboolean gst_camera_control_set_zoom(GstCameraControl *control, gint type, gint value)
{
- GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
+ GstCameraControlInterface *iface;
+
+ g_return_val_if_fail(GST_IS_CAMERA_CONTROL(control), FALSE);
- if (klass && klass->set_zoom) {
- return klass->set_zoom(control, type, value);
+ iface = GST_CAMERA_CONTROL_GET_INTERFACE(control);
+
+ if (iface->set_zoom) {
+ return iface->set_zoom(control, type, value);
}
return FALSE;
gboolean gst_camera_control_get_zoom(GstCameraControl *control, gint type, gint *value)
{
- GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
+ GstCameraControlInterface *iface;
+
+ g_return_val_if_fail(GST_IS_CAMERA_CONTROL(control), FALSE);
- if (klass && klass->get_zoom) {
- return klass->get_zoom(control, type, value);
+ iface = GST_CAMERA_CONTROL_GET_INTERFACE(control);
+
+ if (iface->get_zoom) {
+ return iface->get_zoom(control, type, value);
}
return FALSE;
gboolean gst_camera_control_set_focus(GstCameraControl *control, gint mode, gint range)
{
- GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
+ GstCameraControlInterface *iface;
+
+ g_return_val_if_fail(GST_IS_CAMERA_CONTROL(control), FALSE);
+
+ iface = GST_CAMERA_CONTROL_GET_INTERFACE(control);
- if (klass && klass->set_focus) {
- return klass->set_focus(control, mode, range);
+ if (iface->set_focus) {
+ return iface->set_focus(control, mode, range);
}
return FALSE;
gboolean gst_camera_control_get_focus(GstCameraControl *control, gint *mode, gint *range)
{
- GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
+ GstCameraControlInterface *iface;
- if (klass && klass->get_focus) {
- return klass->get_focus(control, mode, range);
+ g_return_val_if_fail(GST_IS_CAMERA_CONTROL(control), FALSE);
+
+ iface = GST_CAMERA_CONTROL_GET_INTERFACE(control);
+
+ if (iface->get_focus) {
+ return iface->get_focus(control, mode, range);
}
return FALSE;
gboolean gst_camera_control_start_auto_focus(GstCameraControl *control)
{
- GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
+ GstCameraControlInterface *iface;
+
+ g_return_val_if_fail(GST_IS_CAMERA_CONTROL(control), FALSE);
- if (klass && klass->start_auto_focus) {
- return klass->start_auto_focus(control);
+ iface = GST_CAMERA_CONTROL_GET_INTERFACE(control);
+
+ if (iface->start_auto_focus) {
+ return iface->start_auto_focus(control);
}
return FALSE;
gboolean gst_camera_control_stop_auto_focus(GstCameraControl *control)
{
- GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
+ GstCameraControlInterface *iface;
+
+ g_return_val_if_fail(GST_IS_CAMERA_CONTROL(control), FALSE);
+
+ iface = GST_CAMERA_CONTROL_GET_INTERFACE(control);
- if (klass && klass->stop_auto_focus) {
- return klass->stop_auto_focus(control);
+ if (iface->stop_auto_focus) {
+ return iface->stop_auto_focus(control);
}
return FALSE;
gboolean gst_camera_control_set_focus_level(GstCameraControl *control, gint manual_level)
{
- GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
+ GstCameraControlInterface *iface;
+
+ g_return_val_if_fail(GST_IS_CAMERA_CONTROL(control), FALSE);
+
+ iface = GST_CAMERA_CONTROL_GET_INTERFACE(control);
- if (klass && klass->set_focus_level) {
- return klass->set_focus_level(control, manual_level);
+ if (iface->set_focus_level) {
+ return iface->set_focus_level(control, manual_level);
}
return FALSE;
gboolean gst_camera_control_get_focus_level(GstCameraControl *control, gint *manual_level)
{
- GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
+ GstCameraControlInterface *iface;
- if (klass && klass->get_focus_level) {
- return klass->get_focus_level(control, manual_level);
+ g_return_val_if_fail(GST_IS_CAMERA_CONTROL(control), FALSE);
+
+ iface = GST_CAMERA_CONTROL_GET_INTERFACE(control);
+
+ if (iface->get_focus_level) {
+ return iface->get_focus_level(control, manual_level);
}
return FALSE;
gboolean gst_camera_control_set_auto_focus_area(GstCameraControl *control, GstCameraControlRectType rect)
{
- GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
+ GstCameraControlInterface *iface;
+
+ g_return_val_if_fail(GST_IS_CAMERA_CONTROL(control), FALSE);
- if (klass && klass->set_auto_focus_area) {
- return klass->set_auto_focus_area(control, rect);
+ iface = GST_CAMERA_CONTROL_GET_INTERFACE(control);
+
+ if (iface->set_auto_focus_area) {
+ return iface->set_auto_focus_area(control, rect);
}
return FALSE;
gboolean gst_camera_control_get_auto_focus_area(GstCameraControl *control, GstCameraControlRectType *rect)
{
- GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
+ GstCameraControlInterface *iface;
+
+ g_return_val_if_fail(GST_IS_CAMERA_CONTROL(control), FALSE);
+
+ iface = GST_CAMERA_CONTROL_GET_INTERFACE(control);
- if (klass && klass->get_auto_focus_area) {
- return klass->get_auto_focus_area(control, rect);
+ if (iface->get_auto_focus_area) {
+ return iface->get_auto_focus_area(control, rect);
}
return FALSE;
gboolean gst_camera_control_set_wdr(GstCameraControl *control, gint value)
{
- GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
+ GstCameraControlInterface *iface;
- if (klass && klass->set_wdr) {
- return klass->set_wdr(control, value);
+ g_return_val_if_fail(GST_IS_CAMERA_CONTROL(control), FALSE);
+
+ iface = GST_CAMERA_CONTROL_GET_INTERFACE(control);
+
+ if (iface->set_wdr) {
+ return iface->set_wdr(control, value);
}
return FALSE;
gboolean gst_camera_control_get_wdr(GstCameraControl *control, gint *value)
{
- GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
+ GstCameraControlInterface *iface;
+
+ g_return_val_if_fail(GST_IS_CAMERA_CONTROL(control), FALSE);
- if (klass && klass->get_wdr) {
- return klass->get_wdr(control, value);
+ iface = GST_CAMERA_CONTROL_GET_INTERFACE(control);
+
+ if (iface->get_wdr) {
+ return iface->get_wdr(control, value);
}
return FALSE;
gboolean gst_camera_control_set_ahs(GstCameraControl *control, gint value)
{
- GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
+ GstCameraControlInterface *iface;
+
+ g_return_val_if_fail(GST_IS_CAMERA_CONTROL(control), FALSE);
- if (klass && klass->set_ahs) {
- return klass->set_ahs(control, value);
+ iface = GST_CAMERA_CONTROL_GET_INTERFACE(control);
+
+ if (iface->set_ahs) {
+ return iface->set_ahs(control, value);
}
return FALSE;
gboolean gst_camera_control_get_ahs(GstCameraControl *control, gint *value)
{
- GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
+ GstCameraControlInterface *iface;
+
+ g_return_val_if_fail(GST_IS_CAMERA_CONTROL(control), FALSE);
+
+ iface = GST_CAMERA_CONTROL_GET_INTERFACE(control);
- if (klass && klass->get_ahs) {
- return klass->get_ahs(control, value);
+ if (iface->get_ahs) {
+ return iface->get_ahs(control, value);
}
return FALSE;
gboolean gst_camera_control_set_part_color(GstCameraControl *control, gint type, gint value)
{
- GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
+ GstCameraControlInterface *iface;
- if (klass && klass->set_part_color) {
- return klass->set_part_color(control, type, value);
+ g_return_val_if_fail(GST_IS_CAMERA_CONTROL(control), FALSE);
+
+ iface = GST_CAMERA_CONTROL_GET_INTERFACE(control);
+
+ if (iface->set_part_color) {
+ return iface->set_part_color(control, type, value);
}
return FALSE;
gboolean gst_camera_control_get_part_color(GstCameraControl *control, gint type, gint *value)
{
- GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
+ GstCameraControlInterface *iface;
+
+ g_return_val_if_fail(GST_IS_CAMERA_CONTROL(control), FALSE);
- if (klass && klass->get_part_color) {
- return klass->get_part_color(control, type, value);
+ iface = GST_CAMERA_CONTROL_GET_INTERFACE(control);
+
+ if (iface->get_part_color) {
+ return iface->get_part_color(control, type, value);
}
return FALSE;
gboolean
gst_camera_control_get_exif_info(GstCameraControl *control, GstCameraControlExifInfo *info)
{
- GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
+ GstCameraControlInterface *iface;
+
+ g_return_val_if_fail(GST_IS_CAMERA_CONTROL(control), FALSE);
+
+ iface = GST_CAMERA_CONTROL_GET_INTERFACE(control);
- if (klass && klass->get_exif_info) {
- return klass->get_exif_info(control, info);
+ if (iface->get_exif_info) {
+ return iface->get_exif_info(control, info);
}
return FALSE;
gboolean gst_camera_control_get_basic_dev_info(GstCameraControl *control, gint dev_id, GstCameraControlCapsInfoType *info)
{
- GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
+ GstCameraControlInterface *iface;
+
+ g_return_val_if_fail(GST_IS_CAMERA_CONTROL(control), FALSE);
+
+ iface = GST_CAMERA_CONTROL_GET_INTERFACE(control);
- if (klass && klass->get_basic_dev_info) {
- return klass->get_basic_dev_info(control, dev_id, info);
+ if (iface->get_basic_dev_info) {
+ return iface->get_basic_dev_info(control, dev_id, info);
}
return FALSE;
gboolean gst_camera_control_get_misc_dev_info(GstCameraControl *control, gint dev_id, GstCameraControlCtrlListInfoType *info)
{
- GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS( control );
+ GstCameraControlInterface *iface;
- if (klass && klass->get_misc_dev_info) {
- return klass->get_misc_dev_info( control, dev_id, info );
+ g_return_val_if_fail(GST_IS_CAMERA_CONTROL(control), FALSE);
+
+ iface = GST_CAMERA_CONTROL_GET_INTERFACE(control);
+
+ if (iface->get_misc_dev_info) {
+ return iface->get_misc_dev_info( control, dev_id, info );
}
return FALSE;
gboolean gst_camera_control_get_extra_dev_info(GstCameraControl *control, gint dev_id, GstCameraControlExtraInfoType *info)
{
- GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
+ GstCameraControlInterface *iface;
+
+ g_return_val_if_fail(GST_IS_CAMERA_CONTROL(control), FALSE);
- if (klass && klass->get_extra_dev_info) {
- return klass->get_extra_dev_info(control, dev_id, info);
+ iface = GST_CAMERA_CONTROL_GET_INTERFACE(control);
+
+ if (iface->get_extra_dev_info) {
+ return iface->get_extra_dev_info(control, dev_id, info);
}
return FALSE;
void gst_camera_control_set_capture_command(GstCameraControl *control, GstCameraControlCaptureCommand cmd)
{
- GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
+ GstCameraControlInterface *iface;
+
+ g_return_if_fail(GST_IS_CAMERA_CONTROL(control));
+
+ iface = GST_CAMERA_CONTROL_GET_INTERFACE(control);
- if (klass && klass->set_capture_command) {
- klass->set_capture_command(control, cmd);
+ if (iface->set_capture_command) {
+ iface->set_capture_command(control, cmd);
}
return;
void gst_camera_control_set_record_command(GstCameraControl *control, GstCameraControlRecordCommand cmd)
{
- GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
+ GstCameraControlInterface *iface;
- if (klass && klass->set_record_command) {
- klass->set_record_command(control, cmd);
+ g_return_if_fail(GST_IS_CAMERA_CONTROL(control));
+
+ iface = GST_CAMERA_CONTROL_GET_INTERFACE(control);
+
+ if (iface->set_record_command) {
+ iface->set_record_command(control, cmd);
}
return;
gboolean gst_camera_control_start_face_zoom(GstCameraControl *control, gint x, gint y, gint zoom_level)
{
- GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
+ GstCameraControlInterface *iface;
+
+ g_return_val_if_fail(GST_IS_CAMERA_CONTROL(control), FALSE);
- if (klass && klass->start_face_zoom) {
- return klass->start_face_zoom(control, x, y, zoom_level);
+ iface = GST_CAMERA_CONTROL_GET_INTERFACE(control);
+
+ if (iface->start_face_zoom) {
+ return iface->start_face_zoom(control, x, y, zoom_level);
}
return FALSE;
gboolean gst_camera_control_stop_face_zoom(GstCameraControl *control)
{
- GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
+ GstCameraControlInterface *iface;
+
+ g_return_val_if_fail(GST_IS_CAMERA_CONTROL(control), FALSE);
- if (klass && klass->stop_face_zoom) {
- return klass->stop_face_zoom(control);
+ iface = GST_CAMERA_CONTROL_GET_INTERFACE(control);
+
+ if (iface->stop_face_zoom) {
+ return iface->stop_face_zoom(control);
}
return FALSE;
gboolean gst_camera_control_set_ae_lock(GstCameraControl *control, gboolean lock)
{
- GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
+ GstCameraControlInterface *iface;
+
+ g_return_val_if_fail(GST_IS_CAMERA_CONTROL(control), FALSE);
+
+ iface = GST_CAMERA_CONTROL_GET_INTERFACE(control);
- if (klass && klass->set_ae_lock) {
- return klass->set_ae_lock(control, lock);
+ if (iface->set_ae_lock) {
+ return iface->set_ae_lock(control, lock);
}
return FALSE;
gboolean gst_camera_control_get_ae_lock(GstCameraControl *control, gboolean *lock)
{
- GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
+ GstCameraControlInterface *iface;
- if (klass && klass->get_ae_lock) {
- return klass->get_ae_lock(control, lock);
+ g_return_val_if_fail(GST_IS_CAMERA_CONTROL(control), FALSE);
+
+ iface = GST_CAMERA_CONTROL_GET_INTERFACE(control);
+
+ if (iface->get_ae_lock) {
+ return iface->get_ae_lock(control, lock);
}
return FALSE;
gboolean gst_camera_control_set_awb_lock(GstCameraControl *control, gboolean lock)
{
- GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
+ GstCameraControlInterface *iface;
+
+ g_return_val_if_fail(GST_IS_CAMERA_CONTROL(control), FALSE);
- if (klass && klass->set_awb_lock) {
- return klass->set_awb_lock(control, lock);
+ iface = GST_CAMERA_CONTROL_GET_INTERFACE(control);
+
+ if (iface->set_awb_lock) {
+ return iface->set_awb_lock(control, lock);
}
return FALSE;
gboolean gst_camera_control_get_awb_lock(GstCameraControl *control, gboolean *lock)
{
- GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
+ GstCameraControlInterface *iface;
+
+ g_return_val_if_fail(GST_IS_CAMERA_CONTROL(control), FALSE);
+
+ iface = GST_CAMERA_CONTROL_GET_INTERFACE(control);
- if (klass && klass->get_awb_lock) {
- return klass->get_awb_lock(control, lock);
+ if (iface->get_awb_lock) {
+ return iface->get_awb_lock(control, lock);
}
return FALSE;
gboolean gst_camera_control_set_user_buffer_fd(GstCameraControl *control, int *fds, int number)
{
- GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
+ GstCameraControlInterface *iface;
+
+ g_return_val_if_fail(GST_IS_CAMERA_CONTROL(control), FALSE);
+
+ iface = GST_CAMERA_CONTROL_GET_INTERFACE(control);
- if (klass && klass->set_user_buffer_fd) {
- return klass->set_user_buffer_fd(control, fds, number);
+ if (iface->set_user_buffer_fd) {
+ return iface->set_user_buffer_fd(control, fds, number);
}
return FALSE;