X-Git-Url: https://main.carlh.net/gitweb/?a=blobdiff_plain;f=gtk2_ardour%2Fvideo_timeline.h;h=2e5aeb7ef7ec88da087b646cb075a89d2d9778a2;hb=cc83e1a9bfd7339c4ebfcde4a57d511eec51923e;hp=dd61d2ef73c6646c4cfa7471c87f856d683ec532;hpb=e466ce40ad1ba591543020cb7c0aa15dbebef81e;p=ardour.git diff --git a/gtk2_ardour/video_timeline.h b/gtk2_ardour/video_timeline.h index dd61d2ef73..2e5aeb7ef7 100644 --- a/gtk2_ardour/video_timeline.h +++ b/gtk2_ardour/video_timeline.h @@ -29,7 +29,7 @@ #include "video_image_frame.h" #include "video_monitor.h" #include "pbd/signals.h" -#include "canvas/group.h" +#include "canvas/container.h" namespace ARDOUR { class Session; @@ -55,7 +55,7 @@ class PublicEditor; class VideoTimeLine : public sigc::trackable, public ARDOUR::SessionHandlePtr, public PBD::ScopedConnectionList, public PBD::StatefulDestructible { public: - VideoTimeLine (PublicEditor*, ArdourCanvas::Group*, int); + VideoTimeLine (PublicEditor*, ArdourCanvas::Container*, int); virtual ~VideoTimeLine (); void set_session (ARDOUR::Session *s); @@ -74,11 +74,13 @@ class VideoTimeLine : public sigc::trackable, public ARDOUR::SessionHandlePtr, p void toggle_offset_locked (); bool is_offset_locked () { return video_offset_lock; } + ARDOUR::sampleoffset_t get_video_start_offset() { return video_start_offset; } + void open_video_monitor (); void close_video_monitor (); void control_video_monitor (int, int); void terminated_video_monitor (); - void manual_seek_video_monitor (framepos_t pos); + void manual_seek_video_monitor (samplepos_t pos); void parameter_changed (std::string const & p); void set_video_server_url (std::string); @@ -94,25 +96,26 @@ class VideoTimeLine : public sigc::trackable, public ARDOUR::SessionHandlePtr, p void close_session (); void sync_session_state (); /* video-monitor does not actively report window/pos changes, query it */ float get_apv(); /* audio samples per video frame; */ - ARDOUR::framecnt_t get_duration () { return video_duration;} - ARDOUR::frameoffset_t get_offset () { return video_offset;} - ARDOUR::frameoffset_t quantify_frames_to_apv (ARDOUR::frameoffset_t offset) { return rint(offset/get_apv())*get_apv(); } - void set_offset (ARDOUR::frameoffset_t offset) { video_offset = quantify_frames_to_apv(offset); } // this function does not update video_offset_p, call save_undo() to finalize changes to this! - this fn is currently only used from editor_drag.cc + ARDOUR::samplecnt_t get_duration () { return video_duration;} + ARDOUR::sampleoffset_t get_offset () { return video_offset;} + ARDOUR::sampleoffset_t quantify_samples_to_apv (ARDOUR::sampleoffset_t offset) { return rint(offset/get_apv())*get_apv(); } + void set_offset (ARDOUR::sampleoffset_t offset) { video_offset = quantify_samples_to_apv(offset); } // this function does not update video_offset_p, call save_undo() to finalize changes to this! - this fn is currently only used from editor_drag.cc protected: PublicEditor *editor; - ArdourCanvas::Group *videotl_group; + ArdourCanvas::Container *videotl_group; int bar_height; std::string _xjadeo_bin; void find_xjadeo (); + void find_harvid (); - ARDOUR::frameoffset_t video_start_offset; /**< unit: audio-samples - video-file */ - ARDOUR::frameoffset_t video_offset; /**< unit: audio-samples - session */ - ARDOUR::frameoffset_t video_offset_p; /**< used for undo from editor_drag.cc */ - framepos_t video_duration; /**< unit: audio-samples */ + ARDOUR::sampleoffset_t video_start_offset; /**< unit: audio-samples - video-file */ + ARDOUR::sampleoffset_t video_offset; /**< unit: audio-samples - session */ + ARDOUR::sampleoffset_t video_offset_p; /**< used for undo from editor_drag.cc */ + samplepos_t video_duration; /**< unit: audio-samples */ std::string video_filename; bool local_file; double video_aspect_ratio; @@ -123,11 +126,17 @@ class VideoTimeLine : public sigc::trackable, public ARDOUR::SessionHandlePtr, p std::string video_server_url; std::string server_docroot; + void xjadeo_readversion (std::string d, size_t s); + void harvid_readversion (std::string d, size_t s); + std::string xjadeo_version; + std::string harvid_version; + typedef std::list VideoFrames; VideoFrames video_frames; - VideoImageFrame *get_video_frame (framepos_t vfn, int cut=0, int rightend = -1); - bool flush_frames; - void remove_frames (); + VideoImageFrame* get_video_frame (samplepos_t vfn, int cut=0, int rightend = -1); + + void remove_frames (); + bool _flush_frames; std::string translated_filename ();