00001 #ifndef MENUEFFECTS_H
00002 #define MENUEFFECTS_H
00003
00004 #include "asset.inc"
00005 #include "bitspopup.h"
00006 #include "browsebutton.h"
00007 #include "compresspopup.h"
00008 #include "formatpopup.h"
00009 #include "formattools.h"
00010 #include "loadmode.inc"
00011 #include "mainmenu.inc"
00012 #include "mwindow.inc"
00013 #include "pluginarray.inc"
00014 #include "pluginserver.inc"
00015 #include "thread.h"
00016
00017 class MenuEffectThread;
00018 class MenuEffects : public BC_MenuItem
00019 {
00020 public:
00021 MenuEffects(MWindow *mwindow);
00022 virtual ~MenuEffects();
00023
00024 int handle_event();
00025
00026 MWindow *mwindow;
00027 MenuEffectThread *thread;
00028 };
00029
00030
00031
00032 class MenuEffectPacket
00033 {
00034 public:
00035 MenuEffectPacket(char *path, int64_t start, int64_t end);
00036 ~MenuEffectPacket();
00037
00038
00039 char path[BCTEXTLEN];
00040
00041 int64_t start;
00042 int64_t end;
00043 };
00044
00045
00046 class MenuEffectThread : public Thread
00047 {
00048 public:
00049 MenuEffectThread(MWindow *mwindow);
00050 virtual ~MenuEffectThread();
00051
00052 void run();
00053 int set_title(char *text);
00054 virtual int get_recordable_tracks(Asset *asset) { return 0; };
00055 virtual int get_derived_attributes(Asset *asset, Defaults *defaults) { return 0; };
00056 virtual int save_derived_attributes(Asset *asset, Defaults *defaults) { return 0; };
00057 virtual PluginArray* create_plugin_array() { return 0; };
00058 virtual int64_t to_units(double position, int round) { return 0; };
00059 virtual int fix_menu(char *title) {};
00060 int test_existence(Asset *asset);
00061
00062 MWindow *mwindow;
00063 char title[1024];
00064 int dither, realtime, load_mode;
00065 int strategy;
00066 };
00067
00068
00069 class MenuEffectItem : public BC_MenuItem
00070 {
00071 public:
00072 MenuEffectItem(MenuEffects *menueffect, char *string);
00073 virtual ~MenuEffectItem() {};
00074 int handle_event();
00075 MenuEffects *menueffect;
00076 };
00077
00078
00079
00080
00081
00082
00083 class MenuEffectWindowOK;
00084 class MenuEffectWindowCancel;
00085 class MenuEffectWindowList;
00086 class MenuEffectWindowToTracks;
00087
00088
00089 class MenuEffectWindow : public BC_Window
00090 {
00091 public:
00092 MenuEffectWindow(MWindow *mwindow,
00093 MenuEffectThread *menueffects,
00094 ArrayList<BC_ListBoxItem*> *plugin_list,
00095 Asset *asset);
00096 virtual ~MenuEffectWindow();
00097
00098 int create_objects();
00099 int resize_event(int w, int h);
00100
00101 BC_Title *list_title;
00102 MenuEffectWindowList *list;
00103 LoadMode *loadmode;
00104 BC_Title *file_title;
00105 FormatTools *format_tools;
00106 MenuEffectThread *menueffects;
00107 MWindow *mwindow;
00108 ArrayList<BC_ListBoxItem*> *plugin_list;
00109 Asset *asset;
00110
00111 int result;
00112 };
00113
00114 class MenuEffectWindowOK : public BC_OKButton
00115 {
00116 public:
00117 MenuEffectWindowOK(MenuEffectWindow *window);
00118
00119 int handle_event();
00120 int keypress_event();
00121
00122 MenuEffectWindow *window;
00123 };
00124
00125 class MenuEffectWindowCancel : public BC_CancelButton
00126 {
00127 public:
00128 MenuEffectWindowCancel(MenuEffectWindow *window);
00129
00130 int handle_event();
00131 int keypress_event();
00132
00133 MenuEffectWindow *window;
00134 };
00135
00136 class MenuEffectWindowList : public BC_ListBox
00137 {
00138 public:
00139 MenuEffectWindowList(MenuEffectWindow *window,
00140 int x,
00141 int y,
00142 int w,
00143 int h,
00144 ArrayList<BC_ListBoxItem*> *plugin_list);
00145
00146 int handle_event();
00147 MenuEffectWindow *window;
00148 };
00149
00150
00151 class MenuEffectPromptOK;
00152 class MenuEffectPromptCancel;
00153
00154
00155 class MenuEffectPrompt : public BC_Window
00156 {
00157 public:
00158 MenuEffectPrompt(MWindow *mwindow);
00159
00160 static int calculate_w(BC_WindowBase *gui);
00161 static int calculate_h(BC_WindowBase *gui);
00162 int create_objects();
00163
00164 MenuEffectPromptOK *ok;
00165 MenuEffectPromptCancel *cancel;
00166 };
00167
00168
00169 #endif