X-Git-Url: https://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fpatchbay.C;h=c2ae534dc4ed137f90c0e35d61ef110aed9ca2c6;hb=83b70dd60863377cb281e6be5206304e10373e30;hp=381e1c0f4d925ce329b171c6c2d23ada7bd9c494;hpb=48a6854a1ca58aa291ffc6fe3a48807492dfbef7;p=goodguy%2Fcinelerra.git diff --git a/cinelerra-5.1/cinelerra/patchbay.C b/cinelerra-5.1/cinelerra/patchbay.C index 381e1c0f..c2ae534d 100644 --- a/cinelerra-5.1/cinelerra/patchbay.C +++ b/cinelerra-5.1/cinelerra/patchbay.C @@ -138,6 +138,8 @@ PatchBay::PatchBay(MWindow *mwindow, MWindowGUI *gui) this->pane = 0; drag_operation = Tracks::NONE; for(int i = 0; i < TRANSFER_TYPES; i++) mode_icons[i] = 0; +// *** CONTEXT_HELP *** + context_help_set_keyword("The Patchbay"); } PatchBay::PatchBay(MWindow *mwindow, @@ -156,6 +158,8 @@ PatchBay::PatchBay(MWindow *mwindow, this->pane = pane; drag_operation = Tracks::NONE; for(int i = 0; i < TRANSFER_TYPES; i++) mode_icons[i] = 0; +// *** CONTEXT_HELP *** + context_help_set_keyword("The Patchbay"); // printf("PatchBay::PatchBay %d %d %d %d %d\n", // __LINE__, // x, @@ -515,38 +519,20 @@ int PatchBay::update() return 0; } -void PatchBay::synchronize_faders(float change, int data_type, Track *skip) +void PatchBay::synchronize_faders(float dv, int data_type, Track *skip, int edge, int span) { - for(Track *current = mwindow->edl->tracks->first; - current; - current = NEXT) - { - if(current->data_type == data_type && - current->armed_gang(skip) && - current->is_armed() && - current != skip) - { - FloatAutos *fade_autos = (FloatAutos*)current->automation->autos[AUTOMATION_FADE]; - double position = mwindow->edl->local_session->get_selectionstart(1); - - - FloatAuto *keyframe = (FloatAuto*)fade_autos->get_auto_for_editing(position); - - float new_value = keyframe->get_value() + change; - if(data_type == TRACK_AUDIO) - CLAMP(new_value, - mwindow->edl->local_session->automation_mins[AUTOGROUPTYPE_AUDIO_FADE], - mwindow->edl->local_session->automation_maxs[AUTOGROUPTYPE_AUDIO_FADE]); - else - CLAMP(new_value, - mwindow->edl->local_session->automation_mins[AUTOGROUPTYPE_VIDEO_FADE], - mwindow->edl->local_session->automation_maxs[AUTOGROUPTYPE_VIDEO_FADE]); - - keyframe->set_value(new_value); - - PatchGUI *patch = get_patch_of(current); - if(patch) patch->update(patch->x, patch->y); - } + for( Track *current=mwindow->edl->tracks->first; current; current=NEXT ) { + if( current == skip ) continue; + if( skip && !current->armed_gang(skip) ) continue; + if( current->data_type != data_type ) continue; + if( !current->is_armed() ) continue; + FloatAutos *fade_autos = (FloatAutos*)current->automation->autos[AUTOMATION_FADE]; + double position = mwindow->edl->local_session->get_selectionstart(1); + FloatAuto *float_auto = (FloatAuto*)fade_autos->get_auto_for_editing(position); + int64_t pos = float_auto->position; + float_auto->bump_update(pos, dv, edge, span); + PatchGUI *patch = get_patch_of(current); + if( patch ) patch->update(patch->x, patch->y); } }