X-Git-Url: https://git.cinelerra-gg.org/git/?p=goodguy%2Fcinelerra.git;a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Ftrack.C;h=9fdc531a2b43854c299a7d076750a78a43fbc0b7;hp=2413c4f7dc6fa0aa45520866624e5fec71bc6928;hb=5ec378f09aeeb646705fdb8035b39a186374fba0;hpb=7718f72da6995e7b2b2a59dcc61cc80a2f4bf38f diff --git a/cinelerra-5.1/cinelerra/track.C b/cinelerra-5.1/cinelerra/track.C index 2413c4f7..9fdc531a 100644 --- a/cinelerra-5.1/cinelerra/track.C +++ b/cinelerra-5.1/cinelerra/track.C @@ -1142,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; @@ -1863,3 +1863,42 @@ int Track::get_mixer_id() return mixer_id; } +void Track::get_fauto_xyz(int fauto, float &x, float &y, float &z) +{ + FloatAutos **fautos = (FloatAutos **)&automation->autos; + FloatAuto *xauto = (FloatAuto *)fautos[fauto+0]->get_auto_for_editing(-1, 1); + if( xauto ) x = xauto->get_value(); + FloatAuto *yauto = (FloatAuto *)fautos[fauto+1]->get_auto_for_editing(-1, 1); + if( yauto ) y = yauto->get_value(); + FloatAuto *zauto = (FloatAuto *)fautos[fauto+2]->get_auto_for_editing(-1, 1); + if( zauto ) z = zauto->get_value(); +} +void Track::set_fauto_xyz(int fauto, float x, float y, float z) +{ + FloatAutos **fautos = (FloatAutos **)&automation->autos; + FloatAuto *xauto = (FloatAuto *)fautos[fauto+0]->get_auto_for_editing(-1, 1); + if( xauto ) xauto->set_value(x); + FloatAuto *yauto = (FloatAuto *)fautos[fauto+1]->get_auto_for_editing(-1, 1); + if( yauto ) yauto->set_value(y); + FloatAuto *zauto = (FloatAuto *)fautos[fauto+2]->get_auto_for_editing(-1, 1); + if( zauto ) zauto->set_value(z); +} + +void Track::get_projector(float &x, float &y, float &z) +{ + get_fauto_xyz(AUTOMATION_PROJECTOR_X, x, y, z); +} +void Track::set_projector(float x, float y, float z) +{ + set_fauto_xyz(AUTOMATION_PROJECTOR_X, x, y, z); +} + +void Track::get_camera(float &x, float &y, float &z) +{ + get_fauto_xyz(AUTOMATION_CAMERA_X, x, y, z); +} +void Track::set_camera(float x, float y, float z) +{ + set_fauto_xyz(AUTOMATION_CAMERA_X, x, y, z); +} +