+void KeyFrame::span_keyframes(int64_t start, int64_t end)
+{
+ BC_Hash *params = 0;
+ char *text = 0, *extra = 0;
+// The first one determines the changed parameters since it is the one displayed
+ KeyFrames *keyframes = (KeyFrames *)autos;
+ KeyFrame *current = keyframes->get_prev_keyframe(start, PLAY_FORWARD);
+ current->get_diff(this, ¶ms, &text, &extra);
+// Always update the first one
+ current->update_parameter(params, text, extra);
+
+// Replace changed parameter in all selected keyframes.
+ for( current = (KeyFrame*)NEXT; current; current = (KeyFrame*)NEXT ) {
+ if( current->position >= end ) break;
+ current->update_parameter(params, text, extra);
+ }
+ delete params;
+ delete [] text,
+ delete [] extra;
+}
+