int CWindowCoordRange::update(float scale)
{
+ CWindowCoordSlider *slider = coord->slider;
MWindow *mwindow = coord->gui->mwindow;
LocalSession *local_session = mwindow->edl->local_session;
int group = Automation::autogrouptype(coord->type, 0);
case AUTOGROUPTYPE_Y: min = -100; max = 100; break;
}
}
- float range = max - min;
- min -= range * scale;
- max += range * scale;
switch( group ) {
- case AUTOGROUPTYPE_ZOOM:
+ case AUTOGROUPTYPE_ZOOM: { // exp
+ float lv = log(slider->get_value());
+ float lmin = log(min), lmax = log(max);
+ float lr = (lmax - lmin) * scale;
+ min = exp(lv - 0.5*lr);
+ max = exp(lv + 0.5*lr);
if( min < 0.001 ) min = 0.001;
if( max > 1000. ) max = 1000.;
- break;
+ break; }
case AUTOGROUPTYPE_X:
- case AUTOGROUPTYPE_Y:
- if( min < -32767 ) min = -32767;
- if( max > 32767 ) max = 32767;
- break;
+ case AUTOGROUPTYPE_Y: { // linear
+ float dr = (max - min) * (scale-1);
+ if( (min -= dr) < -32767 ) min = -32767;
+ if( (max += dr) > 32767 ) max = 32767;
+ break; }
}
- CWindowCoordSlider *slider = coord->slider;
- coord->slider->update(slider->get_pointer_motion_range(),
+ slider->update(slider->get_pointer_motion_range(),
slider->get_value(), min, max);
unlock_window();
MWindowGUI *mgui = mwindow->gui;
int CWindowCoordRange::handle_up_event()
{
- return update(0.5);
+ return update(1.25);
}
int CWindowCoordRange::handle_down_event()
{
- return update(-0.25);
+ return update(0.8);
}
CWindowCropApply::CWindowCropApply(MWindow *mwindow, CWindowCropGUI *crop_gui, int x, int y)
if( k >= 0 ) {
track_item = (CWindowMaskItem *)track_items[k];
Track *track = track_item ? mwindow->edl->tracks->get_track_by_id(track_item->id) : 0;
- if( track && track->record ) track_id = track->get_id();
+ if( track && track->is_armed() ) track_id = track->get_id();
}
else
track_id = mwindow->cwindow->mask_track_id;
for( Track *track=mwindow->edl->tracks->first; track; track=track->next ) {
if( track->data_type != TRACK_VIDEO ) continue;
MaskAutos *mask_autos = (MaskAutos*)track->automation->autos[AUTOMATION_MASK];
- int color = !track->record ? RED : mask_autos->first ? high_color : -1;
+ int color = !track->is_armed() ? RED : mask_autos->first ? high_color : -1;
MaskAuto *mask_auto = (MaskAuto*)mask_autos->default_auto;
for( int i=0; color<0 && i<mask_auto->masks.size(); ++i )
if( mask_auto->masks[i]->points.size() > 0 ) color = high_color;
track_item = items[0];
}
Track *track = track_item ? mwindow->edl->tracks->get_track_by_id(track_item->id) : 0;
- int track_id = track_item && track && track->record ? track_item->id : -1;
+ int track_id = track_item && track && track->is_armed() ? track_item->id : -1;
gui->mask_on_track->set_back_color(track_id >= 0 ?
gui->get_resources()->text_background :
gui->get_resources()->text_background_disarmed);
//printf("CWindowMaskGUI::update 1\n");
get_keyframe(track, autos, keyframe, mask, point, 0);
mwindow->cwindow->mask_track_id = track ? track->get_id() : -1;
- mask_on_track->set_back_color(!track || track->record ?
+ mask_on_track->set_back_color(!track || track->is_armed() ?
get_resources()->text_background :
get_resources()->text_background_disarmed);
mask_on_track->update_items();