add stacked edl editing, add sketcher/vframe line anti-aliasing
[goodguy/cinelerra.git] / cinelerra-5.1 / cinelerra / mwindow.h
index 0e6db95ec52ee2dd6489cc674838e20284e451dc..e938b743c8fb7beaa4566bc1e7c16ee1e9a4cdca 100644 (file)
@@ -72,6 +72,7 @@
 #include "playback3d.inc"
 #include "playbackengine.inc"
 #include "plugin.inc"
+#include "pluginclient.inc"
 #include "pluginfclient.inc"
 #include "pluginserver.inc"
 #include "pluginset.inc"
 
 #define FONT_SEARCHPATH "fonts"
 
+class StackItem
+{
+public:
+       EDL *edl, *new_edl;
+       MainUndo *undo;
+};
+
+class Stack : public ArrayList<StackItem>
+{
+public:
+};
+
 
 class MWindow : public Thread
 {
@@ -134,6 +147,12 @@ public:
        int get_tracks_height();
 // Total horizontal pixels in timeline
        int get_tracks_width();
+// session stack
+       void stack_push(EDL *edl);
+       void stack_pop();
+       void forget_nested_edl(EDL *nested);
+       void clip_to_media();
+       void media_to_clip();
 // Show windows
        void show_vwindow();
        void show_awindow();
@@ -181,6 +200,7 @@ public:
                int overwrite);
 // Reset everything for a load
        void update_project(int load_mode);
+       void update_preferences(Preferences *prefs);
        void update_vwindow();
 // Fit selected time to horizontal display range
        void fit_selection();
@@ -216,7 +236,7 @@ public:
        void create_mixers(double position = 0);
        void refresh_mixers(int dir=1);
        void stop_mixers();
-       void close_mixers(int destroy=1);
+       void close_mixers(int result=1);
        void open_mixers();
        ZWindow *get_mixer(Mixer *&mixer);
        void del_mixer(ZWindow *zwindow);
@@ -231,7 +251,6 @@ public:
 // Not wanted for loading backups.
                int update_filename = 1);
 
-
 // Print out plugins which are referenced in the EDL but not loaded.
        void test_plugins(EDL *new_edl, char *path);
 
@@ -288,6 +307,7 @@ public:
        void split_y();
        void crop_video(int mode);
        void update_plugins();
+       void get_backup_path(char *path, int len);
 // Call after every edit operation
        void save_backup();
        void load_backup();
@@ -304,11 +324,16 @@ public:
 // Searches for matching plugin and renders data in it.
        void render_plugin_gui(void *data, Plugin *plugin);
        void render_plugin_gui(void *data, int size, Plugin *plugin);
+       void reset_plugin_gui_frames(Plugin *plugin);
+       void render_plugin_gui_frames(PluginClientFrames *frames, Plugin *plugin);
+       double get_tracking_position();
+       int get_tracking_direction();
 
 // Called from PluginVClient::process_buffer
 // Returns 1 if a GUI for the plugin is open so OpenGL routines can determine if
 // they can run.
        int plugin_gui_open(Plugin *plugin);
+       void stop_plugin_guis();
 
        void show_keyframe_gui(Plugin *plugin);
        void hide_keyframe_guis();
@@ -558,6 +583,8 @@ public:
 // Main undo stack
        MainUndo *undo;
        int undo_command;
+// session stack
+       Stack stack;
 
        BC_Hash *defaults;
        Assets *assets;