r602: Fix baver's code... don't insert timecode when show_tc is not set
[cinelerra_cv/mob.git] / cinelerra / assetedit.h
bloba5267e6de6c9a916657dfa0ac59601a83503c821
1 #ifndef ASSETEDIT_H
2 #define ASSETEDIT_H
4 #include "asset.inc"
5 #include "awindow.inc"
6 #include "guicast.h"
7 #include "bitspopup.inc"
8 #include "browsebutton.h"
9 #include "formatpopup.h"
10 #include "mwindow.h"
11 #include "thread.h"
13 #include <libintl.h>
14 #define _(String) gettext(String)
15 #define gettext_noop(String) String
16 #define N_(String) gettext_noop (String)
18 class AssetEditTCStartTextBox;
19 class AssetEditReelNumber;
20 class AssetEditReelName;
21 class AssetEditByteOrderHILO;
22 class AssetEditByteOrderLOHI;
23 class AssetEditPath;
24 class AssetEditPathText;
25 class AssetEditWindow;
27 class AssetEdit : public Thread
29 public:
30 AssetEdit(MWindow *mwindow);
31 ~AssetEdit();
33 void edit_asset(Asset *asset);
34 int set_asset(Asset *asset);
35 void run();
37 Asset *asset, *new_asset;
38 MWindow *mwindow;
39 AssetEditWindow *window;
44 // Pcm is the only format users should be able to fix.
45 // All other formats display information about the file in read-only.
47 class AssetEditWindow : public BC_Window
49 public:
50 AssetEditWindow(MWindow *mwindow, AssetEdit *asset_edit);
51 ~AssetEditWindow();
53 int create_objects();
54 Asset *asset;
55 AssetEditPathText *path_text;
56 AssetEditPath *path_button;
57 AssetEditByteOrderHILO *hilo;
58 AssetEditByteOrderLOHI *lohi;
59 BitsPopup *bitspopup;
60 int allow_edits;
61 MWindow *mwindow;
62 AssetEdit *asset_edit;
66 class AssetEditPath : public BrowseButton
68 public:
69 AssetEditPath(MWindow *mwindow, AssetEditWindow *fwindow, BC_TextBox *textbox, int y, char *text, char *window_title = "2000: Path", char *window_caption = _("Select a file"));
70 ~AssetEditPath();
72 AssetEditWindow *fwindow;
76 class AssetEditPathText : public BC_TextBox
78 public:
79 AssetEditPathText(AssetEditWindow *fwindow, int y);
80 ~AssetEditPathText();
81 int handle_event();
83 AssetEditWindow *fwindow;
88 class AssetEditFormat : public FormatPopup
90 public:
91 AssetEditFormat(AssetEditWindow *fwindow, char* default_, int y);
92 ~AssetEditFormat();
94 int handle_event();
95 AssetEditWindow *fwindow;
99 class AssetEditChannels : public BC_TumbleTextBox
101 public:
102 AssetEditChannels(AssetEditWindow *fwindow, char *text, int x, int y);
104 int handle_event();
106 AssetEditWindow *fwindow;
109 class AssetEditRate : public BC_TextBox
111 public:
112 AssetEditRate(AssetEditWindow *fwindow, char *text, int x, int y);
114 int handle_event();
116 AssetEditWindow *fwindow;
119 class AssetEditFRate : public BC_TextBox
121 public:
122 AssetEditFRate(AssetEditWindow *fwindow, char *text, int x, int y);
124 int handle_event();
126 AssetEditWindow *fwindow;
129 class Interlaceautofix : public BC_CheckBox
131 public:
132 Interlaceautofix(MWindow *mwindow,AssetEditWindow *fwindow, int x, int y);
133 ~Interlaceautofix();
134 int handle_event();
136 void showhideotherwidgets();
138 AssetEditWindow* fwindow;
139 MWindow *mwindow;
141 BC_TextBox *ilacemode_textbox;
142 BC_ListBox *ilacemode_listbox;
143 BC_TextBox *ilacefixmethod_textbox;
144 BC_ListBox *ilacefixmethod_listbox;
145 private:
146 char string[BCTEXTLEN];
149 class AssetEditILaceautofixoption : public BC_TextBox
151 public:
152 AssetEditILaceautofixoption(AssetEditWindow *fwindow, char *text, int thedefault, int x, int y, int w);
154 int handle_event();
155 int thedefault;
156 AssetEditWindow *fwindow;
159 class AssetEditILacemode : public BC_TextBox
161 public:
162 AssetEditILacemode(AssetEditWindow *fwindow, char *text, int thedefault, int x, int y, int w);
163 int handle_event();
164 int thedefault;
165 AssetEditWindow *fwindow;
168 class AssetEditInterlacemodePulldown : public BC_ListBox
170 public:
171 AssetEditInterlacemodePulldown(MWindow *mwindow,
172 BC_TextBox *output_text,
173 int *output_value,
174 ArrayList<BC_ListBoxItem*> *data,
175 Interlaceautofix *fixoption_chkbox,
176 int x,
177 int y);
178 int handle_event();
179 char* interlacemode_to_text();
180 MWindow *mwindow;
181 BC_TextBox *output_text;
182 int *output_value;
183 Interlaceautofix *fixoption_chkbox;
184 private:
185 char string[BCTEXTLEN];
188 class AssetEditILacefixmethod : public BC_TextBox
190 public:
191 AssetEditILacefixmethod(AssetEditWindow *fwindow, char *text, int thedefault, int x, int y, int w);
193 int handle_event();
194 int thedefault;
195 AssetEditWindow *fwindow;
198 class AssetEditHeader : public BC_TextBox
200 public:
201 AssetEditHeader(AssetEditWindow *fwindow, char *text, int x, int y);
203 int handle_event();
205 AssetEditWindow *fwindow;
208 class AssetEditByteOrderLOHI : public BC_Radial
210 public:
211 AssetEditByteOrderLOHI(AssetEditWindow *fwindow, int value, int x, int y);
213 int handle_event();
215 AssetEditWindow *fwindow;
218 class AssetEditByteOrderHILO : public BC_Radial
220 public:
221 AssetEditByteOrderHILO(AssetEditWindow *fwindow, int value, int x, int y);
223 int handle_event();
225 AssetEditWindow *fwindow;
228 class AssetEditSigned : public BC_CheckBox
230 public:
231 AssetEditSigned(AssetEditWindow *fwindow, int value, int x, int y);
233 int handle_event();
235 AssetEditWindow *fwindow;
238 class AssetEditReelName : public BC_TextBox
240 public:
241 AssetEditReelName(AssetEditWindow *fwindow, int x, int y);
242 ~AssetEditReelName();
244 int handle_event();
246 AssetEditWindow *fwindow;
249 class AssetEditReelNumber : public BC_TextBox
251 public:
252 AssetEditReelNumber(AssetEditWindow *fwindow, int x, int y);
253 ~AssetEditReelNumber();
255 int handle_event();
257 AssetEditWindow *fwindow;
260 class AssetEditTCStartTextBox : public BC_TextBox
262 public:
263 AssetEditTCStartTextBox(AssetEditWindow *fwindow, int value, int x, int y, int multiplier);
264 ~AssetEditTCStartTextBox();
265 int handle_event();
267 AssetEditWindow *fwindow;
268 // Multiplier is the # of frames for whatever unit of time this is.
269 // fps dependent, and unit dependent
270 int multiplier;
271 int previous;
273 #endif