X-Git-Url: http://git.cinelerra-gg.org/git/?p=goodguy%2Fhistory.git;a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fkeyframes.C;fp=cinelerra-5.1%2Fcinelerra%2Fkeyframes.C;h=696c8068387ec4ac3c16c58ddb2f0d563fe8122d;hp=9e90bd641d796fe43f76481d4a97753bb4a1a92b;hb=219e9cae947fc9454f65c210d600800158d798fb;hpb=853407b57330e275b6c58432c678159b2eac00db diff --git a/cinelerra-5.1/cinelerra/keyframes.C b/cinelerra-5.1/cinelerra/keyframes.C index 9e90bd64..696c8068 100644 --- a/cinelerra-5.1/cinelerra/keyframes.C +++ b/cinelerra-5.1/cinelerra/keyframes.C @@ -80,31 +80,16 @@ KeyFrame* KeyFrames::get_prev_keyframe(int64_t position, KeyFrame* KeyFrames::get_keyframe() { + int64_t pos = track->to_units(edl->local_session->get_selectionstart(1), 0); // Search for keyframe on or before selection - KeyFrame *result = - get_prev_keyframe( - track->to_units(edl->local_session->get_selectionstart(1), 0), - PLAY_FORWARD); - -// Return nearest keyframe if not in automatic keyframe generation - if(!edl->session->auto_keyframes) - { - return result; - } - else -// Return new keyframe - if(result == (KeyFrame*)default_auto || - result->position != track->to_units(edl->local_session->get_selectionstart(1), 0)) - { - return (KeyFrame*)insert_auto(track->to_units(edl->local_session->get_selectionstart(1), 0)); + KeyFrame *result = get_prev_keyframe(pos, PLAY_FORWARD); + if( edl->session->auto_keyframes ) { + if( !result || result->position != pos || + result == (KeyFrame*)default_auto ) +// generate keyframes while tweeking, and no keyframe found at pos + result = (KeyFrame*)insert_auto(pos); } - else -// Return existing keyframe - { - return result; - } - - return 0; + return result; }