this->mwindow = mwindow;
this->playback_engine = 0;
this->playback_cursor = 0;
+ this->mask_track_id = -1;
this->gui = 0;
}
void CWindow::create_objects()
{
- destination = mwindow->defaults->get("CWINDOW_DESTINATION", 0);
-
-
gui = new CWindowGUI(mwindow, this);
-
gui->create_objects();
-
-
playback_engine = new CPlayback(mwindow, this, gui->canvas);
-
-
// Start command loop
playback_engine->create_objects();
-
gui->transport->set_engine(playback_engine);
-
playback_cursor = new CTracking(mwindow, this);
-
playback_cursor->create_objects();
-
}
Track* CWindow::calculate_affected_track()
{
- Track* affected_track = 0;
- for(Track *track = mwindow->edl->tracks->first;
- track;
- track = track->next)
- {
- if(track->data_type == TRACK_VIDEO &&
- track->record)
- {
- affected_track = track;
- break;
- }
+ Track *track = mwindow->edl->tracks->first;
+ for( ; track; track=track->next ) {
+ if( track->data_type != TRACK_VIDEO ) continue;
+ if( track->is_armed() ) break;
+ }
+ return track;
+}
+
+Track* CWindow::calculate_mask_track()
+{
+ Track *track = mwindow->edl->tracks->first;
+ for( ; track; track=track->next ) {
+ if( track->data_type != TRACK_VIDEO ) continue;
+ if( track->is_armed() && track->get_id() == mask_track_id ) break;
}
- return affected_track;
+ return track;
}
+
Auto* CWindow::calculate_affected_auto(Autos *autos,
int create, int *created, int redraw)
{
gui->timebar->update(1);
double zoom = !mwindow->edl->session->cwindow_scrollbars ?
- 0 :mwindow->edl->session->cwindow_zoom;
+ 0 : mwindow->edl->session->cwindow_zoom;
gui->zoom_panel->update(zoom);
gui->canvas->update_zoom(mwindow->edl->session->cwindow_xscroll,
refresh_frame(change_type, mwindow->edl, dir);
}
-CWindowRemoteHandler::
-CWindowRemoteHandler(RemoteControl *remote_control)
+CWindowKeyEvHandler::
+CWindowKeyEvHandler(RemoteControl *remote_control)
: RemoteHandler(remote_control->gui, RED)
{
+ this->remote_control = remote_control;
+ this->mwindow = remote_control->mwindow_gui->mwindow;
last_key = -1;
+ key = -1;
}
-CWindowRemoteHandler::
-~CWindowRemoteHandler()
+CWindowKeyEvHandler::
+~CWindowKeyEvHandler()
{
}
-int CWindowRemoteHandler::remote_process_key(RemoteControl *remote_control, int key)
+int CWindowKeyEvHandler::remote_key(int key)
{
- MWindowGUI *mwindow_gui = remote_control->mwindow_gui;
- EDL *edl = mwindow_gui->mwindow->edl;
+ return remote_process_key(remote_control, key);
+}
+
+int CWindowKeyEvHandler::remote_process_key(RemoteControl *remote_control, int key)
+{
+ EDL *edl = mwindow->edl;
if( !edl ) return 0;
- PlayTransport *transport = mwindow_gui->mbuttons->transport;
+ PlayTransport *transport = mwindow->gui->mbuttons->transport;
if( !transport->get_edl() ) return 0;
PlaybackEngine *engine = transport->engine;
double position = engine->get_tracking_position();
double length = edl->tracks->total_length();
- int next_command = -1, lastkey = last_key;
- last_key = key;
+ int next_command = -1;
switch( key ) {
case '1': case '2': case '3': case '4':
case '5': case '6': case '7': case '8':
- if( lastkey == 'e' ) {
- mwindow_gui->mwindow->select_asset(key-'1', 1);
+ if( last_key == 'e' ) {
+ mwindow->select_asset(key-'1', 1);
break;
} // fall through
case '0': case '9':
case KPRECD: next_command = SLOW_REWIND; break;
case KPAUSE: next_command = SLOW_FWD; break;
case ' ': next_command = NORMAL_FWD; break;
- case 'a': gui->tile_windows(0); return 1;
- case 'b': gui->tile_windows(1); return 1;
- case 'c': gui->tile_windows(2); return 1;
-#ifdef HAVE_DVB
- case 'd':
- mwindow_gui->channel_info->toggle_scan();
- return 1;
-#endif
- case 'e':
- break;
+ case 'a': remote_control->gui->tile_windows(0); return 1;
+ case 'b': remote_control->gui->tile_windows(1); return 1;
+ case 'c': remote_control->gui->tile_windows(2); return 1;
+ case KPFSCRN:
case 'f': {
- Canvas *canvas = mwindow_gui->mwindow->cwindow->gui->canvas;
- if( !canvas->get_fullscreen() )
- canvas->start_fullscreen();
- else
- canvas->stop_fullscreen();
+ CWindowCanvas *canvas = mwindow->cwindow->gui->canvas;
+ int on = canvas->get_fullscreen() ? 0 : 1;
+ canvas->Canvas::set_fullscreen(on, 0);
return 1; }
default:
return -1;