diff options
Diffstat (limited to 'gst-libs/gst/interfaces')
-rw-r--r-- | gst-libs/gst/interfaces/photography.c | 52 | ||||
-rw-r--r-- | gst-libs/gst/interfaces/photography.h | 9 |
2 files changed, 61 insertions, 0 deletions
diff --git a/gst-libs/gst/interfaces/photography.c b/gst-libs/gst/interfaces/photography.c index 4d62cf46..63f389ab 100644 --- a/gst-libs/gst/interfaces/photography.c +++ b/gst-libs/gst/interfaces/photography.c @@ -90,6 +90,8 @@ gst_photography_iface_init (GstPhotographyInterface * iface) iface->get_capabilities = NULL; iface->prepare_for_capture = NULL; iface->set_autofocus = NULL; + iface->set_config = NULL; + iface->get_config = NULL; } #define GST_PHOTOGRAPHY_FUNC_TEMPLATE(function_name, param_type) \ @@ -369,3 +371,53 @@ gst_photography_set_autofocus (GstPhotography * photo, gboolean on) iface->set_autofocus (photo, on); } } + +/** + * gst_photography_set_config: + * @photo: #GstPhotography interface of a #GstElement + * @config: #GstPhotoSettings containg the configuration + * + * Set all configuration settings at once. + * + * Returns: TRUE if configuration was set successfully, otherwise FALSE. + */ +gboolean +gst_photography_set_config (GstPhotography * photo, GstPhotoSettings *config) +{ + GstPhotographyInterface *iface; + gboolean ret = FALSE; + + g_return_val_if_fail (photo != NULL, FALSE); + + iface = GST_PHOTOGRAPHY_GET_IFACE (photo); + if (iface->set_config) { + ret = iface->set_config (photo, config); + } + + return ret; +} + +/** + * gst_photography_get_config: + * @photo: #GstPhotography interface of a #GstElement + * @config: #GstPhotoSettings containg the configuration + * + * Get all configuration settings at once. + * + * Returns: TRUE if configuration was got successfully, otherwise FALSE. + */ +gboolean +gst_photography_get_config (GstPhotography * photo, GstPhotoSettings * config) +{ + GstPhotographyInterface *iface; + gboolean ret = FALSE; + + g_return_val_if_fail (photo != NULL, FALSE); + + iface = GST_PHOTOGRAPHY_GET_IFACE (photo); + if (iface->get_config) { + ret = iface->get_config (photo, config); + } + + return ret; +} diff --git a/gst-libs/gst/interfaces/photography.h b/gst-libs/gst/interfaces/photography.h index b7f6b940..170151cb 100644 --- a/gst-libs/gst/interfaces/photography.h +++ b/gst-libs/gst/interfaces/photography.h @@ -181,6 +181,8 @@ typedef void (*GstPhotoCapturePrepared) (gpointer data, * @get_capabilities: vmethod to get supported capabilities of the interface * @prepare_for_capture: vmethod to tell the element to prepare for capturing * @set_autofocus: vmethod to set autofocus on/off + * @set_config: vmethod to set all configuration parameters at once + * @get_config: vmethod to get all configuration parameters at once * * #GstPhotographyInterface interface. */ @@ -221,6 +223,8 @@ typedef struct _GstPhotographyInterface gboolean (*prepare_for_capture) (GstPhotography * photo, GstPhotoCapturePrepared func, GstCaps *capture_caps, gpointer user_data); void (*set_autofocus) (GstPhotography * photo, gboolean on); + gboolean (*set_config) (GstPhotography * photo, GstPhotoSettings * config); + gboolean (*get_config) (GstPhotography * photo, GstPhotoSettings * config); /*< private > */ gpointer _gst_reserved[GST_PADDING]; @@ -270,6 +274,11 @@ gboolean gst_photography_prepare_for_capture (GstPhotography * photo, void gst_photography_set_autofocus (GstPhotography * photo, gboolean on); +gboolean gst_photography_set_config (GstPhotography * photo, + GstPhotoSettings * config); +gboolean gst_photography_get_config (GstPhotography * photo, + GstPhotoSettings * config); + G_END_DECLS #endif /* __GST_PHOTOGRAPHY_H__ */ |