r370: Heroine Virutal's official release 1.2.1
[cinelerra_cv/mob.git] / hvirtual / cinelerra / menueffects.h
blob07e6e0fa2f161df24696ff63379759e76d94c37f
1 #ifndef MENUEFFECTS_H
2 #define MENUEFFECTS_H
4 #include "asset.inc"
5 #include "bitspopup.h"
6 #include "browsebutton.h"
7 #include "compresspopup.h"
8 #include "formatpopup.h"
9 #include "formattools.h"
10 #include "loadmode.inc"
11 #include "mainmenu.inc"
12 #include "mwindow.inc"
13 #include "pluginarray.inc"
14 #include "pluginserver.inc"
15 #include "thread.h"
17 class MenuEffectThread;
18 class MenuEffects : public BC_MenuItem
20 public:
21 MenuEffects(MWindow *mwindow);
22 virtual ~MenuEffects();
24 int handle_event();
26 MWindow *mwindow;
27 MenuEffectThread *thread;
32 class MenuEffectPacket
34 public:
35 MenuEffectPacket(char *path, int64_t start, int64_t end);
36 ~MenuEffectPacket();
38 // Path of output without remote prefix
39 char path[BCTEXTLEN];
41 int64_t start;
42 int64_t end;
46 class MenuEffectThread : public Thread
48 public:
49 MenuEffectThread(MWindow *mwindow);
50 virtual ~MenuEffectThread();
52 void run();
53 int set_title(char *text); // set the effect to be run by a menuitem
54 virtual int get_recordable_tracks(Asset *asset) { return 0; };
55 virtual int get_derived_attributes(Asset *asset, Defaults *defaults) { return 0; };
56 virtual int save_derived_attributes(Asset *asset, Defaults *defaults) { return 0; };
57 virtual PluginArray* create_plugin_array() { return 0; };
58 virtual int64_t to_units(double position, int round) { return 0; };
59 virtual int fix_menu(char *title) {};
60 int test_existence(Asset *asset);
62 MWindow *mwindow;
63 char title[1024];
64 int dither, realtime, load_mode;
65 int strategy;
69 class MenuEffectItem : public BC_MenuItem
71 public:
72 MenuEffectItem(MenuEffects *menueffect, char *string);
73 virtual ~MenuEffectItem() {};
74 int handle_event();
75 MenuEffects *menueffect;
83 class MenuEffectWindowOK;
84 class MenuEffectWindowCancel;
85 class MenuEffectWindowList;
86 class MenuEffectWindowToTracks;
89 class MenuEffectWindow : public BC_Window
91 public:
92 MenuEffectWindow(MWindow *mwindow,
93 MenuEffectThread *menueffects,
94 ArrayList<BC_ListBoxItem*> *plugin_list,
95 Asset *asset);
96 virtual ~MenuEffectWindow();
99 * static int calculate_w(int use_plugin_list);
100 * static int calculate_h(int use_plugin_list);
102 int create_objects();
103 int resize_event(int w, int h);
105 BC_Title *list_title;
106 MenuEffectWindowList *list;
107 LoadMode *loadmode;
108 BC_Title *file_title;
109 FormatTools *format_tools;
110 MenuEffectThread *menueffects;
111 MWindow *mwindow;
112 ArrayList<BC_ListBoxItem*> *plugin_list;
113 Asset *asset;
115 int result;
118 class MenuEffectWindowOK : public BC_OKButton
120 public:
121 MenuEffectWindowOK(MenuEffectWindow *window);
123 int handle_event();
124 int keypress_event();
126 MenuEffectWindow *window;
129 class MenuEffectWindowCancel : public BC_CancelButton
131 public:
132 MenuEffectWindowCancel(MenuEffectWindow *window);
134 int handle_event();
135 int keypress_event();
137 MenuEffectWindow *window;
140 class MenuEffectWindowList : public BC_ListBox
142 public:
143 MenuEffectWindowList(MenuEffectWindow *window,
144 int x,
145 int y,
146 int w,
147 int h,
148 ArrayList<BC_ListBoxItem*> *plugin_list);
150 int handle_event();
151 MenuEffectWindow *window;
155 class MenuEffectPromptOK;
156 class MenuEffectPromptCancel;
159 class MenuEffectPrompt : public BC_Window
161 public:
162 MenuEffectPrompt(MWindow *mwindow);
163 ~MenuEffectPrompt();
165 int create_objects();
167 MenuEffectPromptOK *ok;
168 MenuEffectPromptCancel *cancel;
172 #endif