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 RecordTransport
*record_transport
;
99 BrowseButton
*batch_browse
;
100 RecordSource
*batch_source
;
101 RecordMode
*batch_mode
;
102 RecordGUINewBatch
*new_batch
;
103 RecordGUIDeleteBatch
*delete_batch
;
104 RecordGUIStartBatches
*start_batches
;
105 RecordGUIStopbatches
*stop_batches
;
106 RecordGUIActivateBatch
*activate_batch
;
107 RecordGUILabel
*label_button
;
108 RecordGUIFillFrames
*fill_frames
;
109 RecordGUIMonitorVideo
*monitor_video
;
110 RecordGUIMonitorAudio
*monitor_audio
;
111 RecordStartoverThread
*startover_thread
;
112 RecordCancelThread
*cancel_thread
;
113 static char *batch_titles
[BATCH_COLUMNS
];
114 int column_widths
[BATCH_COLUMNS
];
135 // RecordTransport *record_transport;
136 RecordGUIModeMenu
*rec_mode_menu
;
137 RecordGUILoopHr
*loop_hr
;
138 RecordGUILoopMin
*loop_min
;
139 RecordGUILoopSec
*loop_sec
;
140 RecordGUIReset
*reset
;
141 // RecordGUIStartOver *startover_button;
142 RecordGUIDCOffset
*dc_offset_button
;
143 RecordGUIDCOffsetText
*dc_offset_text
[MAXCHANNELS
];
144 RecordMonitor
*monitor_video_window
;
145 BC_Meter
*meter
[MAXCHANNELS
];
146 long total_dropped_frames
;
147 long total_clipped_samples
;
152 int get_record_mode();
153 int set_record_mode(int value
);
154 int get_output_bits();
156 int get_duplex_status();
157 int set_duplex_status(int value
);
158 int get_loop_status();
159 int get_sample_rate();
160 int get_enable_duplex();
161 long get_playback_buffer();
165 int set_loop_status(int value
);
166 int update_duration_boxes(); // Redraw the loop duration textboxes for a script.
168 int keypress_event();
169 int delete_all_labels();
170 int calibrate_dc_offset();
171 int calibrate_dc_offset(long new_value
, int channel
);
172 int update_dropped_frames(long new_dropped
);
173 int update_clipped_samples(long new_clipped
);
174 int set_translation(int x
, int y
, float z
);
176 void update_labels(double new_position
);
177 int update_position(double new_position
);
178 int update_prev_label(long new_position
);
179 // int update_next_label(long new_position);
181 int update_title(BC_Title
*title
, double position
);
183 int goto_prev_label();
184 // int goto_next_label();
188 class RecordGUIBatches
: public BC_ListBox
191 RecordGUIBatches(Record
*record
, RecordGUI
*gui
, int x
, int y
, int w
, int h
);
193 int selection_changed();
194 int column_resize_event();
195 int drag_start_event();
196 int drag_motion_event();
197 int drag_stop_event();
204 class RecordGUISave
: public BC_Button
207 RecordGUISave(Record
*record
, RecordGUI
*record_gui
);
209 int keypress_event();
215 class RecordGUICancel
: public BC_Button
218 RecordGUICancel(Record
*record
, RecordGUI
*record_gui
);
220 int keypress_event();
225 class RecordGUIStartBatches
: public BC_GenericButton
228 RecordGUIStartBatches(MWindow
*mwindow
, Record
*record
, int x
, int y
);
235 class RecordGUIStopbatches
: public BC_GenericButton
238 RecordGUIStopbatches(MWindow
*mwindow
, Record
*record
, int x
, int y
);
244 class RecordGUIActivateBatch
: public BC_GenericButton
247 RecordGUIActivateBatch(MWindow
*mwindow
, Record
*record
, int x
, int y
);
254 class RecordGUIStartOver
: public BC_GenericButton
257 RecordGUIStartOver(Record
*record
, RecordGUI
*record_gui
, int x
, int y
);
258 ~RecordGUIStartOver();
266 class RecordCancelThread
: public Thread
269 RecordCancelThread(Record
*record
, RecordGUI
*record_gui
);
270 ~RecordCancelThread();
275 QuestionWindow
*window
;
278 class RecordStartoverThread
: public Thread
281 RecordStartoverThread(Record
*record
, RecordGUI
*record_gui
);
282 ~RecordStartoverThread();
287 QuestionWindow
*window
;
290 class RecordBatch
: public BC_PopupTextBox
293 RecordBatch(MWindow
*mwindow
, Record
*record
, RecordGUI
*gui
, int x
, int y
);
300 class RecordStartType
: public BC_CheckBox
303 RecordStartType(MWindow
*mwindow
, Record
*record
, int x
, int y
);
309 class RecordPath
: public BC_TextBox
312 RecordPath(MWindow
*mwindow
, Record
*record
, int x
, int y
);
318 class RecordStart
: public TimeEntry
321 RecordStart(MWindow
*mwindow
, Record
*record
, int x
, int y
);
327 class RecordDuration
: public TimeEntry
330 RecordDuration(MWindow
*mwindow
, Record
*record
, int x
, int y
);
336 class RecordSource
: public BC_PopupTextBox
339 RecordSource(MWindow
*mwindow
, Record
*record
, RecordGUI
*gui
, int x
, int y
);
346 class RecordMode
: public BC_PopupTextBox
349 RecordMode(MWindow
*mwindow
, Record
*record
, RecordGUI
*gui
, int x
, int y
);
356 class RecordNews
: public BC_TextBox
359 RecordNews(MWindow
*mwindow
, Record
*record
, int x
, int y
);
365 class RecordGUIFillFrames
: public BC_CheckBox
368 RecordGUIFillFrames(MWindow
*mwindow
, Record
*record
, int x
, int y
);
374 class RecordGUIMonitorVideo
: public BC_CheckBox
377 RecordGUIMonitorVideo(MWindow
*mwindow
, Record
*record
, int x
, int y
);
383 class RecordGUIMonitorAudio
: public BC_CheckBox
386 RecordGUIMonitorAudio(MWindow
*mwindow
, Record
*record
, int x
, int y
);
392 class RecordGUINewBatch
: public BC_GenericButton
395 RecordGUINewBatch(MWindow
*mwindow
, Record
*record
, int x
, int y
);
402 class RecordGUIDeleteBatch
: public BC_GenericButton
405 RecordGUIDeleteBatch(MWindow
*mwindow
, Record
*record
, int x
, int y
);
411 class RecordGUILabel
: public BC_GenericButton
414 RecordGUILabel(MWindow
*mwindow
, Record
*record
, int x
, int y
);
418 int keypress_event();
423 // Stop GUI blocking the recording when X11 is busy
424 class RecordStatusThread
: public Thread
427 RecordStatusThread(MWindow
*mwindow
, RecordGUI
*gui
);
428 ~RecordStatusThread();
430 void update_dropped_frames(long value
);
431 void update_position(double new_position
);
432 void update_clipped_samples(long new_clipped_samples
);
437 long new_dropped_frames
;
439 long new_clipped_samples
;
441 Condition
*input_lock
;
458 class RecordGUIOK
: public BC_OKButton
461 RecordGUIOK(MWindow
*mwindow
, int y
);
468 class RecordGUIModeMenu
: public BC_PopupMenu
471 RecordGUIModeMenu(int x
, int y
, int w
, char *text
);
472 ~RecordGUIModeMenu();
477 RecordGUIMode
*linear
;
478 RecordGUIMode
*timed
;
482 class RecordGUIMode
: public BC_MenuItem
485 RecordGUIMode(char *text
);
498 class RecordGUIDCOffset
: public BC_Button
501 RecordGUIDCOffset(MWindow
*mwindow
, int y
);
502 ~RecordGUIDCOffset();
505 int keypress_event();
508 class RecordGUIDCOffsetText
: public BC_TextBox
511 RecordGUIDCOffsetText(char *text
, int y
, int number
);
512 ~RecordGUIDCOffsetText();
518 class RecordGUIReset
: public BC_Button
521 RecordGUIReset(MWindow
*mwindow
, RecordGUI
*gui
, int y
);
528 class RecordGUIResetTranslation
: public BC_Button
531 RecordGUIResetTranslation(MWindow
*mwindow
, RecordGUI
*gui
, int y
);
532 ~RecordGUIResetTranslation();