1 #include "avc1394transport.h"
5 #include "recordmonitor.h"
9 #define POLL_INTERVAL 20000
11 AVC1394TransportThread::AVC1394TransportThread(BC_Title *label,
20 AVC1394TransportThread::~AVC1394TransportThread()
27 void AVC1394TransportThread::run()
32 Thread::disable_cancel();
34 text = avc->timecode();
36 label->lock_window("AVC1394TransportThread::run 1");
38 // Sometimes text is set to NULL for some reason...
40 label->update("Unknown");
44 label->unlock_window();
46 Thread::enable_cancel();
47 usleep(POLL_INTERVAL);
57 AVC1394Transport::AVC1394Transport(MWindow *mwindow,
59 BC_WindowBase *window,
63 this->mwindow = mwindow;
65 this->window = window;
70 AVC1394Transport::~AVC1394Transport()
75 int AVC1394Transport::create_objects()
77 int x = this->x, y = this->y;
79 window->add_subwindow(start_button = new AVC1394GUISeekStart(mwindow, avc, x, y));
80 x += start_button->get_w();
81 window->add_subwindow(rewind_button = new AVC1394GUIRewind(mwindow, avc, x, y));
82 x += rewind_button->get_w();
83 window->add_subwindow(reverse_button = new AVC1394GUIReverse(mwindow, avc, x, y));
84 x += reverse_button->get_w();
85 window->add_subwindow(stop_button = new AVC1394GUIStop(mwindow, avc, x, y));
86 x += stop_button->get_w();
87 window->add_subwindow(pause_button = new AVC1394GUIPause(mwindow, avc, x, y));
88 x += pause_button->get_w();
89 window->add_subwindow(play_button = new AVC1394GUIPlay(mwindow, avc, x, y));
90 x += play_button->get_w();
91 window->add_subwindow(fforward_button = new AVC1394GUIFForward(mwindow, avc, x, y));
92 x += fforward_button->get_w();
93 window->add_subwindow(end_button = new AVC1394GUISeekEnd(mwindow, avc, x, y));
94 x += end_button->get_w();
101 int AVC1394Transport::keypress_event(int keypress)
106 if(avc->current_command == PAUSE)
108 avc->current_command = NORMAL_FWD;
113 avc->current_command = PAUSE;
121 void AVC1394Transport::reposition_window(int x, int y)
126 start_button->reposition_window(x, y);
127 x += start_button->get_w();
128 rewind_button->reposition_window(x, y);
129 x += rewind_button->get_w();
130 reverse_button->reposition_window(x, y);
131 x += reverse_button->get_w();
132 stop_button->reposition_window(x, y);
133 x += stop_button->get_w();
134 pause_button->reposition_window(x, y);
135 x += pause_button->get_w();
136 play_button->reposition_window(x, y);
137 x += play_button->get_w();
138 fforward_button->reposition_window(x, y);
139 x += fforward_button->get_w();
140 end_button->reposition_window(x, y);
154 AVC1394GUISeekStart::AVC1394GUISeekStart(MWindow *mwindow, AVC1394Control *avc, int x, int y)
155 : BC_Button(x, y, mwindow->theme->get_image_set("rewind"))
158 set_tooltip(_("Rewind ( Home )"));
161 AVC1394GUISeekStart::~AVC1394GUISeekStart()
165 int AVC1394GUISeekStart::handle_event()
167 avc->current_command = COMMAND_NONE;
168 avc->seek("00:00:00:00");
172 int AVC1394GUISeekStart::keypress_event()
174 if(get_keypress() == HOME) return handle_event();
179 AVC1394GUIRewind::AVC1394GUIRewind(MWindow *mwindow, AVC1394Control *avc, int x, int y)
180 : BC_Button(x, y, mwindow->theme->get_image_set("fastrev"))
183 set_tooltip(_("Fast Reverse ( + )"));
186 AVC1394GUIRewind::~AVC1394GUIRewind()
190 int AVC1394GUIRewind::handle_event()
192 avc->current_command = FAST_REWIND;
197 int AVC1394GUIRewind::keypress_event()
199 if(get_keypress() == KPPLUS) return handle_event();
203 AVC1394GUIReverse::AVC1394GUIReverse(MWindow *mwindow, AVC1394Control *avc, int x, int y)
204 : BC_Button(x, y, mwindow->theme->get_image_set("reverse"))
207 set_tooltip(_("Reverse Play ( 6 )"));
210 AVC1394GUIReverse::~AVC1394GUIReverse()
214 int AVC1394GUIReverse::handle_event()
216 if(avc->current_command == NORMAL_REWIND)
218 avc->current_command = PAUSE;
223 avc->current_command = NORMAL_REWIND;
229 int AVC1394GUIReverse::keypress_event()
231 if(get_keypress() == KP6) return handle_event();
235 AVC1394GUIStop::AVC1394GUIStop(MWindow *mwindow, AVC1394Control *avc, int x, int y)
236 : BC_Button(x, y, mwindow->theme->get_image_set("stop"))
239 set_tooltip(_("Stop ( 0 )"));
242 AVC1394GUIStop::~AVC1394GUIStop()
246 int AVC1394GUIStop::handle_event()
248 avc->current_command = COMMAND_NONE;
253 int AVC1394GUIStop::keypress_event()
255 if(get_keypress() == KPINS) return handle_event();
259 AVC1394GUIPlay::AVC1394GUIPlay(MWindow *mwindow, AVC1394Control *avc, int x, int y)
260 : BC_Button(x, y, mwindow->theme->get_image_set("play"))
264 set_tooltip(_("Play ( 3 )"));
267 AVC1394GUIPlay::~AVC1394GUIPlay()
271 int AVC1394GUIPlay::handle_event()
273 if(avc->current_command == NORMAL_FWD)
275 avc->current_command = PAUSE;
280 avc->current_command = NORMAL_FWD;
286 int AVC1394GUIPlay::keypress_event()
288 if(get_keypress() == KP3) return handle_event();
292 AVC1394GUIPause::AVC1394GUIPause(MWindow *mwindow, AVC1394Control *avc, int x,
294 : BC_Button(x, y, mwindow->theme->get_image_set("pause"))
297 set_tooltip(_("Pause"));
300 AVC1394GUIPause::~AVC1394GUIPause()
304 int AVC1394GUIPause::handle_event()
306 avc->current_command = PAUSE;
311 int AVC1394GUIPause::keypress_event()
316 AVC1394GUIFForward::AVC1394GUIFForward(MWindow *mwindow, AVC1394Control *avc, int x, int y)
317 : BC_Button(x, y, mwindow->theme->get_image_set("fastfwd"))
320 set_tooltip(_("Fast Forward ( Enter )"));
323 AVC1394GUIFForward::~AVC1394GUIFForward()
327 int AVC1394GUIFForward::handle_event()
329 avc->current_command = FAST_FWD;
334 int AVC1394GUIFForward::keypress_event()
336 if(get_keypress() == KPENTER) return handle_event();
341 AVC1394GUISeekEnd::AVC1394GUISeekEnd(MWindow *mwindow,
345 : BC_Button(x, y, mwindow->theme->get_image_set("end"))
348 set_tooltip(_("Jump to end ( End )"));
351 AVC1394GUISeekEnd::~AVC1394GUISeekEnd()
355 int AVC1394GUISeekEnd::handle_event()
357 avc->current_command = COMMAND_NONE;
358 avc->seek("ff:ff:ff:ff");
362 int AVC1394GUISeekEnd::keypress_event()
364 if(get_keypress() == END) return handle_event();