5 class RecordGUIBatches
;
16 class RecordGUIStartOver
;
17 class RecordGUICancel
;
18 class RecordGUIMonitorVideo
;
19 class RecordGUIMonitorAudio
;
20 class RecordGUINewBatch
;
21 class RecordGUIDeleteBatch
;
22 class RecordGUIStartBatches
;
23 class RecordGUIStopbatches
;
24 class RecordGUIActivateBatch
;
25 class RecordStatusThread
;
27 class RecordGUIDCOffset
;
28 class RecordGUIFillFrames
;
31 class RecordGUILoopHr
;
32 class RecordGUILoopMin
;
33 class RecordGUILoopSec
;
34 class RecordGUIModeMenu
;
38 class RecordStartoverThread
;
39 class RecordCancelThread
;
41 #include "browsebutton.inc"
42 #include "condition.inc"
44 #include "loadmode.inc"
45 #include "maxchannels.h"
47 #include "mwindow.inc"
48 #include "question.inc"
49 #include "recordgui.inc"
51 #include "recordmonitor.inc"
52 #include "recordtransport.inc"
53 #include "timeentry.h"
55 #define BATCH_COLUMNS 7
57 class RecordGUI
: public BC_Window
60 RecordGUI(MWindow
*mwindow
, Record
*record
);
67 void update_batches();
68 void update_sources();
69 // Update the batch channel table when edited
70 void update_batch_sources();
71 // Update the batch editing tools
72 void update_batch_tools();
73 int resize_event(int w
, int h
);
74 int translation_event();
76 ArrayList
<BC_ListBoxItem
*> batches
[BATCH_COLUMNS
];
78 ArrayList
<BC_ListBoxItem
*> modes
;
80 ArrayList
<BC_ListBoxItem
*> batch_numbers
;
81 // Temp source pulldowns to create menu.
82 // Real source list is from ChannelPicker
83 ArrayList
<BC_ListBoxItem
*> sources
;
85 BC_Title
*current_operation
;
86 BC_Title
*position_title
;
87 BC_Title
*prev_label_title
;
88 BC_Title
*frames_dropped
, *samples_clipped
;
91 RecordGUIBatches
*batch_list
;
92 // RecordBatch *batch_number;
93 RecordPath
*batch_path
;
94 RecordStatusThread
*status_thread
;
95 TimeEntry
*batch_start
;
96 TimeEntry
*batch_duration
;
97 RecordStartType
*start_type
;
98 BC_Title
*transport_title
;
99 RecordTransport
*record_transport
;
100 BrowseButton
*batch_browse
;
101 RecordSource
*batch_source
;
102 RecordMode
*batch_mode
;
103 // RecordNews *batch_news;
104 BC_Title
*batch_number_title
;
105 BC_Title
*batch_start_title
;
106 BC_Title
*batch_path_title
;
107 BC_Title
*batch_browse_title
;
108 BC_Title
*batch_duration_title
;
109 BC_Title
*batch_source_title
;
110 BC_Title
*batch_mode_title
;
111 BC_Title
*batch_news_title
;
112 RecordGUINewBatch
*new_batch
;
113 RecordGUIDeleteBatch
*delete_batch
;
114 RecordGUIStartBatches
*start_batches
;
115 RecordGUIStopbatches
*stop_batches
;
116 RecordGUIActivateBatch
*activate_batch
;
117 RecordGUILabel
*label_button
;
119 // RecordGUIStartOver *start_over;
120 RecordGUICancel
*cancel
;
121 RecordGUIFillFrames
*fill_frames
;
122 RecordGUIMonitorVideo
*monitor_video
;
123 RecordGUIMonitorAudio
*monitor_audio
;
124 RecordStartoverThread
*startover_thread
;
125 RecordCancelThread
*cancel_thread
;
126 static char *batch_titles
[BATCH_COLUMNS
];
127 int column_widths
[BATCH_COLUMNS
];
148 // RecordTransport *record_transport;
149 RecordGUIModeMenu
*rec_mode_menu
;
150 RecordGUILoopHr
*loop_hr
;
151 RecordGUILoopMin
*loop_min
;
152 RecordGUILoopSec
*loop_sec
;
153 RecordGUIReset
*reset
;
154 // RecordGUIStartOver *startover_button;
155 RecordGUIDCOffset
*dc_offset_button
;
156 RecordGUIDCOffsetText
*dc_offset_text
[MAXCHANNELS
];
157 RecordMonitor
*monitor_video_window
;
158 BC_Meter
*meter
[MAXCHANNELS
];
159 long total_dropped_frames
;
160 long total_clipped_samples
;
165 int get_record_mode();
166 int set_record_mode(int value
);
167 int get_output_bits();
169 int get_duplex_status();
170 int set_duplex_status(int value
);
171 int get_loop_status();
172 int get_sample_rate();
173 int get_enable_duplex();
174 long get_playback_buffer();
178 int set_loop_status(int value
);
179 int update_duration_boxes(); // Redraw the loop duration textboxes for a script.
181 int keypress_event();
182 int delete_all_labels();
183 int calibrate_dc_offset();
184 int calibrate_dc_offset(long new_value
, int channel
);
185 int update_dropped_frames(long new_dropped
);
186 int update_clipped_samples(long new_clipped
);
187 int set_translation(int x
, int y
, float z
);
189 void update_labels(double new_position
);
190 int update_position(double new_position
);
191 int update_prev_label(long new_position
);
192 // int update_next_label(long new_position);
194 int update_title(BC_Title
*title
, double position
);
196 int goto_prev_label();
197 // int goto_next_label();
201 class RecordGUIBatches
: public BC_ListBox
204 RecordGUIBatches(Record
*record
, RecordGUI
*gui
, int x
, int y
, int w
, int h
);
206 int selection_changed();
207 int column_resize_event();
208 int drag_start_event();
209 int drag_motion_event();
210 int drag_stop_event();
217 class RecordGUISave
: public BC_GenericButton
220 RecordGUISave(Record
*record
, RecordGUI
*record_gui
, int x
, int y
);
222 int keypress_event();
228 class RecordGUICancel
: public BC_GenericButton
231 RecordGUICancel(Record
*record
, RecordGUI
*record_gui
, int x
, int y
);
233 int keypress_event();
238 class RecordGUIStartBatches
: public BC_GenericButton
241 RecordGUIStartBatches(MWindow
*mwindow
, Record
*record
, int x
, int y
);
248 class RecordGUIStopbatches
: public BC_GenericButton
251 RecordGUIStopbatches(MWindow
*mwindow
, Record
*record
, int x
, int y
);
257 class RecordGUIActivateBatch
: public BC_GenericButton
260 RecordGUIActivateBatch(MWindow
*mwindow
, Record
*record
, int x
, int y
);
267 class RecordGUIStartOver
: public BC_GenericButton
270 RecordGUIStartOver(Record
*record
, RecordGUI
*record_gui
, int x
, int y
);
271 ~RecordGUIStartOver();
279 class RecordCancelThread
: public Thread
282 RecordCancelThread(Record
*record
, RecordGUI
*record_gui
);
283 ~RecordCancelThread();
288 QuestionWindow
*window
;
291 class RecordStartoverThread
: public Thread
294 RecordStartoverThread(Record
*record
, RecordGUI
*record_gui
);
295 ~RecordStartoverThread();
300 QuestionWindow
*window
;
303 class RecordBatch
: public BC_PopupTextBox
306 RecordBatch(MWindow
*mwindow
, Record
*record
, RecordGUI
*gui
, int x
, int y
);
313 class RecordStartType
: public BC_CheckBox
316 RecordStartType(MWindow
*mwindow
, Record
*record
, int x
, int y
);
322 class RecordPath
: public BC_TextBox
325 RecordPath(MWindow
*mwindow
, Record
*record
, int x
, int y
);
331 class RecordStart
: public TimeEntry
334 RecordStart(MWindow
*mwindow
, Record
*record
, int x
, int y
);
340 class RecordDuration
: public TimeEntry
343 RecordDuration(MWindow
*mwindow
, Record
*record
, int x
, int y
);
349 class RecordSource
: public BC_PopupTextBox
352 RecordSource(MWindow
*mwindow
, Record
*record
, RecordGUI
*gui
, int x
, int y
);
359 class RecordMode
: public BC_PopupTextBox
362 RecordMode(MWindow
*mwindow
, Record
*record
, RecordGUI
*gui
, int x
, int y
);
369 class RecordNews
: public BC_TextBox
372 RecordNews(MWindow
*mwindow
, Record
*record
, int x
, int y
);
378 class RecordGUIFillFrames
: public BC_CheckBox
381 RecordGUIFillFrames(MWindow
*mwindow
, Record
*record
, int x
, int y
);
387 class RecordGUIMonitorVideo
: public BC_CheckBox
390 RecordGUIMonitorVideo(MWindow
*mwindow
, Record
*record
, int x
, int y
);
396 class RecordGUIMonitorAudio
: public BC_CheckBox
399 RecordGUIMonitorAudio(MWindow
*mwindow
, Record
*record
, int x
, int y
);
405 class RecordGUINewBatch
: public BC_GenericButton
408 RecordGUINewBatch(MWindow
*mwindow
, Record
*record
, int x
, int y
);
415 class RecordGUIDeleteBatch
: public BC_GenericButton
418 RecordGUIDeleteBatch(MWindow
*mwindow
, Record
*record
, int x
, int y
);
424 class RecordGUILabel
: public BC_GenericButton
427 RecordGUILabel(MWindow
*mwindow
, Record
*record
, int x
, int y
);
431 int keypress_event();
436 // Stop GUI blocking the recording when X11 is busy
437 class RecordStatusThread
: public Thread
440 RecordStatusThread(MWindow
*mwindow
, RecordGUI
*gui
);
441 ~RecordStatusThread();
443 void update_dropped_frames(long value
);
444 void update_position(double new_position
);
445 void update_clipped_samples(long new_clipped_samples
);
450 long new_dropped_frames
;
452 long new_clipped_samples
;
454 Condition
*input_lock
;
471 class RecordGUIOK
: public BC_OKButton
474 RecordGUIOK(MWindow
*mwindow
, int y
);
481 class RecordGUIModeMenu
: public BC_PopupMenu
484 RecordGUIModeMenu(int x
, int y
, int w
, char *text
);
485 ~RecordGUIModeMenu();
490 RecordGUIMode
*linear
;
491 RecordGUIMode
*timed
;
495 class RecordGUIMode
: public BC_MenuItem
498 RecordGUIMode(char *text
);
511 class RecordGUIDCOffset
: public BC_Button
514 RecordGUIDCOffset(MWindow
*mwindow
, int y
);
515 ~RecordGUIDCOffset();
518 int keypress_event();
521 class RecordGUIDCOffsetText
: public BC_TextBox
524 RecordGUIDCOffsetText(char *text
, int y
, int number
);
525 ~RecordGUIDCOffsetText();
531 class RecordGUIReset
: public BC_Button
534 RecordGUIReset(MWindow
*mwindow
, RecordGUI
*gui
, int y
);
541 class RecordGUIResetTranslation
: public BC_Button
544 RecordGUIResetTranslation(MWindow
*mwindow
, RecordGUI
*gui
, int y
);
545 ~RecordGUIResetTranslation();