edl plugin names eng, fix segv for opengl brender, renderfarm rework strategy, perf...
[goodguy/history.git] / cinelerra-5.1 / cinelerra / mwindow.h
index a7bd7e3d507f38f2df50479d3045ebee65fa6a71..31c5be709d439ce210db37cf4291392a7536488a 100644 (file)
@@ -95,6 +95,7 @@
 #include "videowindow.inc"
 #include "vpatchgui.h"
 #include "vwindow.inc"
+#include "zwindow.inc"
 #include "wwindow.inc"
 #include "wavecache.inc"
 
@@ -198,13 +199,26 @@ public:
 // Find the plugin whose title matches title and return it
        static PluginServer* scan_plugindb(char *title,
                int data_type);
+       static void fix_plugin_title(char *title);
        static int plugin_exists(const char *plugin_path, ArrayList<PluginServer*> &plugins);
        static int plugin_exists(char *plugin_path);
        void dump_plugindb(FILE *fp);
-       void stop_playback(int wait=0);
-
-
-
+       void stop_playback(int wait);
+
+       void queue_mixers(EDL *edl, int command, int wait_tracking,
+               int use_inout, int update_refresh, int toggle_audio);
+       void create_mixers();
+       void refresh_mixers();
+       void stop_mixers();
+       void close_mixers();
+       void open_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);
+       void tile_mixers();
 
        int load_filenames(ArrayList<char*> *filenames,
                int load_mode = LOADMODE_REPLACE,
@@ -237,6 +251,7 @@ public:
        int move_right(int64_t distance = 0);
        void move_up(int64_t distance = 0);
        void move_down(int64_t distance = 0);
+       int find_selection(double position, int scroll_display = 0);
 
 // seek to labels
 // shift_down must be passed by the caller because different windows call
@@ -246,6 +261,8 @@ public:
 // seek to edit handles
        int next_edit_handle(int shift_down);
        int prev_edit_handle(int shift_down);
+// seek to keyframes
+       int nearest_plugin_keyframe(int shift_down, int dir);
 // offset is pixels to add to track_start
        void trackmovement(int offset, int pane_number);
 // view_start is pixels
@@ -316,13 +333,14 @@ 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, int deglitch);
+       void clear(int clear_handle);
        void clear_labels();
        int clear_labels(double start, double end);
        void concatenate_tracks();
        void copy();
        int copy(double start, double end);
        void cut();
+       void blade(double position);
        void cut(double start, double end, double new_position=-1);
 // snap off edit from current position to handle/label
        void snap_left_edit();
@@ -336,8 +354,6 @@ public:
        static void create_defaults_path(char *string, const char *config_file);
 
        void delete_folder(char *folder);
-       void delete_inpoint();
-       void delete_outpoint();
 
        void delete_track();
        void delete_track(Track *track);
@@ -466,6 +482,7 @@ public:
        void toggle_editing_mode();
        void set_inpoint(int is_mwindow);
        void set_outpoint(int is_mwindow);
+       void unset_inoutpoint(int is_mwindow);
        void splice(EDL *source);
        void toggle_loop_playback();
        void trim_selection();
@@ -494,6 +511,7 @@ 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();
@@ -600,6 +618,9 @@ public:
 // Viewer
        Mutex *vwindows_lock;
        ArrayList<VWindow*> vwindows;
+// Mixer
+       Mutex *zwindows_lock;
+       ArrayList<ZWindow*> zwindows;
 // Asset manager
        AWindow *awindow;
 // Automation window