lock xft, plugin index builder lock, clear clip thumbnails, clear vwin clock, setpoin...
[goodguy/history.git] / cinelerra-5.1 / cinelerra / mwindow.h
index 69781804c9830a31730471e4fa9acb3568a7c01f..2ec3068359830bff038cce0efe932f07e647bc25 100644 (file)
@@ -75,6 +75,7 @@
 #include "pluginset.inc"
 #include "preferences.inc"
 #include "preferencesthread.inc"
+#include "proxy.inc"
 #include "record.inc"
 #include "recordlabel.inc"
 #include "render.inc"
@@ -204,10 +205,11 @@ public:
 
        void queue_mixers(EDL *edl, int command, int wait_tracking,
                int use_inout, int update_refresh, int toggle_audio, int loop_play);
+       ZWindow *create_mixer(Indexable *indexable);
        void create_mixers();
        void refresh_mixers(int dir=1);
        void stop_mixers();
-       void close_mixers();
+       void close_mixers(int destroy=1);
        void open_mixers();
        ZWindow *get_mixer(Mixer *&mixer);
        void del_mixer(ZWindow *zwindow);
@@ -483,7 +485,8 @@ public:
        int toggle_label(int is_mwindow);
        void undo_entry(BC_WindowBase *calling_window_gui);
        void redo_entry(BC_WindowBase *calling_window_gui);
-
+       void save_undo_data();
+       void load_undo_data();
 
        int cut_automation();
        int copy_automation();
@@ -505,13 +508,16 @@ public:
        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 rescale_proxy(EDL *clip, int orig_scale, int new_scale);
        void add_proxy(int use_scaler,
                ArrayList<Indexable*> *orig_assets,
                ArrayList<Indexable*> *proxy_assets);
-       void render_proxy(ArrayList<Indexable *> &new_idxbls);
+       int render_proxy(ArrayList<Indexable *> &new_idxbls);
+       void beep(double freq, double secs, double gain);
+       int enable_proxy();
+       int disable_proxy();
+       int to_proxy(Asset *asset, int new_scale);
+       ProxyBeep *proxy_beep;
 
        void dump_plugins(FILE *fp=stdout);
        void dump_edl(FILE *fp=stdout);
@@ -555,6 +561,8 @@ public:
        static Commercials *commercials;
        int commercial_active;
        int has_commercials();
+// copy of edl created in speed_before, used in speed_after to normalize_speed
+       EDL *speed_edl;
 
 // Menu items
        ArrayList<ColormodelItem*> colormodels;
@@ -629,10 +637,8 @@ public:
        Mutex *keyframe_gui_lock;
 // Lock during creation and destruction of brender so playback doesn't use it.
        Mutex *brender_lock;
-
 // Initialize shared memory
-       void init_shm();
-
+       void init_shm(const char *pfn, int64_t min);
 // Initialize channel DB's for playback
        void init_channeldb();
        void init_render();
@@ -653,6 +659,7 @@ public:
        void commit_commercial();
        void undo_commercial();
        void cut_commercials();
+       void update_gui(int changed_edl);
        int paste_subtitle_text(char *text, double start, double end);
 
        void init_error();
@@ -676,14 +683,17 @@ public:
        static void init_plugin_index(MWindow *mwindow, Preferences *preferences,
                FILE *fp, const char *plugin_dir);
        static int init_ladspa_index(MWindow *mwindow, Preferences *preferences,
-               const char *index_path, const char *plugin_dir);
+               FILE *fp, const char *plugin_dir);
        static void scan_plugin_index(MWindow *mwindow, Preferences *preferences,
                FILE *fp, const char *plug_dir, const char *plug_path, int &idx);
        static void init_ffmpeg();
        static void init_ffmpeg_index(MWindow *mwindow, Preferences *preferences, FILE *fp);
-       static int load_plugin_index(MWindow *mwindow, const char *index_path,
-               const char *plugin_dir);
-       static PluginServer* new_ffmpeg_server(MWindow *mwindow, const char *name);
+       static int load_plugin_index(MWindow *mwindow, FILE *fp, const char *plugin_dir);
+       static PluginServer *new_ffmpeg_server(MWindow *mwindow, const char *name);
+       static int init_lv2_index(MWindow *mwindow, Preferences *preferences, FILE *fp);
+       static PluginServer *new_lv2_server(MWindow *mwindow, const char *name);
+       static void remove_plugin_index();
+
        void init_preferences();
        void init_signals();
        void init_theme();
@@ -700,6 +710,9 @@ public:
        void init_commercials();
        static void add_plugins(ArrayList<PluginServer*> &plugins);
        static void delete_plugins();
+       void speed_before();
+       int speed_after(int done);
+       int normalize_speed(EDL *old_edl, EDL *new_edl);
 //
        void clean_indexes();
 //     TimeBomb timebomb;