6 #include "channeldb.inc"
7 #include "channelpicker.inc"
8 #include "condition.inc"
10 #include "mwindow.inc"
11 #include "picture.inc"
14 class ChannelEditWindow
;
16 class ChannelEditThread
: public Thread
19 ChannelEditThread(MWindow
*mwindow
,
20 ChannelPicker
*channel_picker
,
27 Condition
*completion
;
30 ChannelPicker
*channel_picker
;
32 ChannelDB
*new_channels
;
33 ChannelEditWindow
*window
;
38 class ChannelEditList
;
39 class ChannelEditEditThread
;
40 class ChannelEditPictureThread
;
42 class ChannelEditWindow
: public BC_Window
45 ChannelEditWindow(MWindow
*mwindow
, ChannelEditThread
*thread
, ChannelPicker
*channel_picker
);
50 int add_channel(); // Start the thread for adding a channel
51 int delete_channel(int channel
);
52 int delete_channel(Channel
*channel
);
55 int update_list(); // Synchronize the list box with the channel arrays
56 int update_list(Channel
*channel
); // Synchronize the list box and the channel
58 int move_channel_up();
59 int move_channel_down();
60 int change_channel_from_list(int channel_number
);
63 ArrayList
<BC_ListBoxItem
*> channel_list
;
64 ChannelEditList
*list_box
;
65 ChannelEditThread
*thread
;
66 ChannelPicker
*channel_picker
;
67 ChannelEditEditThread
*edit_thread
;
68 ChannelEditPictureThread
*picture_thread
;
72 class ChannelEditSelect
: public BC_GenericButton
75 ChannelEditSelect(MWindow
*mwindow
, ChannelEditWindow
*window
, int x
, int y
);
78 ChannelEditWindow
*window
;
82 class ChannelEditAdd
: public BC_GenericButton
85 ChannelEditAdd(MWindow
*mwindow
, ChannelEditWindow
*window
, int x
, int y
);
88 ChannelEditWindow
*window
;
91 class ChannelEditList
: public BC_ListBox
94 ChannelEditList(MWindow
*mwindow
, ChannelEditWindow
*window
, int x
, int y
);
97 ChannelEditWindow
*window
;
98 static char *column_titles
[2];
101 class ChannelEditMoveUp
: public BC_GenericButton
104 ChannelEditMoveUp(MWindow
*mwindow
, ChannelEditWindow
*window
, int x
, int y
);
105 ~ChannelEditMoveUp();
107 ChannelEditWindow
*window
;
110 class ChannelEditMoveDown
: public BC_GenericButton
113 ChannelEditMoveDown(MWindow
*mwindow
, ChannelEditWindow
*window
, int x
, int y
);
114 ~ChannelEditMoveDown();
116 ChannelEditWindow
*window
;
119 class ChannelEditDel
: public BC_GenericButton
122 ChannelEditDel(MWindow
*mwindow
, ChannelEditWindow
*window
, int x
, int y
);
125 ChannelEditWindow
*window
;
128 class ChannelEdit
: public BC_GenericButton
131 ChannelEdit(MWindow
*mwindow
, ChannelEditWindow
*window
, int x
, int y
);
134 ChannelEditWindow
*window
;
137 class ChannelEditPicture
: public BC_GenericButton
140 ChannelEditPicture(MWindow
*mwindow
, ChannelEditWindow
*window
, int x
, int y
);
141 ~ChannelEditPicture();
143 ChannelEditWindow
*window
;
147 // ============================= Edit a single channel
149 class ChannelEditEditSource
;
150 class ChannelEditEditWindow
;
152 class ChannelEditEditThread
: public Thread
155 ChannelEditEditThread(ChannelEditWindow
*window
,
156 ChannelPicker
*channel_picker
,
158 ~ChannelEditEditThread();
161 int edit_channel(Channel
*channel
, int editing
);
162 void set_device(); // Set the device to the new channel
163 int change_source(char *source_name
); // Change to the source matching the name
166 int set_input(int value
);
167 int set_norm(int value
);
168 int set_freqtable(int value
);
169 char* value_to_freqtable(int value
);
170 char* value_to_norm(int value
);
171 char* value_to_input(int value
);
175 Channel
*output_channel
;
176 ChannelPicker
*channel_picker
;
177 ChannelEditWindow
*window
;
178 ChannelEditEditSource
*source_text
;
179 ChannelEditEditWindow
*edit_window
;
181 int editing
; // Tells whether or not to delete the channel on cancel
182 int in_progress
; // Allow only 1 thread at a time
184 Condition
*completion
;
187 class ChannelEditEditTitle
;
190 class ChannelEditEditWindow
: public BC_Window
193 ChannelEditEditWindow(ChannelEditEditThread
*thread
,
194 ChannelEditWindow
*window
,
195 ChannelPicker
*channel_picker
);
196 ~ChannelEditEditWindow();
197 int create_objects(Channel
*channel
);
199 ChannelEditEditThread
*thread
;
200 ChannelEditWindow
*window
;
201 ChannelEditEditTitle
*title_text
;
202 Channel
*new_channel
;
203 ChannelPicker
*channel_picker
;
206 class ChannelEditEditTitle
: public BC_TextBox
209 ChannelEditEditTitle(int x
, int y
, ChannelEditEditThread
*thread
);
210 ~ChannelEditEditTitle();
212 ChannelEditEditThread
*thread
;
215 class ChannelEditEditSource
: public BC_TextBox
218 ChannelEditEditSource(int x
, int y
, ChannelEditEditThread
*thread
);
219 ~ChannelEditEditSource();
221 ChannelEditEditThread
*thread
;
224 class ChannelEditEditSourceTumbler
: public BC_Tumbler
227 ChannelEditEditSourceTumbler(int x
, int y
, ChannelEditEditThread
*thread
);
228 ~ChannelEditEditSourceTumbler();
229 int handle_up_event();
230 int handle_down_event();
231 ChannelEditEditThread
*thread
;
234 class ChannelEditEditInput
: public BC_PopupMenu
237 ChannelEditEditInput(int x
, int y
, ChannelEditEditThread
*thread
, Record
*record
);
238 ~ChannelEditEditInput();
241 ChannelEditEditThread
*thread
;
245 class ChannelEditEditInputItem
: public BC_MenuItem
248 ChannelEditEditInputItem(ChannelEditEditThread
*thread
, char *text
, int value
);
249 ~ChannelEditEditInputItem();
251 ChannelEditEditThread
*thread
;
255 class ChannelEditEditNorm
: public BC_PopupMenu
258 ChannelEditEditNorm(int x
, int y
, ChannelEditEditThread
*thread
);
259 ~ChannelEditEditNorm();
261 ChannelEditEditThread
*thread
;
264 class ChannelEditEditNormItem
: public BC_MenuItem
267 ChannelEditEditNormItem(ChannelEditEditThread
*thread
, char *text
, int value
);
268 ~ChannelEditEditNormItem();
270 ChannelEditEditThread
*thread
;
274 class ChannelEditEditFreqtable
: public BC_PopupMenu
277 ChannelEditEditFreqtable(int x
, int y
, ChannelEditEditThread
*thread
);
278 ~ChannelEditEditFreqtable();
282 ChannelEditEditThread
*thread
;
285 class ChannelEditEditFreqItem
: public BC_MenuItem
288 ChannelEditEditFreqItem(ChannelEditEditThread
*thread
, char *text
, int value
);
289 ~ChannelEditEditFreqItem();
292 ChannelEditEditThread
*thread
;
296 class ChannelEditEditFine
: public BC_ISlider
299 ChannelEditEditFine(int x
, int y
, ChannelEditEditThread
*thread
);
300 ~ChannelEditEditFine();
302 ChannelEditEditThread
*thread
;
305 // =================== Edit the picture quality
308 class ChannelEditPictureWindow
;
310 class ChannelEditPictureThread
: public Thread
313 ChannelEditPictureThread(ChannelPicker
*channel_picker
, ChannelEditWindow
*window
);
314 ~ChannelEditPictureThread();
320 int in_progress
; // Allow only 1 thread at a time
321 Condition
*completion
;
322 ChannelPicker
*channel_picker
;
323 ChannelEditWindow
*window
;
324 ChannelEditPictureWindow
*edit_window
;
327 class ChannelEditPictureWindow
: public BC_Window
330 ChannelEditPictureWindow(ChannelEditPictureThread
*thread
, ChannelPicker
*channel_picker
);
331 ~ChannelEditPictureWindow();
332 int create_objects();
334 ChannelEditPictureThread
*thread
;
335 ChannelPicker
*channel_picker
;
338 class ChannelEditBright
: public BC_IPot
341 ChannelEditBright(int x
, int y
, ChannelPicker
*channel_picker
, int value
);
342 ~ChannelEditBright();
344 int button_release_event();
345 ChannelPicker
*channel_picker
;
348 class ChannelEditContrast
: public BC_IPot
351 ChannelEditContrast(int x
, int y
, ChannelPicker
*channel_picker
, int value
);
352 ~ChannelEditContrast();
354 int button_release_event();
355 ChannelPicker
*channel_picker
;
358 class ChannelEditColor
: public BC_IPot
361 ChannelEditColor(int x
, int y
, ChannelPicker
*channel_picker
, int value
);
364 int button_release_event();
365 ChannelPicker
*channel_picker
;
368 class ChannelEditHue
: public BC_IPot
371 ChannelEditHue(int x
, int y
, ChannelPicker
*channel_picker
, int value
);
374 int button_release_event();
375 ChannelPicker
*channel_picker
;
378 class ChannelEditWhiteness
: public BC_IPot
381 ChannelEditWhiteness(int x
, int y
, ChannelPicker
*channel_picker
, int value
);
382 ~ChannelEditWhiteness();
384 int button_release_event();
385 ChannelPicker
*channel_picker
;
390 class ChannelEditCommon
: public BC_IPot
393 ChannelEditCommon(int x
,
395 ChannelPicker
*channel_picker
,
397 ~ChannelEditCommon();
399 int button_release_event();
400 ChannelPicker
*channel_picker
;