--- /dev/null
+/* 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;