projects
/
goodguy
/
cinelerra.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
collect_proxy nested_clip/edl fixes
[goodguy/cinelerra.git]
/
cinelerra-5.1
/
cinelerra
/
cwindowtool.C
diff --git
a/cinelerra-5.1/cinelerra/cwindowtool.C
b/cinelerra-5.1/cinelerra/cwindowtool.C
index 8370ab97167c705e9aef302452c8ac8e3fa31407..55d64b4504a871d9588508618ed8fd17618f640b 100644
(file)
--- a/
cinelerra-5.1/cinelerra/cwindowtool.C
+++ b/
cinelerra-5.1/cinelerra/cwindowtool.C
@@
-436,6
+436,7
@@
CWindowCoordRange::~CWindowCoordRange()
int CWindowCoordRange::update(float scale)
{
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);
MWindow *mwindow = coord->gui->mwindow;
LocalSession *local_session = mwindow->edl->local_session;
int group = Automation::autogrouptype(coord->type, 0);
@@
-448,22
+449,24
@@
int CWindowCoordRange::update(float scale)
case AUTOGROUPTYPE_Y: min = -100; max = 100; break;
}
}
case AUTOGROUPTYPE_Y: min = -100; max = 100; break;
}
}
- float range = max - min;
- min -= range * scale;
- max += range * scale;
switch( group ) {
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.;
if( min < 0.001 ) min = 0.001;
if( max > 1000. ) max = 1000.;
- break;
+ break;
}
case AUTOGROUPTYPE_X:
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;
slider->get_value(), min, max);
unlock_window();
MWindowGUI *mgui = mwindow->gui;
@@
-482,11
+485,11
@@
int CWindowCoordRange::update(float scale)
int CWindowCoordRange::handle_up_event()
{
int CWindowCoordRange::handle_up_event()
{
- return update(
0.
5);
+ return update(
1.2
5);
}
int CWindowCoordRange::handle_down_event()
{
}
int CWindowCoordRange::handle_down_event()
{
- return update(
-0.25
);
+ return update(
0.8
);
}
CWindowCropApply::CWindowCropApply(MWindow *mwindow, CWindowCropGUI *crop_gui, int x, int y)
}
CWindowCropApply::CWindowCropApply(MWindow *mwindow, CWindowCropGUI *crop_gui, int x, int y)
@@
-1737,7
+1740,7
@@
int CWindowMaskOnTrack::handle_event()
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( 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;
}
else
track_id = mwindow->cwindow->mask_track_id;
@@
-1761,7
+1764,7
@@
void CWindowMaskOnTrack::update_items()
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];
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;
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;
@@
-1809,7
+1812,7
@@
int CWindowMaskTrackTumbler::do_event(int dir)
track_item = items[0];
}
Track *track = track_item ? mwindow->edl->tracks->get_track_by_id(track_item->id) : 0;
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);
gui->mask_on_track->set_back_color(track_id >= 0 ?
gui->get_resources()->text_background :
gui->get_resources()->text_background_disarmed);
@@
-3018,7
+3021,7
@@
void CWindowMaskGUI::update()
//printf("CWindowMaskGUI::update 1\n");
get_keyframe(track, autos, keyframe, mask, point, 0);
mwindow->cwindow->mask_track_id = track ? track->get_id() : -1;
//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();
get_resources()->text_background :
get_resources()->text_background_disarmed);
mask_on_track->update_items();