/* clutter-gst-3.0.vapi generated by vapigen, do not modify. */

[CCode (cprefix = "ClutterGst", gir_namespace = "ClutterGst", gir_version = "3.0", lower_case_cprefix = "clutter_gst_")]
namespace ClutterGst {
	namespace Version {
		[CCode (cheader_filename = "clutter-gst/clutter-gst.h", cname = "CLUTTER_GST_VERSION_HEX")]
		public const int HEX;
		[CCode (cheader_filename = "clutter-gst/clutter-gst.h", cname = "CLUTTER_GST_MAJOR_VERSION")]
		public const int MAJOR;
		[CCode (cheader_filename = "clutter-gst/clutter-gst.h", cname = "CLUTTER_GST_MICRO_VERSION")]
		public const int MICRO;
		[CCode (cheader_filename = "clutter-gst/clutter-gst.h", cname = "CLUTTER_GST_MINOR_VERSION")]
		public const int MINOR;
		[CCode (cheader_filename = "clutter-gst/clutter-gst.h", cname = "CLUTTER_GST_VERSION_S")]
		public const string STRING;
		[CCode (cheader_filename = "clutter-gst/clutter-gst.h", cname = "CLUTTER_GST_CHECK_VERSION")]
		public static bool check (int major, int minor, int micro);
	}
	[CCode (cheader_filename = "clutter-gst/clutter-gst.h", type_id = "clutter_gst_aspectratio_get_type ()")]
	public class Aspectratio : ClutterGst.Content, Clutter.Content {
		[CCode (has_construct_function = false, type = "ClutterContent*")]
		public Aspectratio ();
		[NoAccessorMethod]
		[Version (since = "3.0")]
		public bool fill_allocation { get; set; }
		[NoAccessorMethod]
		[Version (since = "3.0")]
		public bool paint_borders { get; set; }
	}
	[CCode (cheader_filename = "clutter-gst/clutter-gst.h", copy_function = "g_boxed_copy", free_function = "g_boxed_free", type_id = "clutter_gst_box_get_type ()")]
	[Compact]
	[Version (since = "3.0")]
	public class Box {
		public float x1;
		public float x2;
		public float y1;
		public float y2;
		public float get_height ();
		public float get_width ();
	}
	[CCode (cheader_filename = "clutter-gst/clutter-gst.h", type_id = "clutter_gst_camera_get_type ()")]
	public class Camera : GLib.Object, ClutterGst.Player {
		[CCode (has_construct_function = false)]
		public Camera ();
		public bool get_brightness (double cur_value);
		public bool get_brightness_range (double min_value, double max_value, double default_value);
		public unowned ClutterGst.CameraDevice get_camera_device ();
		public bool get_color_balance_property (string property, double cur_value);
		public bool get_color_balance_property_range (string property, double min_value, double max_value, double default_value);
		public bool get_contrast (double cur_value);
		public bool get_contrast_range (double min_value, double max_value, double default_value);
		public unowned Gst.Element get_filter ();
		public bool get_gamma (double cur_value);
		public bool get_gamma_range (double min_value, double max_value, double default_value);
		public bool get_hue (double cur_value);
		public bool get_hue_range (double min_value, double max_value, double default_value);
		public bool get_saturation (double cur_value);
		public bool get_saturation_range (double min_value, double max_value, double default_value);
		public bool is_ready_for_capture ();
		public bool is_recording_video ();
		public bool remove_filter ();
		public bool set_brightness (double value);
		public bool set_camera_device (ClutterGst.CameraDevice device);
		public bool set_color_balance_property (string property, double value);
		public bool set_contrast (double value);
		public bool set_filter (Gst.Element filter);
		public bool set_gamma (double value);
		public bool set_hue (double value);
		public void set_photo_profile (Gst.PbUtils.EncodingProfile profile);
		public bool set_saturation (double value);
		public void set_video_profile (Gst.PbUtils.EncodingProfile profile);
		public bool start_video_recording (string filename);
		public void stop_video_recording ();
		public bool supports_color_balance ();
		public bool supports_gamma_correction ();
		public bool take_photo (string filename);
		public bool take_photo_pixbuf ();
		[NoAccessorMethod]
		public ClutterGst.CameraDevice device { owned get; set; }
		public virtual signal void photo_saved ();
		public virtual signal void photo_taken (Gdk.Pixbuf pixbuf);
		public virtual signal void ready_for_capture (bool ready);
		public virtual signal void video_saved ();
	}
	[CCode (cheader_filename = "clutter-gst/clutter-gst.h", type_id = "clutter_gst_camera_device_get_type ()")]
	public class CameraDevice : GLib.Object {
		[CCode (has_construct_function = false)]
		protected CameraDevice ();
		public void get_capture_resolution (out int width, out int height);
		public unowned string get_name ();
		public unowned string get_node ();
		public unowned GLib.GenericArray<ClutterGst.VideoResolution?> get_supported_resolutions ();
		public void set_capture_resolution (int width, int height);
		[NoAccessorMethod]
		public Gst.ElementFactory element_factory { owned get; construct; }
		public string name { get; construct; }
		public string node { get; construct; }
		public virtual signal void capture_resolution_changed (int width, int height);
	}
	[CCode (cheader_filename = "clutter-gst/clutter-gst.h", type_id = "clutter_gst_camera_manager_get_type ()")]
	public class CameraManager : GLib.Object {
		[CCode (has_construct_function = false)]
		protected CameraManager ();
		public unowned GLib.GenericArray<ClutterGst.CameraDevice> get_camera_devices ();
		public static unowned ClutterGst.CameraManager get_default ();
		public signal void camera_added (ClutterGst.CameraDevice camera_device);
		public signal void camera_removed (ClutterGst.CameraDevice camera_device);
	}
	[CCode (cheader_filename = "clutter-gst/clutter-gst.h", type_id = "clutter_gst_content_get_type ()")]
	[Version (since = "0.0")]
	public class Content : GLib.Object, Clutter.Content {
		[CCode (has_construct_function = false, type = "ClutterContent*")]
		public Content ();
		[Version (since = "3.0")]
		public unowned ClutterGst.Frame get_frame ();
		[Version (since = "3.0")]
		public unowned ClutterGst.Overlays get_overlays ();
		[Version (since = "3.0")]
		public unowned ClutterGst.Player get_player ();
		[Version (since = "3.0")]
		public unowned ClutterGst.VideoSink get_sink ();
		[NoWrapper]
		public virtual bool has_painting_content ();
		[Version (since = "3.0")]
		public void set_frame (ClutterGst.Frame frame);
		[Version (since = "3.0")]
		public void set_player (ClutterGst.Player player);
		[Version (since = "3.0")]
		public void set_sink (ClutterGst.VideoSink sink);
		[CCode (has_construct_function = false, type = "ClutterContent*")]
		[Version (since = "3.0")]
		public Content.with_sink (ClutterGst.VideoSink sink);
		public ClutterGst.Frame frame { get; set; }
		[NoAccessorMethod]
		public bool paint_frame { get; set; }
		[NoAccessorMethod]
		public bool paint_overlays { get; set; }
		public GLib.Object player { get; set; }
		public ClutterGst.VideoSink sink { get; set; }
		public signal void size_change (int width, int height);
	}
	[CCode (cheader_filename = "clutter-gst/clutter-gst.h", type_id = "clutter_gst_crop_get_type ()")]
	public class Crop : ClutterGst.Content, Clutter.Content {
		[CCode (has_construct_function = false, type = "ClutterActor*")]
		public Crop ();
		[NoAccessorMethod]
		[Version (since = "3.0")]
		public bool cull_backface { get; set; }
		[NoAccessorMethod]
		[Version (since = "3.0")]
		public ClutterGst.Box input_region { owned get; set; }
		[NoAccessorMethod]
		[Version (since = "3.0")]
		public ClutterGst.Box output_region { owned get; set; }
		[NoAccessorMethod]
		[Version (since = "3.0")]
		public bool paint_borders { get; set; }
	}
	[CCode (cheader_filename = "clutter-gst/clutter-gst.h", copy_function = "g_boxed_copy", free_function = "g_boxed_free", type_id = "clutter_gst_frame_get_type ()")]
	[Compact]
	[Version (since = "3.0")]
	public class Frame {
		public ClutterGst.VideoResolution resolution;
	}
	[CCode (cheader_filename = "clutter-gst/clutter-gst.h", copy_function = "g_boxed_copy", free_function = "g_boxed_free", type_id = "clutter_gst_overlay_get_type ()")]
	[Compact]
	[Version (since = "3.0")]
	public class Overlay {
		public weak ClutterGst.Box position;
	}
	[CCode (cheader_filename = "clutter-gst/clutter-gst.h", copy_function = "g_boxed_copy", free_function = "g_boxed_free", type_id = "clutter_gst_overlays_get_type ()")]
	[Compact]
	[Version (since = "3.0")]
	public class Overlays {
		public weak GLib.GenericArray<void*> overlays;
	}
	[CCode (cheader_filename = "clutter-gst/clutter-gst.h", type_id = "clutter_gst_playback_get_type ()")]
	public class Playback : GLib.Object, ClutterGst.Player {
		[CCode (has_construct_function = false)]
		public Playback ();
		[Version (since = "1.4")]
		public int get_audio_stream ();
		[Version (since = "1.4")]
		public unowned GLib.List<string> get_audio_streams ();
		public int64 get_buffer_duration ();
		public double get_buffer_fill ();
		public int get_buffer_size ();
		[Version (since = "1.4")]
		public ClutterGst.BufferingMode get_buffering_mode ();
		public double get_duration ();
		[Version (since = "1.6")]
		public bool get_in_seek ();
		public double get_position ();
		public double get_progress ();
		[Version (since = "1.4")]
		public ClutterGst.SeekFlags get_seek_flags ();
		public string get_subtitle_font_name ();
		[Version (since = "1.4")]
		public int get_subtitle_track ();
		[Version (since = "1.4")]
		public unowned GLib.List<string> get_subtitle_tracks ();
		public string get_subtitle_uri ();
		public string get_uri ();
		[Version (since = "1.4")]
		public string get_user_agent ();
		public bool is_live_media ();
		[Version (since = "1.4")]
		public void set_audio_stream (int index_);
		public void set_buffer_duration (int64 duration);
		public void set_buffer_size (int size);
		[Version (since = "1.4")]
		public void set_buffering_mode (ClutterGst.BufferingMode mode);
		public void set_filename (string filename);
		public void set_progress (double progress);
		[Version (since = "1.4")]
		public void set_seek_flags (ClutterGst.SeekFlags flags);
		public void set_subtitle_font_name (string font_name);
		[Version (since = "1.4")]
		public void set_subtitle_track (int index_);
		public void set_subtitle_uri (string uri);
		public void set_uri (string uri);
		[Version (since = "1.4")]
		public void set_user_agent (string user_agent);
		[Version (since = "1.4")]
		public int audio_stream { get; set; }
		[Version (since = "1.4")]
		public GLib.List<string> audio_streams { get; }
		public double buffer_fill { get; }
		[NoAccessorMethod]
		public bool can_seek { get; }
		public double duration { get; }
		[Version (since = "1.6")]
		public bool in_seek { get; }
		public double progress { get; set; }
		[Version (since = "1.4")]
		public ClutterGst.SeekFlags seek_flags { get; set; }
		public string subtitle_font_name { owned get; set; }
		[Version (since = "1.4")]
		public int subtitle_track { get; set; }
		[Version (since = "1.4")]
		public GLib.List<string> subtitle_tracks { get; }
		public string subtitle_uri { owned get; set; }
		public string uri { owned get; set; }
		[Version (since = "1.4")]
		public string user_agent { owned get; set; }
		[Version (since = "1.4")]
		public virtual signal bool should_buffer (Gst.Query query);
	}
	[CCode (cheader_filename = "clutter-gst/clutter-gst.h", type_id = "clutter_gst_video_sink_get_type ()")]
	[Version (since = "3.0")]
	public class VideoSink : Gst.Video.Sink, Gst.Video.ColorBalance, Gst.Video.Navigation {
		[CCode (has_construct_function = false)]
		public VideoSink ();
		public unowned ClutterGst.Frame get_frame ();
		public ClutterGst.Overlays get_overlays ();
		public bool is_ready ();
		[NoAccessorMethod]
		public int update_priority { get; set; }
		public virtual signal void new_frame ();
		public virtual signal void new_overlays ();
		public virtual signal void pipeline_ready ();
	}
	[CCode (cheader_filename = "clutter-gst/clutter-gst.h", type_id = "clutter_gst_player_get_type ()")]
	[Version (since = "1.4")]
	public interface Player : GLib.Object {
		[Version (since = "3.0")]
		public abstract double get_audio_volume ();
		[Version (since = "3.0")]
		public abstract unowned ClutterGst.Frame get_frame ();
		[Version (since = "3.0")]
		public abstract bool get_idle ();
		[Version (since = "3.0")]
		public abstract unowned Gst.Element get_pipeline ();
		[Version (since = "3.0")]
		public abstract bool get_playing ();
		[Version (since = "3.0")]
		public abstract unowned ClutterGst.VideoSink get_video_sink ();
		[Version (since = "3.0")]
		public abstract void set_audio_volume (double volume);
		[Version (since = "3.0")]
		public abstract void set_playing (bool playing);
		public abstract double audio_volume { get; set; }
		public abstract bool idle { get; }
		public abstract bool playing { get; set; }
		public virtual signal void eos ();
		public virtual signal void error (GLib.Error error);
		public virtual signal void new_frame (ClutterGst.Frame frame);
		public virtual signal void ready ();
		public virtual signal void size_change (int width, int height);
	}
	[CCode (cheader_filename = "clutter-gst/clutter-gst.h", has_type_id = false)]
	[Version (since = "3.0")]
	public struct VideoResolution {
		public int width;
		public int height;
		public int par_n;
		public int par_d;
	}
	[CCode (cheader_filename = "clutter-gst/clutter-gst.h", cprefix = "CLUTTER_GST_BUFFERING_MODE_", type_id = "clutter_gst_buffering_mode_get_type ()")]
	[Version (since = "1.4")]
	public enum BufferingMode {
		STREAM,
		DOWNLOAD
	}
	[CCode (cheader_filename = "clutter-gst/clutter-gst.h", cprefix = "CLUTTER_GST_SEEK_FLAG_", type_id = "clutter_gst_seek_flags_get_type ()")]
	[Flags]
	[Version (since = "1.4")]
	public enum SeekFlags {
		NONE,
		ACCURATE
	}
	[CCode (cheader_filename = "clutter-gst/clutter-gst.h", cname = "CLUTTER_GST_VERSION")]
	public const double VERSION;
	[CCode (cheader_filename = "clutter-gst/clutter-gst.h")]
	[Version (since = "3.0")]
	public static Gst.Element create_video_sink ();
	[CCode (cheader_filename = "clutter-gst/clutter-gst.h")]
	public static Clutter.InitError init ([CCode (array_length_cname = "argc", array_length_pos = 0.5)] ref unowned string[]? argv);
	[CCode (cheader_filename = "clutter-gst/clutter-gst.h")]
	[Version (since = "1.0")]
	public static Clutter.InitError init_with_args ([CCode (array_length_cname = "argc", array_length_pos = 0.5)] ref unowned string[]? argv, string parameter_string, [CCode (array_length = false, type = "GOptionEntry*")] GLib.OptionEntry[]? entries = null, string? translation_domain = null) throws GLib.Error;
}