png img proxy fixes, speed zoom segv fix, colapse ins 1frm silence undo, repair rende...
[goodguy/history.git] / cinelerra-5.1 / cinelerra / awindowgui.h
index 703c976422e535c81acb3727989ca6b88d49381e..b941e18da58d0428605c8edc8b1f0cefa9f25eaf 100644 (file)
 #include "labels.h"
 #include "indexable.inc"
 #include "mwindow.inc"
+#include "mutex.inc"
 #include "newfolder.inc"
 #include "pluginserver.inc"
+#include "proxypopup.inc"
+#include "renderengine.inc"
+#include "samples.inc"
 #include "vicon.h"
 
 class AssetPicon : public BC_ListBoxItem
@@ -59,6 +63,10 @@ public:
        static void draw_hue_bar(VFrame *frame, double t);
        static void draw_wave(VFrame *frame, double *dp, int len,
                int base_color, int line_color);
+       void open_render_engine(EDL *edl, int is_audio);
+       void close_render_engine();
+       void render_video(int64_t pos, VFrame *vfrm);
+       void render_audio(int64_t pos, Samples **samples, int len);
 
        MWindow *mwindow;
        AWindowGUI *gui;
@@ -81,6 +89,7 @@ public:
        PluginServer *plugin;
        Label *label;
        VIcon *vicon;
+       RenderEngine *render_engine;
 };
 
 typedef int16_t vicon_audio_t;
@@ -172,7 +181,8 @@ public:
        int drag_motion();
        int drag_stop();
 // Collect items into the drag vectors of MainSession
-       void collect_assets();
+       void collect_assets(int proxy=0);
+       EDL *collect_proxy(Indexable *indexable);
        void create_persistent_folder(ArrayList<BC_ListBoxItem*> *output,
                int do_audio,
                int do_video,
@@ -206,6 +216,7 @@ public:
        AWindowFolders *folder_list;
        AWindowDivider *divider;
        AWindowSearchText *search_text;
+       Mutex *folder_lock;
 
 // Store data to speed up responses
 // Persistant data for listboxes
@@ -256,10 +267,12 @@ public:
        AssetPopup *asset_menu;
        ClipPopup *clip_menu;
        LabelPopup *label_menu;
+       ProxyPopup *proxy_menu;
        EffectListMenu *effectlist_menu;
        AssetListMenu *assetlist_menu;
        ClipListMenu *cliplist_menu;
        LabelListMenu *labellist_menu;
+       ProxyListMenu *proxylist_menu;
        FolderListMenu *folderlist_menu;
        AddTools *add_tools;
 // Temporary for reading picons from files