7 #include "cwindowgui.h"
10 #include "edlsession.h"
11 #include "mwindowgui.h"
12 #include "playbackengine.h"
13 #include "playtransport.h"
14 #include "preferences.h"
17 #include "trackcanvas.h"
19 #include "transportque.h"
28 CWindow::CWindow(MWindow *mwindow)
31 this->mwindow = mwindow;
37 delete playback_engine;
38 delete playback_cursor;
41 int CWindow::create_objects()
43 destination = mwindow->defaults->get("CWINDOW_DESTINATION", 0);
45 gui = new CWindowGUI(mwindow, this);
46 gui->create_objects();
48 playback_engine = new CPlayback(mwindow, this, gui->canvas);
51 playback_engine->create_objects();
52 gui->transport->set_engine(playback_engine);
53 playback_cursor = new CTracking(mwindow, this);
54 playback_cursor->create_objects();
58 Track* CWindow::calculate_affected_track()
60 Track* affected_track = 0;
61 for(Track *track = mwindow->edl->tracks->first;
65 if(track->data_type == TRACK_VIDEO &&
68 affected_track = track;
72 return affected_track;
75 Auto* CWindow::calculate_affected_auto(Autos *autos, int create)
77 Auto* affected_auto = 0;
81 int total = autos->total();
82 affected_auto = autos->get_auto_for_editing();
83 if(total != autos->total())
85 mwindow->gui->lock_window("CWindow::calculate_affected_auto");
86 mwindow->gui->canvas->draw_overlays();
87 mwindow->gui->canvas->flash();
88 mwindow->gui->unlock_window();
93 affected_auto = autos->get_prev_auto(PLAY_FORWARD, affected_auto);
104 void CWindow::update(int position,
110 //TRACE("CWindow::update 1");
114 //printf("CWindow::update 2\n");
115 gui->lock_window("CWindow::update 1");
116 gui->slider->set_position();
117 gui->unlock_window();
118 //printf("CWindow::update 2\n");
119 playback_engine->que->send_command(CURRENT_FRAME,
123 //printf("CWindow::update 3\n");
125 //TRACE("CWindow::update 4");
127 gui->lock_window("CWindow::update 2");
130 // Create tool window
133 gui->set_operation(mwindow->edl->session->cwindow_operation);
136 //TRACE("CWindow::update 5");
138 // Updated by video device.
139 if(overlays && !position)
141 gui->canvas->draw_refresh();
144 //TRACE("CWindow::update 5");
145 // Update tool parameters
146 // Never updated by someone else
147 if(tool_window || position)
154 gui->timebar->update(1, 1);
157 //TRACE("CWindow::update 6");
158 if(!mwindow->edl->session->cwindow_scrollbars)
159 gui->zoom_panel->update(AUTO_ZOOM);
161 gui->zoom_panel->update(mwindow->edl->session->cwindow_zoom);
162 //printf("CWindow::update 6\n");
164 gui->canvas->update_zoom(mwindow->edl->session->cwindow_xscroll,
165 mwindow->edl->session->cwindow_yscroll,
166 mwindow->edl->session->cwindow_zoom);
167 //printf("CWindow::update 6\n");
168 gui->canvas->reposition_window(mwindow->edl,
169 mwindow->theme->ccanvas_x,
170 mwindow->theme->ccanvas_y,
171 mwindow->theme->ccanvas_w,
172 mwindow->theme->ccanvas_h);
174 //printf("CWindow::update 6\n");
178 gui->unlock_window();
183 //printf("CWindow::update 7\n");