r956: README.BUILD - add more library recommendations
[cinelerra_cv/ct.git] / cinelerra / tracking.h
blobaa7f17b569c21b2c76e32d730950bb1df5d9690d
1 #ifndef TRACKING_H
2 #define TRACKING_H
4 #include <sys/time.h>
5 #include <sys/types.h>
6 #include <unistd.h>
8 #include "condition.inc"
9 #include "mwindow.inc"
10 #include "mwindowgui.inc"
11 #include "playbackengine.inc"
12 #include "thread.h"
13 #include "bctimer.h"
15 class Tracking : public Thread
17 public:
18 Tracking(MWindow *mwindow);
19 virtual ~Tracking();
21 void create_objects();
22 virtual int start_playback(double new_position);
23 virtual int stop_playback();
25 // Called by the tracker to get the current position
26 virtual PlaybackEngine* get_playback_engine();
27 virtual double get_tracking_position();
28 // Update position displayed
29 virtual void update_tracker(double position);
30 // Update meters
31 virtual void update_meters(int64_t position);
32 virtual void stop_meters();
33 int get_pixel(double position);
35 // Erase cursor if it's visible. Called by start_playback
36 // Draw new cursor at last_position if invisible
37 virtual void draw();
41 void run();
43 // Values to return from playback_engine to update_meter .
44 // Use ArrayList to simplify module counting
45 ArrayList<double> module_levels;
46 int state;
57 void show_playback_cursor(int64_t position);
58 int view_follows_playback;
59 // Delay until startup
60 Condition *startup_lock;
61 MWindow *mwindow;
62 MWindowGUI *gui;
63 double last_position;
64 int follow_loop;
65 int64_t current_offset;
66 int reverse;
67 int double_speed;
68 Timer timer;
69 // Pixel of last drawn cursor
70 int pixel;
71 // Cursor is visible
72 int visible;
75 #endif