00001 #ifndef TRANSPORTQUE_H 00002 #define TRANSPORTQUE_H 00003 00004 #include "canvas.inc" 00005 #include "condition.inc" 00006 #include "edl.inc" 00007 #include "preferences.inc" 00008 #include "transportque.inc" 00009 00010 class TransportCommand 00011 { 00012 public: 00013 TransportCommand(); 00014 ~TransportCommand(); 00015 00016 void reset(); 00017 // Get the direction based on the command 00018 int get_direction(); 00019 float get_speed(); 00020 void copy_from(TransportCommand *command); 00021 TransportCommand& operator=(TransportCommand &command); 00022 // Get the range to play back from the EDL 00023 void set_playback_range(EDL *edl = 0, int use_inout = 0); 00024 00025 // Adjust playback range with in/out points for rendering 00026 void playback_range_adjust_inout(); 00027 // Set playback range to in/out points for rendering 00028 void playback_range_inout(); 00029 // Set playback range to whole project for rendering 00030 void playback_range_project(); 00031 00032 int single_frame(); 00033 EDL* get_edl(); 00034 void delete_edl(); 00035 void new_edl(); 00036 00037 int command; 00038 int change_type; 00039 // lowest numbered second in playback range 00040 double start_position; 00041 // highest numbered second in playback range 00042 double end_position; 00043 int infinite; 00044 // Position used when starting playback 00045 double playbackstart; 00046 // Send output to device 00047 int realtime; 00048 // Use persistant starting point 00049 int resume; 00050 00051 private: 00052 // Copied to render engines 00053 EDL *edl; 00054 }; 00055 00056 class TransportQue 00057 { 00058 public: 00059 TransportQue(); 00060 ~TransportQue(); 00061 00062 int send_command(int command, 00063 // The change type is ORed to accumulate changes. 00064 int change_type, 00065 EDL *new_edl, 00066 int realtime, 00067 // Persistent starting point 00068 int resume = 0, 00069 int use_inout = 0); 00070 void update_change_type(int change_type); 00071 00072 TransportCommand command; 00073 Condition *input_lock, *output_lock; 00074 }; 00075 00076 #endif
1.5.5