X-Git-Url: https://git.cinelerra-gg.org/git/?p=goodguy%2Fcinelerra.git;a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Ftrack.C;h=d5363317c5877b8e7badd91fe36537e5d62be09f;hp=ee16058bd1db7054d97c5a3f9eb9979288402c77;hb=9668279ccef86a9cc9138aaa1a659f158698f829;hpb=59e74f262d7b6be235f2bbfaac35ef4274f52dc9 diff --git a/cinelerra-5.1/cinelerra/track.C b/cinelerra-5.1/cinelerra/track.C index ee16058b..d5363317 100644 --- a/cinelerra-5.1/cinelerra/track.C +++ b/cinelerra-5.1/cinelerra/track.C @@ -33,6 +33,7 @@ #include "keyframe.h" #include "labels.h" #include "localsession.h" +#include "maskauto.h" #include "module.h" #include "patch.h" #include "patchbay.h" @@ -67,6 +68,7 @@ Track::Track(EDL *edl, Tracks *tracks) : ListItem() track_h = edl->session->output_h; id = EDL::next_id(); mixer_id = -1; + masks = (1<title, track->title); this->expand_view = track->expand_view; this->draw = track->draw; this->gang = track->gang; @@ -93,6 +94,8 @@ int Track::copy_settings(Track *track, int do_title) this->play = track->play; this->track_w = track->track_w; this->track_h = track->track_h; + this->masks = track->masks; + strcpy(this->title, track->title); return 0; } @@ -334,6 +337,7 @@ int Track::load(FileXML *file, int track_offset, uint32_t load_flags) expand_view = file->tag.get_property("EXPAND", expand_view); track_w = file->tag.get_property("TRACK_W", track_w); track_h = file->tag.get_property("TRACK_H", track_h); + masks = file->tag.get_property("MASKS", masks); load_header(file, load_flags); @@ -441,8 +445,7 @@ void Track::insert_track(Track *track, //printf("Track::insert_track %d %s %jd\n", __LINE__, title, min_length); // Decide whether to copy settings based on load_mode - if( replace_default ) - copy_settings(track, 0); + if(replace_default) copy_settings(track); edits->insert_edits(track->edits, to_units(position, 0), @@ -853,8 +856,8 @@ void Track::synchronize_params(Track *track) int Track::dump(FILE *fp) { - fprintf(fp," Data type %d, draw %d, gang %d, play %d, record %d, nudge %jd\n", - data_type, draw, gang, play, record, nudge); + fprintf(fp," Data type %d, draw %d, gang %d, play %d, record %d, nudge %jd, masks 0x%04x\n", + data_type, draw, gang, play, record, nudge, masks); fprintf(fp," Title %s\n", title); fprintf(fp," Edits:\n"); for(Edit* current = edits->first; current; current = NEXT) @@ -1057,6 +1060,7 @@ int Track::copy(int copy_flags, double start, double end, file->tag.set_property("EXPAND", expand_view); file->tag.set_property("TRACK_W", track_w); file->tag.set_property("TRACK_H", track_h); + file->tag.set_property("MASKS", masks); save_header(file); file->append_tag(); file->append_newline(); @@ -1138,7 +1142,7 @@ int Track::blade(double position) { int64_t start = to_units(position, 0); Edit *edit = edits->split_edit(start); - if( !edit ) return 1; + if( !edit || edit->silence() ) return 1; edit->hard_left = 1; if( edit->previous ) edit->previous->hard_right = 1; return 0;