Initial commit
[fillmore] / src / marina / marina / marina.vapi
diff --git a/src/marina/marina/marina.vapi b/src/marina/marina/marina.vapi
new file mode 100644 (file)
index 0000000..da6402c
--- /dev/null
@@ -0,0 +1,1033 @@
+/* marina.vapi generated by valac, do not modify. */
+
+[CCode (cprefix = "View", lower_case_cprefix = "view_")]
+namespace View {
+       [CCode (cheader_filename = "marina.h")]
+       public class AudioMeter : Gtk.DrawingArea {
+               public AudioMeter (Model.AudioTrack track);
+               public void on_channel_count_changed (int number_of_channels);
+               public bool on_expose_event (Gdk.EventExpose event);
+               public void on_level_changed (double level_left, double level_right);
+       }
+       [CCode (cheader_filename = "marina.h")]
+       public class AudioOutput : View.MediaConnector {
+               public AudioOutput (Gst.Caps caps) throws GLib.Error;
+               public override void connect (View.MediaEngine media_engine, Gst.Pipeline pipeline, Gst.Element[] elements);
+               public override void do_disconnect (View.MediaEngine media_engine, Gst.Pipeline pipeline, Gst.Element[] elements);
+       }
+       [CCode (cheader_filename = "marina.h")]
+       public class ClickTrack : GLib.Object {
+               public ClickTrack (View.MediaEngine engine, Model.Project project) throws GLib.Error;
+       }
+       [CCode (cheader_filename = "marina.h")]
+       public class MediaAudioTrack : View.MediaTrack {
+               public MediaAudioTrack (View.MediaEngine media_engine, Model.AudioTrack track) throws GLib.Error;
+               protected override Gst.Element empty_element () throws GLib.Error;
+               public override Gst.Element? get_element ();
+               public override void unlink_pad (Gst.Pad pad, Gst.Element track_element);
+               public signal void level_changed (double level_left, double level_right);
+       }
+       [CCode (cheader_filename = "marina.h")]
+       public abstract class MediaConnector : GLib.Object {
+               [CCode (cprefix = "VIEW_MEDIA_CONNECTOR_MEDIA_TYPES_", cheader_filename = "marina.h")]
+               public enum MediaTypes {
+                       Audio,
+                       Video
+               }
+               protected int AudioIndex;
+               protected int VideoIndex;
+               protected MediaConnector (View.MediaConnector.MediaTypes media_types);
+               public abstract void connect (View.MediaEngine media_engine, Gst.Pipeline pipeline, Gst.Element[] elements);
+               public abstract void do_disconnect (View.MediaEngine media_engine, Gst.Pipeline pipeline, Gst.Element[] elements);
+               protected bool has_audio ();
+               protected bool has_video ();
+       }
+       [CCode (cheader_filename = "marina.h")]
+       public class MediaEngine : MultiFileProgressInterface, GLib.Object {
+               public Gst.Element adder;
+               public Gst.Element converter;
+               protected Gst.State gst_state;
+               public Gst.Pipeline pipeline;
+               protected PlayState play_state;
+               public bool playing;
+               public int64 position;
+               public Gst.Bin record_bin;
+               public Model.Clip record_region;
+               public Model.AudioTrack record_track;
+               public MediaEngine (Model.Project project, bool include_video) throws GLib.Error;
+               protected Gst.Caps build_audio_caps (int num_channels);
+               public static void can_run () throws GLib.Error;
+               public void close ();
+               public void connect_output (View.MediaConnector connector);
+               public void disconnect_output (View.MediaConnector connector);
+               protected virtual void do_null_state_export (int64 length);
+               public void do_play (PlayState new_state);
+               protected bool do_state_change ();
+               public Gst.Element get_audio_silence () throws GLib.Error;
+               public PlayState get_play_state ();
+               public Gst.Caps get_project_audio_caps ();
+               public Gst.Caps get_project_audio_export_caps ();
+               protected Gst.Caps get_record_audio_caps ();
+               public int get_sample_depth ();
+               public int get_sample_rate ();
+               public int get_sample_width ();
+               public void go (int64 pos);
+               public void on_callback_pulse ();
+               public void on_load_complete ();
+               public void on_track_added (Model.Track track);
+               public virtual void pause ();
+               public void post_record ();
+               public void record (Model.AudioTrack track);
+               public void set_gst_state (Gst.State state);
+               public void set_play_state (PlayState play_state);
+               public void start_export (string filename);
+               public void start_record (Model.Clip region) throws GLib.Error;
+               public signal void callback_pulse ();
+               public signal void error_occurred (string major_message, string? minor_message);
+               public signal void level_changed (Gst.Object source, double level_left, double level_right);
+               public signal void link_for_export (Gst.Element mux);
+               public signal void link_for_playback (Gst.Element mux);
+               public signal void playstate_changed ();
+               public signal void position_changed (int64 position);
+               public signal void post_export (bool canceled);
+               public signal void pre_export (int64 length);
+               public signal void prepare_window ();
+               public signal void record_completed ();
+       }
+       [CCode (cheader_filename = "marina.h")]
+       public abstract class MediaTrack : GLib.Object {
+               protected Gst.Bin composition;
+               protected Gst.Element default_source;
+               protected weak View.MediaEngine media_engine;
+               protected Gst.Element sink;
+               public MediaTrack (View.MediaEngine media_engine, Model.Track track) throws GLib.Error;
+               protected abstract Gst.Element empty_element () throws GLib.Error;
+               public abstract Gst.Element? get_element ();
+               public abstract void link_new_pad (Gst.Pad pad, Gst.Element track_element);
+               public abstract void unlink_pad (Gst.Pad pad, Gst.Element track_element);
+               public signal void error_occurred (string major_message, string? minor_message);
+               public signal void track_removed (View.MediaTrack track);
+       }
+       [CCode (cheader_filename = "marina.h")]
+       public class MediaVideoTrack : View.MediaTrack {
+               public MediaVideoTrack (View.MediaEngine media_engine, Model.Track track, Gst.Element converter) throws GLib.Error;
+               protected override Gst.Element empty_element () throws GLib.Error;
+               public override Gst.Element? get_element ();
+               public override void link_new_pad (Gst.Pad pad, Gst.Element track_element);
+               public override void unlink_pad (Gst.Pad pad, Gst.Element track_element);
+       }
+       [CCode (cheader_filename = "marina.h")]
+       public class OggVorbisExport : View.MediaConnector {
+               public OggVorbisExport (View.MediaConnector.MediaTypes media_types, string filename, Gst.Caps caps) throws GLib.Error;
+               public override void connect (View.MediaEngine media_engine, Gst.Pipeline pipeline, Gst.Element[] elements);
+               public override void do_disconnect (View.MediaEngine media_engine, Gst.Pipeline pipeline, Gst.Element[] elements);
+               public string get_filename ();
+       }
+       [CCode (cheader_filename = "marina.h")]
+       public class Ruler : Gtk.DrawingArea {
+               public Ruler (Model.TimeSystem provider, int height);
+               public override bool button_press_event (Gdk.EventButton event);
+               public override bool expose_event (Gdk.EventExpose event);
+               public override bool motion_notify_event (Gdk.EventMotion event);
+               public signal void position_changed (int x);
+       }
+       [CCode (cheader_filename = "marina.h")]
+       public class StatusBar : Gtk.DrawingArea {
+               public StatusBar (Model.Project p, Model.TimeSystem provider, int height);
+               public override bool expose_event (Gdk.EventExpose e);
+               public void on_position_changed (int64 new_position);
+       }
+       [CCode (cheader_filename = "marina.h")]
+       public class VideoOutput : View.MediaConnector {
+               public VideoOutput (Gtk.Widget output_widget) throws GLib.Error;
+               public override void connect (View.MediaEngine media_engine, Gst.Pipeline pipeline, Gst.Element[] elements);
+               public override void do_disconnect (View.MediaEngine media_engine, Gst.Pipeline pipeline, Gst.Element[] elements);
+       }
+}
+[CCode (cprefix = "Model", lower_case_cprefix = "model_")]
+namespace Model {
+       [CCode (cheader_filename = "marina.h")]
+       public class AddClipCommand : Model.Command {
+               public AddClipCommand (Model.Project project, Model.ClipFile clip_file);
+               public override void apply ();
+               public override string description ();
+               public override bool merge (Model.Command command);
+               public override void undo ();
+       }
+       [CCode (cheader_filename = "marina.h")]
+       public class AudioTrack : Model.Track {
+               public const int INVALID_CHANNEL_COUNT;
+               public AudioTrack (Model.Project project, string display_name);
+               public void _set_pan (double new_value);
+               public void _set_volume (double new_volume);
+               public override bool check (Model.Clip clip);
+               public bool get_num_channels (out int num);
+               public double get_pan ();
+               public double get_volume ();
+               public override Model.MediaType media_type ();
+               protected override string name ();
+               public override void on_clip_updated (Model.Clip clip);
+               public void on_level_changed (double level_left, double level_right);
+               public void set_default_num_channels (int num);
+               public void set_pan (double new_value);
+               public void set_volume (double new_volume);
+               public override void write_attributes (GLib.FileStream f);
+               public signal void channel_count_changed (int channel_count);
+               public signal void level_changed (double level_left, double level_right);
+               public signal void parameter_changed (Model.Parameter parameter, double new_value);
+       }
+       [CCode (cheader_filename = "marina.h")]
+       public class BarBeatTimeSystem : Model.TimeSystem, Model.TimeSystemBase {
+               public BarBeatTimeSystem (Model.TempoInformation tempo_information);
+       }
+       [CCode (cheader_filename = "marina.h")]
+       public class BpmCommand : Model.Command {
+               public BpmCommand (Model.Project project, int new_bpm);
+               public override void apply ();
+               public override string description ();
+               public override bool merge (Model.Command command);
+               public override void undo ();
+       }
+       [CCode (cheader_filename = "marina.h")]
+       public class Clip : GLib.Object {
+               public Model.ClipFile clipfile;
+               public bool is_recording;
+               public string name;
+               public Model.MediaType type;
+               public Clip (Model.ClipFile clipfile, Model.MediaType t, string name, int64 start, int64 media_start, int64 duration, bool is_recording);
+               public Model.Clip copy ();
+               public void gnonlin_connect ();
+               public void gnonlin_disconnect ();
+               public bool is_trimmed ();
+               public bool overlap_pos (int64 start, int64 length);
+               public void save (GLib.FileStream f, int id);
+               public void set_media_start_duration (int64 media_start, int64 duration);
+               public int64 snap (Model.Clip other, int64 pad);
+               public bool snap_coord (out int64 s, int64 span);
+               public void trim (int64 delta, Gdk.WindowEdge edge);
+               public int64 duration { get; set; }
+               public int64 end { get; }
+               public int64 media_start { get; }
+               public int64 start { get; set; }
+               public signal void duration_changed (int64 duration);
+               public signal void media_start_changed (int64 media_start);
+               public signal void moved (Model.Clip clip);
+               public signal void removed (Model.Clip clip);
+               public signal void start_changed (int64 start);
+               public signal void updated (Model.Clip clip);
+       }
+       [CCode (cheader_filename = "marina.h")]
+       public class ClipAddCommand : Model.Command {
+               public ClipAddCommand (Model.Track track, Model.Clip clip, int64 original_time, int64 new_start);
+               public override void apply ();
+               public override string description ();
+               public override bool merge (Model.Command command);
+               public override void undo ();
+       }
+       [CCode (cheader_filename = "marina.h")]
+       public class ClipCommand : Model.Command {
+               [CCode (cprefix = "MODEL_CLIP_COMMAND_ACTION_", cheader_filename = "marina.h")]
+               public enum Action {
+                       APPEND,
+                       DELETE
+               }
+               public ClipCommand (Model.ClipCommand.Action action, Model.Track track, Model.Clip clip, int64 time, bool select);
+               public override void apply ();
+               public override string description ();
+               public override bool merge (Model.Command command);
+               public override void undo ();
+       }
+       [CCode (cheader_filename = "marina.h")]
+       public class ClipFetcher : Model.Fetcher {
+               public ClipFetcher (string filename) throws GLib.Error;
+               public string get_filename ();
+               protected override void on_pad_added (Gst.Pad pad);
+               protected override void on_state_change (Gst.Bus bus, Gst.Message message);
+               public signal void clipfile_online (bool online);
+       }
+       [CCode (cheader_filename = "marina.h")]
+       public class ClipFile : GLib.Object {
+               public Gst.Caps audio_caps;
+               public string filename;
+               public Gdk.Pixbuf thumbnail;
+               public Gst.Caps video_caps;
+               public ClipFile (string filename, int64 length = 0);
+               public bool get_dimensions (out int w, out int h);
+               public bool get_frame_rate (out Fraction rate);
+               public bool get_num_channels (out int channels);
+               public bool get_num_channels_string (out string s);
+               public bool get_sample_rate (out int rate);
+               public bool get_video_format (out uint32 fourcc);
+               public bool has_caps_structure (Model.MediaType m);
+               public bool is_of_type (Model.MediaType t);
+               public bool is_online ();
+               public void set_online (bool o);
+               public void set_thumbnail (Gdk.Pixbuf b);
+               public int64 length { get; set; }
+               public signal void updated ();
+       }
+       [CCode (cheader_filename = "marina.h")]
+       public class ClipFileDeleteCommand : Model.Command {
+               public ClipFileDeleteCommand (Model.Project p, Model.ClipFile cf);
+               public override void apply ();
+               public override string description ();
+               public override bool merge (Model.Command command);
+               public override void undo ();
+       }
+       [CCode (cheader_filename = "marina.h")]
+       public class ClipImporter : MultiFileProgressInterface, GLib.Object {
+               public ClipImporter ();
+               public void add_filename (string filename);
+               public void start () throws GLib.Error;
+               public signal void clip_complete (Model.ClipFile f);
+               public signal void error_occurred (string error);
+               public signal void importing_started (int num_clips);
+       }
+       [CCode (cheader_filename = "marina.h")]
+       public class ClipRevertCommand : Model.Command {
+               public ClipRevertCommand (Model.Track track, Model.Clip clip);
+               public override void apply ();
+               public override string description ();
+               public override bool merge (Model.Command command);
+               public override void undo ();
+       }
+       [CCode (cheader_filename = "marina.h")]
+       public class ClipSplitCommand : Model.Command {
+               [CCode (cprefix = "MODEL_CLIP_SPLIT_COMMAND_ACTION_", cheader_filename = "marina.h")]
+               public enum Action {
+                       SPLIT,
+                       JOIN
+               }
+               public ClipSplitCommand (Model.ClipSplitCommand.Action action, Model.Track track, int64 time);
+               public override void apply ();
+               public override string description ();
+               public override bool merge (Model.Command command);
+               public override void undo ();
+       }
+       [CCode (cheader_filename = "marina.h")]
+       public class ClipTrimCommand : Model.Command {
+               public ClipTrimCommand (Model.Track track, Model.Clip clip, int64 delta, Gdk.WindowEdge edge);
+               public override void apply ();
+               public override string description ();
+               public override bool merge (Model.Command command);
+               public override void undo ();
+       }
+       [CCode (ref_function = "model_command_ref", unref_function = "model_command_unref", cheader_filename = "marina.h")]
+       public abstract class Command {
+               public Command ();
+               public abstract void apply ();
+               public abstract string description ();
+               public abstract bool merge (Model.Command command);
+               public abstract void undo ();
+       }
+       [CCode (cheader_filename = "marina.h")]
+       public abstract class Fetcher : GLib.Object {
+               public Model.ClipFile clipfile;
+               protected Gst.Element decodebin;
+               public string error_string;
+               protected Gst.Element filesrc;
+               protected Gst.Pipeline pipeline;
+               public Fetcher ();
+               protected void do_error (string error);
+               protected void on_error (Gst.Bus bus, Gst.Message message);
+               protected abstract void on_pad_added (Gst.Pad pad);
+               protected abstract void on_state_change (Gst.Bus bus, Gst.Message message);
+               protected void on_warning (Gst.Bus bus, Gst.Message message);
+               public signal void ready (Model.Fetcher fetcher);
+       }
+       [CCode (ref_function = "model_fetcher_completion_ref", unref_function = "model_fetcher_completion_unref", cheader_filename = "marina.h")]
+       public class FetcherCompletion {
+               public FetcherCompletion ();
+               public virtual void complete (Model.Fetcher fetcher);
+       }
+       [CCode (ref_function = "model_gap_ref", unref_function = "model_gap_unref", cheader_filename = "marina.h")]
+       public class Gap {
+               public int64 end;
+               public int64 start;
+               public Gap (int64 start, int64 end);
+               public Model.Gap intersect (Model.Gap g);
+               public bool is_empty ();
+       }
+       [CCode (cheader_filename = "marina.h")]
+       public class LibraryImporter : GLib.Object {
+               public Model.ClipImporter importer;
+               protected Model.Project project;
+               public LibraryImporter (Model.Project p);
+               public void add_file (string filename) throws GLib.Error;
+               protected virtual void append_existing_clipfile (Model.ClipFile f);
+               protected virtual void on_clip_complete (Model.ClipFile f);
+               public void start () throws GLib.Error;
+               public signal void started (Model.ClipImporter i, int num);
+       }
+       [CCode (cheader_filename = "marina.h")]
+       public class LoaderHandler : GLib.Object {
+               public LoaderHandler ();
+               public virtual bool commit_click (string[] attr_names, string[] attr_values);
+               public virtual bool commit_clip (string[] attr_names, string[] attr_values);
+               public virtual bool commit_clipfile (string[] attr_names, string[] attr_values);
+               public virtual bool commit_library (string[] attr_names, string[] attr_values);
+               public virtual bool commit_library_preference (string[] attr_names, string[] attr_values);
+               public virtual bool commit_marina (string[] attr_names, string[] attr_values);
+               public virtual bool commit_tempo_entry (string[] attr_names, string[] attr_values);
+               public virtual bool commit_time_signature_entry (string[] attr_names, string[] attr_values);
+               public virtual bool commit_track (string[] attr_names, string[] attr_values);
+               public virtual void leave_clip ();
+               public virtual void leave_clipfile ();
+               public virtual void leave_library ();
+               public virtual void leave_marina ();
+               public virtual void leave_track ();
+               public signal void complete ();
+               public signal void load_error (string error_message);
+       }
+       [CCode (cheader_filename = "marina.h")]
+       public class MediaLoaderHandler : Model.LoaderHandler {
+               protected Model.Track current_track;
+               protected weak Model.Project the_project;
+               public MediaLoaderHandler (Model.Project the_project);
+               public override bool commit_click (string[] attr_names, string[] attr_values);
+               public override bool commit_clip (string[] attr_names, string[] attr_values);
+               public override bool commit_clipfile (string[] attr_names, string[] attr_values);
+               public override bool commit_library (string[] attr_names, string[] attr_values);
+               public override bool commit_library_preference (string[] attr_names, string[] attr_values);
+               public override bool commit_marina (string[] attr_names, string[] attr_values);
+               public override bool commit_tempo_entry (string[] attr_names, string[] attr_values);
+               public override bool commit_time_signature_entry (string[] attr_names, string[] attr_values);
+               public override bool commit_track (string[] attr_names, string[] attr_values);
+               public override void leave_library ();
+               public override void leave_track ();
+       }
+       [CCode (cheader_filename = "marina.h")]
+       public class ParameterCommand : Model.Command {
+               public ParameterCommand (Model.AudioTrack target, Model.Parameter parameter, double new_value, double old_value);
+               public override void apply ();
+               public override string description ();
+               public override bool merge (Model.Command command);
+               public override void undo ();
+       }
+       [CCode (cheader_filename = "marina.h")]
+       public abstract class Project : Model.TempoInformation, GLib.Object {
+               public static Fraction INVALID_FRAME_RATE;
+               public bool click_during_play;
+               public bool click_during_record;
+               public double click_volume;
+               protected Gee.ArrayList<Model.ClipFile> clipfiles;
+               public Fraction default_framerate;
+               public Model.LibraryImporter importer;
+               public Gee.ArrayList<Model.Track> inactive_tracks;
+               public bool library_visible;
+               public int library_width;
+               public Model.ProjectLoader loader;
+               public View.MediaEngine media_engine;
+               protected string project_file;
+               public bool snap_to_clip;
+               public Gee.ArrayList<Model.Track> tracks;
+               public Model.UndoManager undo_manager;
+               public const string FILLMORE_FILE_EXTENSION;
+               public const string FILLMORE_FILE_FILTER;
+               public const string LOMBARD_FILE_EXTENSION;
+               public const string LOMBARD_FILE_FILTER;
+               public const string[] authors;
+               public Project (string? filename, bool include_video) throws GLib.Error;
+               public void _add_clipfile (Model.ClipFile clipfile) throws GLib.Error;
+               public void _remove_clipfile (Model.ClipFile cf);
+               public void _set_bpm (int bpm);
+               public void _set_time_signature (Fraction time_signature);
+               public void add (Model.Track track, Model.ClipFile clipfile, int64 time);
+               public void add_clipfile (Model.ClipFile clipfile);
+               public void add_inactive_track (Model.Track track);
+               public virtual void add_track (Model.Track track);
+               public void append (Model.Track track, Model.ClipFile clipfile);
+               public bool can_delete_gap (Model.Gap gap);
+               public bool can_export ();
+               public bool can_trim (out bool left);
+               public void clear ();
+               public bool clipfile_on_track (string filename);
+               public void close ();
+               public void create_clip_fetcher (Model.FetcherCompletion fetcher_completion, string filename) throws GLib.Error;
+               public void create_clip_importer (Model.Track? track, bool timeline_add, int64 time_to_add, bool both_tracks, Gtk.Window? progress_window_parent, int number);
+               public void delete_gap (Model.Gap gap);
+               protected virtual void do_append (Model.Track track, Model.ClipFile clipfile, string name, int64 insert_time);
+               public void do_command (Model.Command the_command);
+               public Model.AudioTrack? find_audio_track ();
+               public Model.ClipFile? find_clipfile (string filename);
+               public Model.VideoTrack? find_video_track ();
+               public abstract string get_app_name ();
+               public string get_audio_path ();
+               public abstract TimeCode get_clip_time (Model.ClipFile f);
+               public Model.ClipFile? get_clipfile (int index);
+               public int get_clipfile_index (Model.ClipFile find);
+               public string get_file_display_name ();
+               public int get_file_version ();
+               public int64 get_length ();
+               public string get_license ();
+               public virtual string? get_project_file ();
+               public string get_version ();
+               public void go_end ();
+               public void go_next ();
+               public void go_previous ();
+               public void go_start ();
+               public virtual void insert_track (int index, Model.Track track);
+               public bool is_duplicate_track_name (Model.Track? track, string new_name);
+               public bool is_project_extension (string filename);
+               public virtual void load (string? fname);
+               public void on_clip_removed (Model.Track t, Model.Clip clip);
+               public void on_error_occurred (string major_error, string? minor_error);
+               public void on_importer_clip_complete (Model.ClipFetcher fetcher);
+               public void on_load_started (string filename);
+               public void on_playstate_changed ();
+               public bool playhead_on_clip ();
+               public bool playhead_on_contiguous_clip ();
+               public void print_graph (Gst.Bin bin, string file_name);
+               public void remove_clipfile (string filename);
+               public void remove_track (Model.Track track);
+               public void remove_track_at (int index);
+               public void reseek ();
+               public virtual void save (string? filename);
+               public void save_library (GLib.FileStream f);
+               public void set_bpm (int bpm);
+               public void set_default_framerate (Fraction rate);
+               public void set_name (string? filename);
+               public void set_time_signature (Fraction time_signature);
+               public int64 snap_clip (Model.Clip c, int64 span);
+               public void snap_coord (out int64 coord, int64 span);
+               public void split_at_playhead ();
+               public Model.Track? track_from_clip (Model.Clip clip);
+               public int64 transport_get_position ();
+               public void transport_go (int64 position);
+               public bool transport_is_playing ();
+               public bool transport_is_recording ();
+               public void trim_to_playhead ();
+               public void undo ();
+               public signal void cleared ();
+               public signal void clipfile_added (Model.ClipFile c);
+               public signal void clipfile_removed (Model.ClipFile clip_file);
+               public signal void closed ();
+               public signal void error_occurred (string major_message, string? minor_message);
+               public virtual signal void load_complete ();
+               public signal void load_error (string error);
+               public signal void name_changed (string? project_file);
+               public signal void playstate_changed (PlayState playstate);
+               public signal void track_added (Model.Track track);
+               public signal void track_removed (Model.Track track);
+       }
+       [CCode (cheader_filename = "marina.h")]
+       public class ProjectLoader : GLib.Object {
+               public ProjectLoader (Model.LoaderHandler loader_handler, string? file_name);
+               public void load ();
+               public signal void load_complete ();
+               public signal void load_error (string error);
+               public signal void load_started (string filename);
+       }
+       [CCode (cheader_filename = "marina.h")]
+       public class ThumbnailFetcher : Model.Fetcher {
+               public ThumbnailFetcher (Model.ClipFile f, int64 time) throws GLib.Error;
+               protected override void on_pad_added (Gst.Pad pad);
+               protected override void on_state_change (Gst.Bus bus, Gst.Message message);
+       }
+       [CCode (cheader_filename = "marina.h")]
+       public class TimeSignatureCommand : Model.Command {
+               public TimeSignatureCommand (Model.Project project, Fraction new_time_signature);
+               public override void apply ();
+               public override string description ();
+               public override bool merge (Model.Command command);
+               public override void undo ();
+       }
+       [CCode (cheader_filename = "marina.h")]
+       public abstract class TimeSystemBase : GLib.Object {
+               public float pixel_percentage;
+               public int64 pixel_snap_time;
+               public float pixels_per_second;
+               public const int PIXEL_SNAP_INTERVAL;
+               public TimeSystemBase ();
+               protected int correct_seconds_value (float seconds, int div, int fps);
+               public float get_pixel_percentage ();
+               public int64 get_pixel_snap_time ();
+               public int time_to_xpos (int64 time);
+               public int time_to_xsize (int64 time);
+               public int64 xpos_to_time (int x);
+               public int64 xsize_to_time (int size);
+       }
+       [CCode (cheader_filename = "marina.h")]
+       public class TimecodeTimeSystem : Model.TimeSystem, Model.TimeSystemBase {
+               public Fraction frame_rate_fraction;
+               public TimecodeTimeSystem ();
+       }
+       [CCode (cheader_filename = "marina.h")]
+       public class TimelineImporter : Model.LibraryImporter {
+               public TimelineImporter (Model.Track track, Model.Project p, int64 time_to_add, bool both_tracks);
+               protected override void append_existing_clipfile (Model.ClipFile f);
+               protected override void on_clip_complete (Model.ClipFile f);
+       }
+       [CCode (cheader_filename = "marina.h")]
+       public abstract class Track : GLib.Object {
+               public Gee.ArrayList<Model.Clip> clips;
+               public string display_name;
+               protected weak Model.Project project;
+               public Track (Model.Project project, string display_name);
+               public void _append_at_time (Model.Clip c, int64 time, bool select);
+               public void _delete_clip (Model.Clip clip);
+               public void _join (int64 position);
+               public void _move (Model.Clip c, int64 pos);
+               public void _revert_to_original (Model.Clip c);
+               public void _split_at (int64 position);
+               public void _trim (Model.Clip clip, int64 delta, Gdk.WindowEdge edge);
+               public void add (Model.Clip c, int64 pos, bool select);
+               public void append_at_time (Model.Clip c, int64 time, bool select);
+               public bool are_contiguous_clips (int64 position);
+               protected abstract bool check (Model.Clip clip);
+               public bool clip_is_near (Model.Clip clip, int64 range, out int64 adjustment);
+               public bool contains_clipfile (Model.ClipFile f);
+               public void delete_all_clips ();
+               public void delete_clip (Model.Clip clip);
+               public void delete_gap (Model.Gap g);
+               public void do_clip_paste (Model.Clip clip, int64 position);
+               public void find_containing_gap (int64 time, out Model.Gap g);
+               public Model.Gap find_first_gap (int64 start);
+               public Model.Clip? find_nearest_clip_edge (int64 time, out bool after);
+               public Model.Clip? find_overlapping_clip (int64 start, int64 length);
+               public Model.Clip? get_clip (int i);
+               public Model.Clip? get_clip_by_position (int64 pos);
+               public int get_clip_index (Model.Clip c);
+               public string get_display_name ();
+               public bool get_is_selected ();
+               public int64 get_length ();
+               public int64 get_time_from_pos (Model.Clip clip, bool after);
+               public void hide ();
+               public void join (int64 position);
+               public abstract Model.MediaType media_type ();
+               public void move (Model.Clip c, int64 pos, int64 original_time);
+               protected abstract string name ();
+               public int64 next_edit (int64 pos);
+               public virtual void on_clip_updated (Model.Clip clip);
+               public int64 previous_edit (int64 pos);
+               public void remove_clip_from_array (Model.Clip pos);
+               public void revert_to_original (Model.Clip clip);
+               public void save (GLib.FileStream f);
+               public void set_display_name (string new_display_name);
+               public void set_selected (bool is_selected);
+               public int64 snap_clip (Model.Clip c, int64 span);
+               public bool snap_coord (out int64 coord, int64 span);
+               public void split_at (int64 position);
+               public void trim (Model.Clip clip, int64 delta, Gdk.WindowEdge edge);
+               public virtual void write_attributes (GLib.FileStream f);
+               public signal void clip_added (Model.Clip clip, bool select);
+               public signal void clip_removed (Model.Clip clip);
+               public signal void error_occurred (string major_error, string? minor_error);
+               public signal void track_hidden (Model.Track track);
+               public signal void track_removed (Model.Track track);
+               public signal void track_renamed (Model.Track track);
+               public signal void track_selection_changed (Model.Track track);
+       }
+       [CCode (cheader_filename = "marina.h")]
+       public class TransactionCommand : Model.Command {
+               public TransactionCommand (bool open, string transaction_description);
+               public override void apply ();
+               public override string description ();
+               public bool in_transaction ();
+               public override bool merge (Model.Command command);
+               public override void undo ();
+       }
+       [CCode (ref_function = "model_undo_manager_ref", unref_function = "model_undo_manager_unref", cheader_filename = "marina.h")]
+       public class UndoManager {
+               public UndoManager ();
+               public void do_command (Model.Command the_command);
+               public void end_transaction (string description);
+               public string get_undo_title ();
+               public void mark_clean ();
+               public void reset ();
+               public void start_transaction (string description);
+               public void undo ();
+               public bool can_undo { get; }
+               public bool in_undo { get; set; }
+               public bool is_dirty { get; }
+               public signal void dirty_changed (bool is_dirty);
+               public signal void undo_changed (bool can_undo);
+       }
+       [CCode (cheader_filename = "marina.h")]
+       public class VideoTrack : Model.Track {
+               public VideoTrack (Model.Project project);
+               protected override bool check (Model.Clip clip);
+               public int get_current_frame (int64 time);
+               public bool get_framerate (out Fraction rate);
+               public override Model.MediaType media_type ();
+               protected override string name ();
+               public int64 next_frame (int64 position);
+               public int64 previous_frame (int64 position);
+       }
+       [CCode (ref_function = "model_xml_element_ref", unref_function = "model_xml_element_unref", cheader_filename = "marina.h")]
+       public class XmlElement {
+               public string[] attribute_names;
+               public string[] attribute_values;
+               public XmlElement (string name, string[] attribute_names, string[] attribute_values, Model.XmlElement? parent);
+               public void add_child (Model.XmlElement child_element);
+               public Gee.ArrayList<Model.XmlElement> children { get; }
+               public string name { get; set; }
+               public Model.XmlElement? parent { get; set; }
+       }
+       [CCode (ref_function = "model_xml_tree_loader_ref", unref_function = "model_xml_tree_loader_unref", cheader_filename = "marina.h")]
+       public class XmlTreeLoader {
+               public Model.XmlElement root;
+               public XmlTreeLoader (string document);
+       }
+       [CCode (cheader_filename = "marina.h")]
+       public interface TempoInformation {
+               public abstract int get_bpm ();
+               public abstract Fraction get_time_signature ();
+               public signal void bpm_changed (int bpm);
+               public signal void time_signature_changed (Fraction time_signature);
+       }
+       [CCode (cheader_filename = "marina.h")]
+       public interface TimeSystem : GLib.Object {
+               public abstract void calculate_pixel_step (float inc, float pixel_min, float pixel_div);
+               public abstract int frame_to_xsize (int frame);
+               public abstract string? get_display_string (int token);
+               public abstract int get_next_position (int token);
+               public abstract int get_pixel_height (int token);
+               public abstract float get_pixel_percentage ();
+               public abstract int64 get_pixel_snap_time ();
+               public abstract int get_start_token (int xsize);
+               public abstract string get_time_duration (int64 time);
+               public abstract string get_time_string (int64 time);
+               public abstract int time_to_xpos (int64 time);
+               public abstract int time_to_xsize (int64 time);
+               public abstract int64 xpos_to_time (int x);
+               public abstract int xsize_to_frame (int xsize);
+               public abstract int64 xsize_to_time (int x);
+               public signal void geometry_changed ();
+       }
+       [CCode (cprefix = "MODEL_MEDIA_TYPE_", cheader_filename = "marina.h")]
+       public enum MediaType {
+               AUDIO,
+               VIDEO
+       }
+       [CCode (cprefix = "MODEL_PARAMETER_", cheader_filename = "marina.h")]
+       public enum Parameter {
+               PAN,
+               VOLUME
+       }
+}
+[CCode (cprefix = "DialogUtils", lower_case_cprefix = "dialog_utils_")]
+namespace DialogUtils {
+       [CCode (type_id = "DIALOG_UTILS_TYPE_FILTER_DESCRIPTION_STRUCT", cheader_filename = "marina.h")]
+       public struct filter_description_struct {
+               public string name;
+               public string extension;
+       }
+       [CCode (cheader_filename = "marina.h")]
+       public static Gtk.ResponseType add_cancel (string message);
+       [CCode (cheader_filename = "marina.h")]
+       public static bool confirm_replace (Gtk.Window? parent, string filename);
+       [CCode (cheader_filename = "marina.h")]
+       public static Gtk.ResponseType delete_cancel (string message);
+       [CCode (cheader_filename = "marina.h")]
+       public static Gtk.ResponseType delete_keep (string message);
+       [CCode (cheader_filename = "marina.h")]
+       public static void error (string major_message, string? minor_message);
+       [CCode (cheader_filename = "marina.h")]
+       public static bool open (Gtk.Window parent, DialogUtils.filter_description_struct[] filter_descriptions, bool allow_multiple, bool allow_all, out GLib.SList<string> filenames);
+       [CCode (cheader_filename = "marina.h")]
+       public static bool save (Gtk.Window parent, string title, bool create_directory, DialogUtils.filter_description_struct[] filter_descriptions, ref string filename);
+       [CCode (cheader_filename = "marina.h")]
+       public static Gtk.ResponseType save_close_cancel (Gtk.Window? parent, string? title, string message);
+       [CCode (cheader_filename = "marina.h")]
+       public static void show_clip_properties (Gtk.Window parent, ClipView? selected_clip, Model.ClipFile? clip_file, Fraction? frames_per_second);
+       [CCode (cheader_filename = "marina.h")]
+       public static void warning (string major_message, string? minor_message);
+}
+[CCode (cprefix = "Logging", lower_case_cprefix = "logging_")]
+namespace Logging {
+       [CCode (cprefix = "LOGGING_FACILITY_", cheader_filename = "marina.h")]
+       public enum Facility {
+               SIGNAL_HANDLERS,
+               DEVELOPER_WARNINGS,
+               GRAPH,
+               LOADING,
+               IMPORT,
+               SINGLEDECODEBIN
+       }
+       [CCode (cprefix = "LOGGING_LEVEL_", cheader_filename = "marina.h")]
+       public enum Level {
+               CRITICAL,
+               HIGH,
+               MEDIUM,
+               LOW,
+               INFO,
+               VERBOSE
+       }
+       [CCode (cheader_filename = "marina.h")]
+       public static void emit (GLib.Object object, Logging.Facility facility, Logging.Level level, string message);
+       [CCode (cheader_filename = "marina.h")]
+       public static void set_logging_level (Logging.Level new_level);
+}
+[CCode (cprefix = "PLAY_STATE_", cheader_filename = "marina.h")]
+public enum PlayState {
+       STOPPED,
+       PRE_PLAY,
+       PLAYING,
+       PRE_RECORD_NULL,
+       PRE_RECORD,
+       RECORDING,
+       POST_RECORD,
+       PRE_EXPORT,
+       EXPORTING,
+       CANCEL_EXPORT,
+       LOADING,
+       CLOSING,
+       CLOSED
+}
+[CCode (cprefix = "GDK_", has_type_id = false, cheader_filename = "gdk/gdkkeysyms.h")]
+public enum KeySyms {
+       Control_L,
+       Control_R,
+       Down,
+       equal,
+       Escape,
+       KP_Add,
+       KP_Enter,
+       KP_Subtract,
+       Left,
+       minus,
+       plus,
+       Return,
+       Right,
+       Shift_L,
+       Shift_R,
+       underscore,
+       Up
+}
+[CCode (cprefix = "MEDIA_ERROR_", cheader_filename = "marina.h")]
+public errordomain MediaError {
+       MISSING_PLUGIN,
+}
+[CCode (ref_function = "app_dirs_ref", unref_function = "app_dirs_unref", cheader_filename = "marina.h")]
+public class AppDirs {
+       public AppDirs ();
+       public static GLib.File get_exec_dir ();
+       public static GLib.File get_resources_dir ();
+       public static void init (string arg0, string program_name);
+       public static void terminate ();
+}
+[CCode (ref_function = "class_factory_ref", unref_function = "class_factory_unref", cheader_filename = "marina.h")]
+public class ClassFactory {
+       public ClassFactory ();
+       public static ClassFactory get_class_factory ();
+       public virtual TrackView get_track_view (Model.Track track, TimeLine timeline);
+       public static void set_class_factory (ClassFactory class_factory);
+       public static void set_transport_delegate (TransportDelegate transport_delegate);
+}
+[CCode (cheader_filename = "marina.h")]
+public class ClipLibraryView : Gtk.EventBox {
+       public static Gtk.Menu context_menu;
+       public ClipLibraryView (Model.Project p, Model.TimeSystem time_provider, string? drag_message, Gdk.DragAction actions);
+       public void delete_selection ();
+       public override void drag_data_received (Gdk.DragContext context, int x, int y, Gtk.SelectionData selection_data, uint drag_info, uint time);
+       public Gee.ArrayList<string> get_selected_files ();
+       public bool has_selection ();
+       public void on_clipfile_removed (Model.ClipFile f);
+       public void select_all ();
+       public void unselect_all ();
+       public signal void selection_changed (bool selected);
+}
+[CCode (cheader_filename = "marina.h")]
+public class MultiFileProgress : Gtk.Window {
+       public MultiFileProgress (Gtk.Window parent, int num_files, string dialog_title, MultiFileProgressInterface provider);
+}
+[CCode (ref_function = "track_clip_pair_ref", unref_function = "track_clip_pair_unref", cheader_filename = "marina.h")]
+public class TrackClipPair {
+       public Model.Clip clip;
+       public Model.Track track;
+       public TrackClipPair (Model.Track track, Model.Clip clip);
+}
+[CCode (ref_function = "clipboard_ref", unref_function = "clipboard_unref", cheader_filename = "marina.h")]
+public class Clipboard {
+       public Gee.ArrayList<TrackClipPair> clips;
+       public Clipboard ();
+       public void paste (Model.Track selected_track, int64 time);
+       public void select (Gee.ArrayList<ClipView> selected_clips);
+}
+[CCode (cheader_filename = "marina.h")]
+public class TimeLine : Gtk.EventBox {
+       public Clipboard clipboard;
+       public Model.Project project;
+       public weak Model.TimeSystem provider;
+       public View.Ruler ruler;
+       public Gee.ArrayList<ClipView> selected_clips;
+       public Gee.ArrayList<TrackView> tracks;
+       public const int BAR_HEIGHT;
+       public const int BORDER;
+       public const int RULER_HEIGHT;
+       public TimeLine (Model.Project p, Model.TimeSystem provider, Gdk.DragAction actions);
+       public override bool button_press_event (Gdk.EventButton event);
+       public override bool button_release_event (Gdk.EventButton event);
+       public void delete_selection ();
+       public void deselect_all_clips ();
+       public void do_clip_move (ClipView clip_view, int64 delta);
+       public void do_copy ();
+       public void do_cut ();
+       public void do_paste (int64 pos);
+       public override void drag_data_received (Gdk.DragContext context, int x, int y, Gtk.SelectionData selection_data, uint drag_info, uint time);
+       public override bool expose_event (Gdk.EventExpose event);
+       public Gtk.Widget? find_child (double x, double y);
+       public bool gap_selected ();
+       public bool is_clip_selected ();
+       public override bool motion_notify_event (Gdk.EventMotion event);
+       public void on_clip_view_added (ClipView clip_view);
+       public void on_ruler_position_changed (int x);
+       public void paste ();
+       public void select_all ();
+       public void update_pos (int event_x);
+       public void zoom (float inc);
+       public void zoom_to_project (double width);
+       public signal void selection_changed (bool selected);
+       public signal void track_changed ();
+       public signal void trackview_added (TrackView trackview);
+       public signal void trackview_removed (TrackView trackview);
+}
+[CCode (cheader_filename = "marina.h")]
+public class GapView : Gtk.DrawingArea {
+       public Model.Gap gap;
+       public GapView (int64 start, int64 length, int width, int height);
+       public override bool expose_event (Gdk.EventExpose e);
+       public void remove ();
+       public void unselect ();
+       public signal void removed (GapView gap_view);
+       public signal void unselected (GapView gap_view);
+}
+[CCode (cheader_filename = "marina.h")]
+public class ClipView : Gtk.DrawingArea {
+       public Model.Clip clip;
+       public static Gtk.Menu context_menu;
+       public int height;
+       public int64 initial_time;
+       public bool is_selected;
+       public const int SNAP_DELTA;
+       public ClipView (TransportDelegate transport_delegate, Model.Clip clip, Model.TimeSystem time_provider, int height);
+       public void adjust_size (int height);
+       public override bool button_press_event (Gdk.EventButton event);
+       public override bool button_release_event (Gdk.EventButton event);
+       public void delete_clip ();
+       public void draw ();
+       public override bool expose_event (Gdk.EventExpose event);
+       public override bool motion_notify_event (Gdk.EventMotion event);
+       public void on_clip_moved (Model.Clip clip);
+       public void select ();
+       public void snap (int64 amount);
+       public signal void clip_deleted (Model.Clip clip);
+       public signal void clip_moved (ClipView clip);
+       public signal void move_begin (ClipView clip_view, bool copy);
+       public signal void move_commit (ClipView clip_view, int64 delta);
+       public signal void move_request (ClipView clip_view, int64 delta);
+       public signal void selection_request (ClipView clip_view, bool extend_selection);
+       public signal void trim_begin (ClipView clip_view, Gdk.WindowEdge edge);
+       public signal void trim_commit (ClipView clip_view, Gdk.WindowEdge edge);
+}
+[CCode (cheader_filename = "marina.h")]
+public interface TrackView : Gtk.Widget {
+       public abstract Gtk.Widget? find_child (double x, double y);
+       public abstract Model.Track get_track ();
+       public abstract int get_track_height ();
+       public abstract void move_to_top (ClipView clip_view);
+       public abstract void resize ();
+       public abstract void select_all ();
+       public signal void clip_view_added (ClipView clip_view);
+}
+[CCode (cheader_filename = "marina.h")]
+public interface MultiFileProgressInterface : GLib.Object {
+       public abstract void cancel ();
+       public abstract void complete ();
+       public signal void done ();
+       public signal void file_updated (string filename, int index);
+       public signal void fraction_updated (double d);
+}
+[CCode (cheader_filename = "marina.h")]
+public interface TransportDelegate : GLib.Object {
+       public abstract bool is_playing ();
+       public abstract bool is_recording ();
+       public abstract bool is_stopped ();
+}
+[CCode (type_id = "TYPE_FRACTION", cheader_filename = "marina.h")]
+public struct Fraction {
+       public int numerator;
+       public int denominator;
+       public Fraction (int numerator, int denominator);
+       public bool equal (Fraction f);
+       public Fraction.from_string (string s);
+       public int nearest_int ();
+       public string to_string ();
+}
+[CCode (type_id = "TYPE_TIME_CODE", cheader_filename = "marina.h")]
+public struct TimeCode {
+       public int hour;
+       public int minute;
+       public int second;
+       public int frame;
+       public bool drop_code;
+       public void get_from_length (int64 length);
+       public string to_string ();
+}
+[CCode (cheader_filename = "marina.h")]
+public const int CHANNELS_PER_TRACK_PLAYBACK;
+[CCode (cheader_filename = "marina.h")]
+public const int CHANNELS_PER_TRACK_RECORD;
+[CCode (cheader_filename = "marina.h")]
+public const Gtk.TargetEntry[] drag_target_entries;
+[CCode (cheader_filename = "marina.h")]
+public static bool debug_enabled;
+[CCode (cheader_filename = "marina.h")]
+public static Gdk.ModifierType GDK_SHIFT_ALT_CONTROL_MASK;
+[CCode (cheader_filename = "marina.h")]
+public static float float_abs (float f);
+[CCode (cheader_filename = "marina.h")]
+public static bool float_within (double f, double epsilon);
+[CCode (cheader_filename = "marina.h")]
+public static int sign (int x);
+[CCode (cheader_filename = "marina.h")]
+public static string[] copy_array (string[] source);
+[CCode (cheader_filename = "marina.h")]
+public static void print_debug (string text);
+[CCode (cheader_filename = "marina.h")]
+public static bool time_in_range (int64 time, int64 center, int64 delta);
+[CCode (cheader_filename = "marina.h")]
+public static string isolate_filename (string path);
+[CCode (cheader_filename = "marina.h")]
+public static string get_file_extension (string path);
+[CCode (cheader_filename = "marina.h")]
+public static string append_extension (string path, string extension);
+[CCode (cheader_filename = "marina.h")]
+public static bool version_at_least (string v, string w);
+[CCode (cheader_filename = "marina.h")]
+public static bool get_file_md5_checksum (string filename, out string checksum);
+[CCode (cheader_filename = "marina.h")]
+public static void save_file_md5_checksum (string filename, string checksum);
+[CCode (cheader_filename = "marina.h")]
+public static bool md5_checksum_on_file (string filename, out string checksum);
+[CCode (cheader_filename = "marina.h")]
+public static Gdk.Color parse_color (string color);
+[CCode (cheader_filename = "marina.h")]
+public static Gtk.Widget get_widget (Gtk.UIManager manager, string name);
+[CCode (cheader_filename = "marina.h")]
+public static void draw_rounded_rectangle (Gdk.Window window, Gdk.Color color, bool filled, int x0, int y0, int width, int height);
+[CCode (cheader_filename = "marina.h")]
+public static void draw_right_rounded_rectangle (Gdk.Window window, Gdk.Color color, bool filled, int x0, int y0, int width, int height);
+[CCode (cheader_filename = "marina.h")]
+public static void draw_left_rounded_rectangle (Gdk.Window window, Gdk.Color color, bool filled, int x0, int y0, int width, int height);
+[CCode (cheader_filename = "marina.h")]
+public static void draw_square_rectangle (Gdk.Window window, Gdk.Color color, bool filled, int x, int y, int width, int height);
+[CCode (cheader_filename = "marina.h")]
+public static bool is_drop_frame_rate (Fraction r);
+[CCode (cheader_filename = "marina.h")]
+public static int64 frame_to_time_with_rate (int frame, Fraction rate);
+[CCode (cheader_filename = "marina.h")]
+public static int time_to_frame_with_rate (int64 time, Fraction rate);
+[CCode (cheader_filename = "marina.h")]
+public static TimeCode frame_to_time (int frame, Fraction rate);
+[CCode (cheader_filename = "marina.h")]
+public static string frame_to_string (int frame, Fraction rate);
+[CCode (cheader_filename = "marina.h")]
+public static string time_to_HHMMSS (int64 time);
+[CCode (cheader_filename = "marina.h")]
+public static string time_to_string (int64 time);
+[CCode (cheader_filename = "marina.h")]
+public static Gst.Element make_element_with_name (string element_name, string? display_name) throws GLib.Error;
+[CCode (cheader_filename = "marina.h")]
+public static Gst.Element make_element (string name) throws GLib.Error;