r1014: Enable horizontal scrolling with the mouse wheel by pressing Ctrl.
[cinelerra_cv/ct.git] / cinelerra / transportque.h
blobce573c72fbba3569817e2b1813566fc8cbc4e83d
1 #ifndef TRANSPORTQUE_H
2 #define TRANSPORTQUE_H
4 #include "canvas.inc"
5 #include "condition.inc"
6 #include "edl.inc"
7 #include "preferences.inc"
8 #include "transportque.inc"
10 class TransportCommand
12 public:
13 TransportCommand();
14 ~TransportCommand();
16 void reset();
17 // Get the direction based on the command
18 int get_direction();
19 float get_speed();
20 void copy_from(TransportCommand *command);
21 TransportCommand& operator=(TransportCommand &command);
22 // Get the range to play back from the EDL
23 void set_playback_range(EDL *edl = 0, int use_inout = 0);
25 // Adjust playback range with in/out points for rendering
26 void playback_range_adjust_inout();
27 // Set playback range to in/out points for rendering
28 void playback_range_inout();
29 // Set playback range to whole project for rendering
30 void playback_range_project();
32 int single_frame();
33 EDL* get_edl();
34 void delete_edl();
35 void new_edl();
37 int command;
38 int change_type;
39 // lowest numbered second in playback range
40 double start_position;
41 // highest numbered second in playback range
42 double end_position;
43 int infinite;
44 // Position used when starting playback
45 double playbackstart;
46 // Send output to device
47 int realtime;
48 // Use persistant starting point
49 int resume;
51 private:
52 // Copied to render engines
53 EDL *edl;
56 class TransportQue
58 public:
59 TransportQue();
60 ~TransportQue();
62 int send_command(int command,
63 // The change type is ORed to accumulate changes.
64 int change_type,
65 EDL *new_edl,
66 int realtime,
67 // Persistent starting point
68 int resume = 0,
69 int use_inout = 0);
70 void update_change_type(int change_type);
72 TransportCommand command;
73 Condition *input_lock, *output_lock;
76 #endif