mixer
[goodguy/history.git] / cinelerra-5.1 / cinelerra / mwindow.h
index 4f49de7b9ef429809766c1a5d5e7e5b7ef9675b9..8f26357ecb5d1ef73957295d03bdf596d1944d37 100644 (file)
@@ -95,6 +95,7 @@
 #include "videowindow.inc"
 #include "vpatchgui.h"
 #include "vwindow.inc"
+#include "zwindow.inc"
 #include "wwindow.inc"
 #include "wavecache.inc"
 
@@ -203,8 +204,15 @@ public:
        void dump_plugindb(FILE *fp);
        void stop_playback(int wait=0);
 
-
-
+       void queue_mixers(EDL *edl, int command, int wait_tracking,
+               int use_inout, int update_refresh, int toggle_audio);
+       void stop_mixers();
+       ZWindow *get_mixer(Mixer *&mixer);
+       void del_mixer(ZWindow *zwindow);
+       int mixer_track_active(Track *track);
+       void update_mixer_tracks();
+       void start_mixer();
+       int select_zwindow(ZWindow *zwindow);
 
        int load_filenames(ArrayList<char*> *filenames,
                int load_mode = LOADMODE_REPLACE,
@@ -316,13 +324,19 @@ public:
 // Clears active region in EDL.
 // If clear_handle, edit boundaries are cleared if the range is 0.
 // Called by paste, record, menueffects, render, and CWindow drop.
-       void clear(int clear_handle);
+       void clear(int clear_handle, int deglitch);
        void clear_labels();
        int clear_labels(double start, double end);
        void concatenate_tracks();
        void copy();
        int copy(double start, double end);
        void cut();
+       void cut(double start, double end, double new_position=-1);
+// snap off edit from current position to handle/label
+       void snap_left_edit();
+       void snap_right_edit();
+       void snap_left_label();
+       void snap_right_label();
 
 // Calculate aspect ratio from pixel counts
        static int create_aspect_ratio(float &w, float &h, int width, int height);
@@ -466,8 +480,8 @@ public:
 // Synchronize EDL settings with all playback engines depending on current
 // operation.  Doesn't redraw anything.
        void sync_parameters(int change_type = CHANGE_PARAMS);
+       void save_clip(EDL *new_edl, const char *txt);
        void to_clip(EDL *edl, const char *txt);
-       void to_clip(const char *txt);
        int toggle_label(int is_mwindow);
        void undo_entry(BC_WindowBase *calling_window_gui);
        void redo_entry(BC_WindowBase *calling_window_gui);
@@ -488,10 +502,18 @@ public:
        FloatAuto* get_float_auto(PatchGUI *patch,int idx);
        IntAuto* get_int_auto(PatchGUI *patch,int idx);
        PanAuto* get_pan_auto(PatchGUI *patch);
+       PatchGUI *get_patchgui(Track *track);
 
        int modify_edithandles();
        int modify_pluginhandles();
        void finish_modify_handles();
+       void set_proxy(int use_scaler, int new_scale, int auto_scale,
+               ArrayList<Indexable*> *orig_assets,
+               ArrayList<Indexable*> *proxy_assets);
+       void add_proxy(int use_scaler,
+               ArrayList<Indexable*> *orig_assets,
+               ArrayList<Indexable*> *proxy_assets);
+       void render_proxy(ArrayList<Indexable *> &new_idxbls);
 
        void dump_plugins(FILE *fp=stdout);
        void dump_edl(FILE *fp=stdout);
@@ -587,6 +609,9 @@ public:
 // Viewer
        Mutex *vwindows_lock;
        ArrayList<VWindow*> vwindows;
+// Mixer
+       Mutex *zwindows_lock;
+       ArrayList<ZWindow*> zwindows;
 // Asset manager
        AWindow *awindow;
 // Automation window
@@ -647,6 +672,7 @@ public:
        static void get_plugin_path(char *path, const char *plug_dir, const char *fs_path);
        static int init_plugins(MWindow *mwindow, Preferences *preferences);
        static int init_ladspa_plugins(MWindow *mwindow, Preferences *preferences);
+       static void init_plugin_tips(ArrayList<PluginServer*> &plugins, const char *lang);
        static int check_plugin_index(ArrayList<PluginServer*> &plugins,
                const char *plug_dir, const char *plug_path);
        static void init_plugin_index(MWindow *mwindow, Preferences *preferences,