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->list_channels) {
+ if (klass && klass->list_channels) {
return klass->list_channels(control);
}
{
GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
- if (klass->set_value) {
+ if (klass && klass->set_value) {
return klass->set_value(control, control_channel, value);
}
{
GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
- if (klass->get_value) {
+ if (klass && klass->get_value) {
return klass->get_value(control, control_channel, value);
}
{
GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
- if (klass->set_exposure) {
+ if (klass && klass->set_exposure) {
return klass->set_exposure(control, type, value1, value2);
}
{
GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
- if (klass->get_exposure) {
+ if (klass && klass->get_exposure) {
return klass->get_exposure(control, type, value1, value2);
}
{
GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
- if (klass->set_capture_mode) {
+ if (klass && klass->set_capture_mode) {
return klass->set_capture_mode(control, type, value);
}
{
GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
- if (klass->get_capture_mode) {
+ if (klass && klass->get_capture_mode) {
return klass->get_capture_mode(control, type, value);
}
{
GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
- if (klass->set_strobe) {
+ if (klass && klass->set_strobe) {
return klass->set_strobe(control, type, value);
}
{
GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
- if (klass->get_strobe) {
+ if (klass && klass->get_strobe) {
return klass->get_strobe(control, type, value);
}
{
GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
- if (klass->set_detect) {
+ if (klass && klass->set_detect) {
return klass->set_detect(control, type, value);
}
{
GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
- if (klass->get_detect) {
+ if (klass && klass->get_detect) {
return klass->get_detect(control, type, value);
}
{
GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
- if (klass->set_zoom) {
+ if (klass && klass->set_zoom) {
return klass->set_zoom(control, type, value);
}
{
GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
- if (klass->get_zoom) {
+ if (klass && klass->get_zoom) {
return klass->get_zoom(control, type, value);
}
{
GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
- if (klass->set_focus) {
+ if (klass && klass->set_focus) {
return klass->set_focus(control, mode, range);
}
{
GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
- if (klass->get_focus) {
+ if (klass && klass->get_focus) {
return klass->get_focus(control, mode, range);
}
{
GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
- if (klass->start_auto_focus) {
+ if (klass && klass->start_auto_focus) {
return klass->start_auto_focus(control);
}
{
GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
- if (klass->stop_auto_focus) {
+ if (klass && klass->stop_auto_focus) {
return klass->stop_auto_focus(control);
}
{
GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
- if (klass->set_focus_level) {
+ if (klass && klass->set_focus_level) {
return klass->set_focus_level(control, manual_level);
}
{
GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
- if (klass->get_focus_level) {
+ if (klass && klass->get_focus_level) {
return klass->get_focus_level(control, manual_level);
}
{
GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
- if (klass->set_auto_focus_area) {
+ if (klass && klass->set_auto_focus_area) {
return klass->set_auto_focus_area(control, rect);
}
{
GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
- if (klass->get_auto_focus_area) {
+ if (klass && klass->get_auto_focus_area) {
return klass->get_auto_focus_area(control, rect);
}
{
GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
- if (klass->set_wdr) {
+ if (klass && klass->set_wdr) {
return klass->set_wdr(control, value);
}
{
GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
- if (klass->get_wdr) {
+ if (klass && klass->get_wdr) {
return klass->get_wdr(control, value);
}
{
GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
- if (klass->set_ahs) {
+ if (klass && klass->set_ahs) {
return klass->set_ahs(control, value);
}
{
GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
- if (klass->get_ahs) {
+ if (klass && klass->get_ahs) {
return klass->get_ahs(control, value);
}
{
GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
- if (klass->set_part_color) {
+ if (klass && klass->set_part_color) {
return klass->set_part_color(control, type, value);
}
{
GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
- if (klass->get_part_color) {
+ if (klass && klass->get_part_color) {
return klass->get_part_color(control, type, value);
}
{
GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
- if (klass->get_exif_info) {
+ if (klass && klass->get_exif_info) {
return klass->get_exif_info(control, info);
}
{
GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
- if (klass->get_basic_dev_info) {
+ if (klass && klass->get_basic_dev_info) {
return klass->get_basic_dev_info(control, dev_id, info);
}
{
GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS( control );
- if( klass->get_misc_dev_info )
- {
+ if (klass && klass->get_misc_dev_info) {
return klass->get_misc_dev_info( control, dev_id, info );
}
{
GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
- if (klass->get_extra_dev_info) {
+ if (klass && klass->get_extra_dev_info) {
return klass->get_extra_dev_info(control, dev_id, info);
}
{
GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
- if (klass->set_capture_command) {
+ if (klass && klass->set_capture_command) {
klass->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);
+
+ if (klass && klass->set_record_command) {
+ klass->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);
- if (klass->start_face_zoom) {
+ if (klass && klass->start_face_zoom) {
return klass->start_face_zoom(control, x, y, zoom_level);
}
{
GstCameraControlClass *klass = GST_CAMERA_CONTROL_GET_CLASS(control);
- if (klass->stop_face_zoom) {
+ if (klass && klass->stop_face_zoom) {
return klass->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);
+
+ if (klass && klass->set_ae_lock) {
+ return klass->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);
+
+ if (klass && klass->get_ae_lock) {
+ return klass->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);
+
+ if (klass && klass->set_awb_lock) {
+ return klass->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);
+
+ if (klass && klass->get_awb_lock) {
+ return klass->get_awb_lock(control, lock);
+ }
+
+ return FALSE;
+}
+
void gst_camera_control_value_changed(GstCameraControl *control, GstCameraControlChannel *control_channel, gint value)
{
g_signal_emit(G_OBJECT(control), gst_camera_control_signals[CONTROL_VALUE_CHANGED], 0, control_channel, value);
(G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_CAMERA_CONTROL))
#define GST_IS_CAMERA_CONTROL_CLASS(klass) \
(G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_CAMERA_CONTROL))
-#define GST_CAMERA_CONTROL_TYPE(klass) (klass->camera_control_type)
+#define GST_CAMERA_CONTROL_TYPE(klass) (klass->camera_control_type)
typedef struct _GstCameraControl GstCameraControl;
-
+
typedef enum
{
// TODO : V4L2 Extend
{
GST_CAMERA_CONTROL_PART_COLOR_SRC,
GST_CAMERA_CONTROL_PART_COLOR_DST,
- GST_CAMERA_CONTROL_PART_COLOR_MODE,
+ GST_CAMERA_CONTROL_PART_COLOR_MODE,
} GstCameraControlPartColorType;
/**
GST_CAMERA_CONTROL_CAPTURE_COMMAND_STOP_MULTISHOT,
} GstCameraControlCaptureCommand;
-
+/**
+ * Enumerations for Camera record command.
+ */
+typedef enum
+{
+ GST_CAMERA_CONTROL_RECORD_COMMAND_NONE,
+ GST_CAMERA_CONTROL_RECORD_COMMAND_START,
+ GST_CAMERA_CONTROL_RECORD_COMMAND_STOP,
+} GstCameraControlRecordCommand;
/////////////////////////////////
// For Query functionalities //
gboolean (*get_misc_dev_info) (GstCameraControl *control, gint dev_id, GstCameraControlCtrlListInfoType *info);
gboolean (*get_extra_dev_info) (GstCameraControl *control, gint dev_id, GstCameraControlExtraInfoType *info);
void (*set_capture_command) (GstCameraControl *control, GstCameraControlCaptureCommand cmd);
+ void (*set_record_command) (GstCameraControl *control, GstCameraControlRecordCommand cmd);
gboolean (*start_face_zoom) (GstCameraControl *control, gint x, gint y, gint zoom_level);
gboolean (*stop_face_zoom) (GstCameraControl *control);
+ gboolean (*set_ae_lock) (GstCameraControl *control, gboolean lock);
+ gboolean (*get_ae_lock) (GstCameraControl *control, gboolean *lock);
+ gboolean (*set_awb_lock) (GstCameraControl *control, gboolean lock);
+ gboolean (*get_awb_lock) (GstCameraControl *control, gboolean *lock);
/* signals */
void (* value_changed) (GstCameraControl *control, GstCameraControlChannel *channel, gint value);
gboolean gst_camera_control_get_misc_dev_info (GstCameraControl *control, gint dev_id, GstCameraControlCtrlListInfoType *info);
gboolean gst_camera_control_get_extra_dev_info (GstCameraControl *control, gint dev_id, GstCameraControlExtraInfoType *info);
void gst_camera_control_set_capture_command (GstCameraControl *control, GstCameraControlCaptureCommand cmd);
+void gst_camera_control_set_record_command (GstCameraControl *control, GstCameraControlRecordCommand cmd);
gboolean gst_camera_control_start_face_zoom (GstCameraControl *control, gint x, gint y, gint zoom_level);
gboolean gst_camera_control_stop_face_zoom (GstCameraControl *control);
+gboolean gst_camera_control_set_ae_lock (GstCameraControl *control, gboolean lock);
+gboolean gst_camera_control_get_ae_lock (GstCameraControl *control, gboolean *lock);
+gboolean gst_camera_control_set_awb_lock (GstCameraControl *control, gboolean lock);
+gboolean gst_camera_control_get_awb_lock (GstCameraControl *control, gboolean *lock);
/* trigger signal */