r885: Don't delete a borrowed frame.
[cinelerra_cv/ct.git] / cinelerra / transportque.h
blob3308e4de1ec532be59edcf2ba0c1da1e90e006ff
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 adjust_playback_range();
28 int single_frame();
29 EDL* get_edl();
30 void delete_edl();
31 void new_edl();
33 int command;
34 int change_type;
35 // lowest numbered second in playback range
36 double start_position;
37 // highest numbered second in playback range
38 double end_position;
39 int infinite;
40 // Position used when starting playback
41 double playbackstart;
42 // Send output to device
43 int realtime;
44 // Use persistant starting point
45 int resume;
47 private:
48 // Copied to render engines
49 EDL *edl;
52 class TransportQue
54 public:
55 TransportQue();
56 ~TransportQue();
58 int send_command(int command,
59 // The change type is ORed to accumulate changes.
60 int change_type,
61 EDL *new_edl,
62 int realtime,
63 // Persistent starting point
64 int resume = 0,
65 int use_inout = 0);
66 void update_change_type(int change_type);
68 TransportCommand command;
69 Condition *input_lock, *output_lock;
72 #endif