X-Git-Url: https://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Ftrack.h;h=c267eb5b3b58e2d2e8ae6a3873e3f4b96d66cd29;hb=eabda9cf447580a974fd3d67a3d0a26f09aeb523;hp=f59e989804905f877a08a25ca1cad5bf5caf8edd;hpb=fbdd13b462256ed4f3b35dc114385fe0b0de0dcd;p=goodguy%2Fcinelerra.git diff --git a/cinelerra-5.1/cinelerra/track.h b/cinelerra-5.1/cinelerra/track.h index f59e9898..c267eb5b 100644 --- a/cinelerra-5.1/cinelerra/track.h +++ b/cinelerra-5.1/cinelerra/track.h @@ -50,6 +50,7 @@ #include "trackcanvas.inc" #include "tracks.inc" #include "transition.inc" +#include "zwindow.inc" // UNITS ARE SAMPLES FOR ALL @@ -90,6 +91,8 @@ public: // Speed curve in use int has_speed(); +// length when speed is applied + int64_t speed_length(int64_t start, int64_t end); // Get length of track in seconds double get_length(); // Get dimensions of source for convenience functions @@ -140,7 +143,8 @@ public: // detach shared effects referencing module void detach_shared_effects(int module); - +// detach all corresponding effects in gang + void detach_ganged_effects(Plugin *plugin); // Called by playable tracks to test for playable server. // Descends the plugin tree without creating a virtual console. @@ -165,6 +169,14 @@ public: void change_plugins(SharedLocation &old_location, SharedLocation &new_location, int do_swap); void change_modules(int old_location, int new_location, int do_swap); Plugin *plugin_exists(int plugin_id); + Track *gang_master(); + int is_hidden(); + int in_gang(Track *track); + int is_armed(); + int is_ganged(); + int armed_gang(Track *track); + int index_in(Mixer *mixer); + int plays(); EDL *edl; Tracks *tracks; @@ -183,10 +195,10 @@ public: // There is some debate on whether to expand gang from faders to // dragging operations. This would allow every edit in a column to get dragged // simultaneously. - int gang; + int ganged; char title[BCTEXTLEN]; int play; - int record; + int armed; // mask enable bit flags int masks; // Nudge in track units. Positive shifts track earlier in time. This way @@ -234,8 +246,8 @@ public: virtual int copy_automation_derived(AutoConf *auto_conf, double selectionstart, double selectionend, FileXML *file) { return 0; }; - int paste_automation(double selectionstart, double total_length, - double frame_rate, int64_t sample_rate, FileXML *file, + int paste_automation(FileXML *file, + double selectionstart, double src_length, double src_rate, int default_only, int active_only); virtual int paste_automation_derived(double selectionstart, double selectionend, double total_length, FileXML *file, int shift_autos, int ¤t_pan) { return 0; }; @@ -311,6 +323,7 @@ public: // If the edit under position is playable. // Used by PlayableTracks::is_playable. int playable_edit(int64_t position, int direction); + void create_keyframes(double position, int mask, int mode); // ===================================== for handles, titles, etc @@ -318,7 +331,8 @@ public: int pixel; // pixel position from top of track view // Dimensions of this track if video int track_w, track_h; - int mixer_id; +// mixer set track id, gang master flag + int mixer_id, master; private: // Identification of the track