4 #include "edlsession.h"
5 #include "localsession.h"
7 #include "meterpanel.h"
9 #include "renderengine.h"
10 #include "mainclock.h"
11 #include "vplayback.h"
14 #include "vtracking.h"
16 #include "vwindowgui.h"
19 VTracking::VTracking(MWindow *mwindow, VWindow *vwindow)
22 this->vwindow = vwindow;
25 VTracking::~VTracking()
29 PlaybackEngine* VTracking::get_playback_engine()
31 return vwindow->playback_engine;
34 void VTracking::update_tracker(double position)
36 Asset *asset = vwindow->get_edl()->assets->first;
37 //printf("VTracking::update_tracker %ld\n", position);
38 vwindow->gui->lock_window();
39 vwindow->get_edl()->local_session->selectionstart =
40 vwindow->get_edl()->local_session->selectionend =
42 vwindow->gui->slider->update(position);
44 vwindow->gui->clock->update(position +
45 asset->tcstart / (asset->video_data ?
49 // This is going to boost the latency but we need to update the timebar
50 vwindow->gui->timebar->draw_range();
51 vwindow->gui->timebar->flash();
53 vwindow->gui->unlock_window();
55 update_meters((int64_t)(position * mwindow->edl->session->frame_rate));
58 void VTracking::update_meters(int64_t position)
60 double output_levels[MAXCHANNELS];
61 int do_audio = get_playback_engine()->get_output_levels(output_levels, position);
64 vwindow->gui->lock_window();
65 vwindow->gui->meters->update(output_levels);
66 vwindow->gui->unlock_window();
70 void VTracking::stop_meters()
72 vwindow->gui->lock_window();
73 vwindow->gui->meters->stop_meters();
74 vwindow->gui->unlock_window();
77 void VTracking::draw()