From: Good Guy Date: Thu, 18 Jul 2019 21:13:28 +0000 (-0600) Subject: span keyframes toggle, rect_audio tweaks, fix playbackengine clear output for audio... X-Git-Tag: 2019-08~16 X-Git-Url: https://git.cinelerra-gg.org/git/?p=goodguy%2Fcinelerra.git;a=commitdiff_plain;h=620f70a943c1f47880ec68a908aa03bf463e741f span keyframes toggle, rect_audio tweaks, fix playbackengine clear output for audio only in viewer, ffmpeg plugin_opts tweak, gwdw theme text color --- diff --git a/cinelerra-5.1/cinelerra/cwindowgui.C b/cinelerra-5.1/cinelerra/cwindowgui.C index f851f1be..ebb95e9a 100644 --- a/cinelerra-5.1/cinelerra/cwindowgui.C +++ b/cinelerra-5.1/cinelerra/cwindowgui.C @@ -878,6 +878,7 @@ void panel_btn(fit_selection,(), fit_selection()) void panel_btn(fit_autos,(int all), fit_autos(all)) void panel_btn(set_editing_mode,(int mode), set_editing_mode(mode)) void panel_btn(set_auto_keyframes,(int v), set_auto_keyframes(v)) +void panel_btn(set_span_keyframes,(int v), set_span_keyframes(v)) void panel_btn(set_labels_follow_edits,(int v), set_labels_follow_edits(v)) diff --git a/cinelerra-5.1/cinelerra/cwindowgui.h b/cinelerra-5.1/cinelerra/cwindowgui.h index f2ae71c3..af847454 100644 --- a/cinelerra-5.1/cinelerra/cwindowgui.h +++ b/cinelerra-5.1/cinelerra/cwindowgui.h @@ -187,6 +187,7 @@ public: void panel_fit_autos(int all); void panel_set_editing_mode(int mode); void panel_set_auto_keyframes(int v); + void panel_set_span_keyframes(int v); void panel_set_labels_follow_edits(int v); MWindow *mwindow; diff --git a/cinelerra-5.1/cinelerra/editpanel.C b/cinelerra-5.1/cinelerra/editpanel.C index 4e80555e..3d7703c2 100644 --- a/cinelerra-5.1/cinelerra/editpanel.C +++ b/cinelerra-5.1/cinelerra/editpanel.C @@ -118,6 +118,7 @@ EditPanel::EditPanel(MWindow *mwindow, this->arrow = 0; this->ibeam = 0; this->keyframe = 0; + this->span_keyframe = 0; this->mangoto = 0; this->click2play = 0; locklabels = 0; @@ -139,6 +140,7 @@ void EditPanel::update() if( arrow ) arrow->update(new_editing_mode == EDITING_ARROW); if( ibeam ) ibeam->update(new_editing_mode == EDITING_IBEAM); if( keyframe ) keyframe->update(mwindow->edl->session->auto_keyframes); + if( span_keyframe ) span_keyframe->update(mwindow->edl->session->span_keyframes); if( locklabels ) locklabels->set_value(mwindow->edl->session->labels_follow_edits); if( click2play ) { int value = !is_vwindow() ? @@ -193,6 +195,9 @@ void EditPanel::create_buttons() keyframe = new KeyFrameButton(mwindow, this, x1, y1); subwindow->add_subwindow(keyframe); x1 += keyframe->get_w(); + span_keyframe = new SpanKeyFrameButton(mwindow, this, x1, y1); + subwindow->add_subwindow(span_keyframe); + x1 += span_keyframe->get_w(); } if( use_locklabels ) { @@ -334,6 +339,8 @@ void EditPanel::reposition_buttons(int x, int y) if( use_keyframe ) { keyframe->reposition_window(x1, y1); x1 += keyframe->get_w(); + span_keyframe->reposition_window(x1, y1); + x1 += span_keyframe->get_w(); } if( use_locklabels ) { @@ -941,6 +948,24 @@ int KeyFrameButton::keypress_event() return 0; } +//set_span_keyframes +SpanKeyFrameButton::SpanKeyFrameButton(MWindow *mwindow, EditPanel *panel, int x, int y) + : BC_Toggle(x, y, + mwindow->theme->get_image_set("spankeyframe"), + mwindow->edl->session->span_keyframes, + "", 0, 0, 0) +{ + this->mwindow = mwindow; + this->panel = panel; + set_tooltip(_("Allow keyframe spanning")); +} + +int SpanKeyFrameButton::handle_event() +{ + panel->panel_set_span_keyframes(get_value()); + return 1; +} + //set_labels_follow_edits LockLabelsButton::LockLabelsButton(MWindow *mwindow, EditPanel *panel, int x, int y) : BC_Toggle(x, y, diff --git a/cinelerra-5.1/cinelerra/editpanel.h b/cinelerra-5.1/cinelerra/editpanel.h index 9b5fe1a4..67ab431d 100644 --- a/cinelerra-5.1/cinelerra/editpanel.h +++ b/cinelerra-5.1/cinelerra/editpanel.h @@ -322,6 +322,15 @@ public: EditPanel *panel; }; +class SpanKeyFrameButton : public BC_Toggle +{ +public: + SpanKeyFrameButton(MWindow *mwindow, EditPanel *panel, int x, int y); + int handle_event(); + MWindow *mwindow; + EditPanel *panel; +}; + class LockLabelsButton : public BC_Toggle { public: @@ -389,6 +398,7 @@ public: virtual void panel_fit_autos(int all) = 0; virtual void panel_set_editing_mode(int mode) = 0; virtual void panel_set_auto_keyframes(int v) = 0; + virtual void panel_set_span_keyframes(int v) = 0; virtual void panel_set_labels_follow_edits(int v) = 0; MWindow *mwindow; @@ -441,6 +451,7 @@ public: ArrowButton *arrow; IBeamButton *ibeam; KeyFrameButton *keyframe; + SpanKeyFrameButton *span_keyframe; LockLabelsButton *locklabels; int is_mwindow() { return window_id == MWINDOW_ID; } diff --git a/cinelerra-5.1/cinelerra/edlsession.C b/cinelerra-5.1/cinelerra/edlsession.C index 98e7ea4a..91b53d22 100644 --- a/cinelerra-5.1/cinelerra/edlsession.C +++ b/cinelerra-5.1/cinelerra/edlsession.C @@ -53,6 +53,7 @@ EDLSession::EDLSession(EDL *edl) audio_tracks = 2; autos_follow_edits = 1; // this is needed for predictability auto_keyframes = 0; + span_keyframes = 0; brender_start = brender_end = 0.0; clipboard_length = 0; // unused color_model = BC_RGBA8888; @@ -274,6 +275,7 @@ int EDLSession::load_defaults(BC_Hash *defaults) single_standalone = defaults->get("SINGLE_STANDALONE", 1); playback_preload = defaults->get("PLAYBACK_PRELOAD", 0); auto_keyframes = defaults->get("AUTO_KEYFRAMES", 0); + span_keyframes = defaults->get("SPAN_KEYFRAMES", 0); meter_format = defaults->get("METER_FORMAT", METER_DB); min_meter_db = defaults->get("MIN_METER_DB", -85); max_meter_db = defaults->get("MAX_METER_DB", 6); @@ -419,6 +421,7 @@ int EDLSession::save_defaults(BC_Hash *defaults) defaults->update("SINGLE_STANDALONE", single_standalone); defaults->update("PLAYBACK_PRELOAD", playback_preload); defaults->update("AUTO_KEYFRAMES", auto_keyframes); + defaults->update("SPAN_KEYFRAMES", span_keyframes); defaults->update("METER_FORMAT", meter_format); defaults->update("MIN_METER_DB", min_meter_db); defaults->update("MAX_METER_DB", max_meter_db); @@ -597,6 +600,7 @@ int EDLSession::load_xml(FileXML *file, } auto_conf->load_xml(file); auto_keyframes = file->tag.get_property("AUTO_KEYFRAMES", auto_keyframes); + span_keyframes = file->tag.get_property("SPAN_KEYFRAMES", span_keyframes); autos_follow_edits = file->tag.get_property("AUTOS_FOLLOW_EDITS", autos_follow_edits); brender_start = file->tag.get_property("BRENDER_START", brender_start); brender_end = file->tag.get_property("BRENDER_END", brender_end); @@ -663,6 +667,7 @@ int EDLSession::save_xml(FileXML *file) } auto_conf->save_xml(file); file->tag.set_property("AUTO_KEYFRAMES", auto_keyframes); + file->tag.set_property("SPAN_KEYFRAMES", span_keyframes); file->tag.set_property("AUTOS_FOLLOW_EDITS", autos_follow_edits); file->tag.set_property("BRENDER_START", brender_start); file->tag.set_property("BRENDER_END", brender_end); @@ -841,6 +846,7 @@ int EDLSession::copy(EDLSession *session) plugins_follow_edits = session->plugins_follow_edits; single_standalone = session->single_standalone; auto_keyframes = session->auto_keyframes; + span_keyframes = session->span_keyframes; // last_playback_position = session->last_playback_position; meter_format = session->meter_format; min_meter_db = session->min_meter_db; diff --git a/cinelerra-5.1/cinelerra/edlsession.h b/cinelerra-5.1/cinelerra/edlsession.h index 44d09974..343a51f3 100644 --- a/cinelerra-5.1/cinelerra/edlsession.h +++ b/cinelerra-5.1/cinelerra/edlsession.h @@ -80,6 +80,8 @@ public: int autos_follow_edits; // Generate keyframes for every tweek int auto_keyframes; +// use spanning parameter update + int span_keyframes; // Where to do background rendering double brender_start; double brender_end; diff --git a/cinelerra-5.1/cinelerra/gwindowgui.C b/cinelerra-5.1/cinelerra/gwindowgui.C index 09a09cb8..53061be9 100644 --- a/cinelerra-5.1/cinelerra/gwindowgui.C +++ b/cinelerra-5.1/cinelerra/gwindowgui.C @@ -251,7 +251,9 @@ void GWindowGUI::create_objects() continue; } const char *label = toggle_text(tp); - int color = tp->isauto > 0 ? auto_colors[tp->ref] : WHITE; + int color = tp->isauto > 0 ? + auto_colors[tp->ref] : + get_resources()->text_default ; GWindowToggle *toggle = new GWindowToggle(this, x, y, label, color, tp); add_tool(toggles[i] = toggle); if( tp->isauto > 0 ) { diff --git a/cinelerra-5.1/cinelerra/indexfile.C b/cinelerra-5.1/cinelerra/indexfile.C index 7bbd2955..aedbfbb8 100644 --- a/cinelerra-5.1/cinelerra/indexfile.C +++ b/cinelerra-5.1/cinelerra/indexfile.C @@ -772,7 +772,7 @@ SET_TRACE // A different algorithm has to be used if it's 1 sample per pixel and the // index is used. Now the min and max values are equal so we join the max samples. if(mwindow->edl->local_session->zoom_sample == 1) { - canvas->draw_line(x2 - 1, prev_y1, x2, y1, pixmap); + canvas->draw_line(x2 - 1, !rect_audio ? prev_y1 : center_pixel, x2, y1, pixmap); } else { // Extend line height if it doesn't connect to previous line @@ -783,7 +783,7 @@ SET_TRACE else { first_frame = 0; } - canvas->draw_line(x2, y1, x2, y2, pixmap); + canvas->draw_line(x2, y1, x2, !rect_audio ? y2 : center_pixel, pixmap); } prev_y1 = next_y1; prev_y2 = next_y2; diff --git a/cinelerra-5.1/cinelerra/keyframes.C b/cinelerra-5.1/cinelerra/keyframes.C index 696c8068..68d700f4 100644 --- a/cinelerra-5.1/cinelerra/keyframes.C +++ b/cinelerra-5.1/cinelerra/keyframes.C @@ -101,7 +101,8 @@ void KeyFrames::update_parameter(KeyFrame *src) selection_start = edl->align_to_frame(selection_start, 0); selection_end = edl->align_to_frame(selection_end, 0); - if( EQUIV(selection_start, selection_end) ) { + if( !edl->session->span_keyframes || + EQUIV(selection_start, selection_end) ) { // Search for keyframe to write KeyFrame *dst = get_keyframe(); dst->copy_data(src); diff --git a/cinelerra-5.1/cinelerra/maskautos.C b/cinelerra-5.1/cinelerra/maskautos.C index 6904d81e..bac0d851 100644 --- a/cinelerra-5.1/cinelerra/maskautos.C +++ b/cinelerra-5.1/cinelerra/maskautos.C @@ -22,6 +22,7 @@ #include "automation.inc" #include "clip.h" #include "edl.h" +#include "edlsession.h" #include "localsession.h" #include "maskauto.h" #include "maskautos.h" @@ -50,7 +51,8 @@ void MaskAutos::update_parameter(MaskAuto *src) // Selection is always aligned to frame for masks // Create new keyframe if auto keyframes or replace entire keyframe. - if(selection_start == selection_end) + if( !edl->session->span_keyframes || + EQUIV(selection_start, selection_end) ) { // Search for keyframe to write to MaskAuto *dst = (MaskAuto*)get_auto_for_editing(); diff --git a/cinelerra-5.1/cinelerra/mbuttons.C b/cinelerra-5.1/cinelerra/mbuttons.C index de1bd7a3..5aa8677e 100644 --- a/cinelerra-5.1/cinelerra/mbuttons.C +++ b/cinelerra-5.1/cinelerra/mbuttons.C @@ -275,6 +275,11 @@ void MainEditing::panel_set_auto_keyframes(int v) mwindow->set_auto_keyframes(v); } +void MainEditing::panel_set_span_keyframes(int v) +{ + mwindow->set_span_keyframes(v); +} + void MainEditing::panel_set_labels_follow_edits(int v) { mwindow->set_labels_follow_edits(v); diff --git a/cinelerra-5.1/cinelerra/mbuttons.h b/cinelerra-5.1/cinelerra/mbuttons.h index 0e8771f3..06e53848 100644 --- a/cinelerra-5.1/cinelerra/mbuttons.h +++ b/cinelerra-5.1/cinelerra/mbuttons.h @@ -105,6 +105,7 @@ public: void panel_fit_autos(int all); void panel_set_editing_mode(int mode); void panel_set_auto_keyframes(int v); + void panel_set_span_keyframes(int v); void panel_set_labels_follow_edits(int v); MWindow *mwindow; diff --git a/cinelerra-5.1/cinelerra/mwindow.C b/cinelerra-5.1/cinelerra/mwindow.C index 0661591a..b3ad59a0 100644 --- a/cinelerra-5.1/cinelerra/mwindow.C +++ b/cinelerra-5.1/cinelerra/mwindow.C @@ -2989,6 +2989,17 @@ void MWindow::set_auto_keyframes(int value) cwindow->gui->unlock_window(); } +void MWindow::set_span_keyframes(int value) +{ + edl->session->span_keyframes = value; + gui->mbuttons->edit_panel->span_keyframe->update(value); + gui->flush(); + cwindow->gui->lock_window("MWindow::set_span_keyframes"); + cwindow->gui->edit_panel->span_keyframe->update(value); + cwindow->gui->flush(); + cwindow->gui->unlock_window(); +} + void MWindow::set_auto_visibility(Autos *autos, int value) { if( autos->type == Autos::AUTOMATION_TYPE_PLUGIN ) diff --git a/cinelerra-5.1/cinelerra/mwindow.h b/cinelerra-5.1/cinelerra/mwindow.h index b0cc09f0..24d75790 100644 --- a/cinelerra-5.1/cinelerra/mwindow.h +++ b/cinelerra-5.1/cinelerra/mwindow.h @@ -476,6 +476,7 @@ public: void set_automation_mode(int mode); void set_keyframe_type(int mode); void set_auto_keyframes(int value); + void set_span_keyframes(int value); void set_auto_visibility(Autos *autos, int value); void set_labels_follow_edits(int value); diff --git a/cinelerra-5.1/cinelerra/playbackengine.C b/cinelerra-5.1/cinelerra/playbackengine.C index 228f3890..fcbeeb1d 100644 --- a/cinelerra-5.1/cinelerra/playbackengine.C +++ b/cinelerra-5.1/cinelerra/playbackengine.C @@ -33,6 +33,7 @@ #include "mwindowgui.h" #include "patchbay.h" #include "tracking.h" +#include "tracks.h" #include "playbackengine.h" #include "playtransport.h" #include "preferences.h" @@ -411,8 +412,11 @@ void PlaybackEngine::run() // Start tracking after arming so the tracking position doesn't change. // The tracking for a single frame command occurs during PAUSE init_tracking(); - if( !command->single_frame() ) - clear_output(); + if( !command->single_frame() ) { + EDL *edl = command->get_edl(); + if( edl && edl->tracks->playable_video_tracks() ) + clear_output(); + } // Dispatch the command start_render_engine(); break; diff --git a/cinelerra-5.1/cinelerra/resourcepixmap.C b/cinelerra-5.1/cinelerra/resourcepixmap.C index 66073a08..8c874bb9 100644 --- a/cinelerra-5.1/cinelerra/resourcepixmap.C +++ b/cinelerra-5.1/cinelerra/resourcepixmap.C @@ -478,8 +478,8 @@ void ResourcePixmap::draw_audio_source(TrackCanvas *canvas, Edit *edit, int x, i int y1 = center_pixel - sample * scale_y / 2; int y2 = CLIP(y1, 0, y_max); - for( int x0=0; x0startsource; speed_position += !speed_autos ? edit_position : @@ -492,7 +492,10 @@ void ResourcePixmap::draw_audio_source(TrackCanvas *canvas, Edit *edit, int x, i y1 = center_pixel - sample * scale_y / 2; y2 = CLIP(y1, 0, y_max); //printf("ResourcePixmap::draw_audio_source %d %d %d\n", __LINE__, y1, y2); - canvas->draw_line(x0, y0, x2, y2, this); + if( !rect_audio ) + canvas->draw_line(x1, y0, x2, y2, this); + else + canvas->draw_line(x2, center_pixel, x2, y2, this); } } @@ -540,7 +543,7 @@ void ResourcePixmap::draw_audio_source(TrackCanvas *canvas, Edit *edit, int x, i y_lo = y1; y_hi = y2; } prev_y1 = y1; prev_y2 = y2; - canvas->draw_line(x, y_lo, x, y_hi, this); + canvas->draw_line(x, !rect_audio ? y_lo : center_pixel, x, y_hi, this); //printf("ResourcePixmap::draw_audio_source %d %d %d %d\n", __LINE__, x, y1, y2); mwindow->wave_cache->unlock(); } @@ -576,7 +579,7 @@ void ResourcePixmap::draw_wave(TrackCanvas *canvas, CLAMP(y1, top_pixel, bottom_pixel); CLAMP(y2, top_pixel, bottom_pixel); canvas->set_color(mwindow->theme->audio_color); - canvas->draw_line(x, y1, x, y2, this); + canvas->draw_line(x, !rect_audio ? y1 : bottom_pixel, x, y2, this); } diff --git a/cinelerra-5.1/cinelerra/vwindowgui.C b/cinelerra-5.1/cinelerra/vwindowgui.C index 69ad7bbf..bec67dc8 100644 --- a/cinelerra-5.1/cinelerra/vwindowgui.C +++ b/cinelerra-5.1/cinelerra/vwindowgui.C @@ -701,6 +701,7 @@ void VWindowEditing::panel_fit_selection() {} void VWindowEditing::panel_fit_autos(int all) {} void VWindowEditing::panel_set_editing_mode(int mode) {} void VWindowEditing::panel_set_auto_keyframes(int v) {} +void VWindowEditing::panel_set_span_keyframes(int v) {} void VWindowEditing::panel_set_labels_follow_edits(int v) {} diff --git a/cinelerra-5.1/cinelerra/vwindowgui.h b/cinelerra-5.1/cinelerra/vwindowgui.h index a6c206e5..d56df59e 100644 --- a/cinelerra-5.1/cinelerra/vwindowgui.h +++ b/cinelerra-5.1/cinelerra/vwindowgui.h @@ -156,6 +156,7 @@ public: void panel_fit_autos(int all); void panel_set_editing_mode(int mode); void panel_set_auto_keyframes(int v); + void panel_set_span_keyframes(int v); void panel_set_labels_follow_edits(int v); MWindow *mwindow; diff --git a/cinelerra-5.1/ffmpeg/plugin.opts b/cinelerra-5.1/ffmpeg/plugin.opts index ce680aaf..47526fe5 100644 --- a/cinelerra-5.1/ffmpeg/plugin.opts +++ b/cinelerra-5.1/ffmpeg/plugin.opts @@ -111,7 +111,7 @@ dilation drawbox drawgraph drawgrid -dynaudnorm +#dynaudnorm ###Invalid argument earwax #ebur128 ###Operation not permitted edgedetect @@ -166,7 +166,7 @@ inflate kerndeint lenscorrection life ratio=2/3:s=200x200 -loudnorm +#loudnorm ###Invalid argument lowpass lut #lut2 ###Input/output error diff --git a/cinelerra-5.1/plugins/theme_blond/blondtheme.C b/cinelerra-5.1/plugins/theme_blond/blondtheme.C index 16080ee4..51aa61aa 100644 --- a/cinelerra-5.1/plugins/theme_blond/blondtheme.C +++ b/cinelerra-5.1/plugins/theme_blond/blondtheme.C @@ -870,6 +870,7 @@ void BlondTheme::initialize() new_toggle("arrow.png", editpanel_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "arrow"); new_toggle("autokeyframe.png", transport_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "autokeyframe"); + new_toggle("spankeyframe.png", transport_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "spankeyframe"); new_toggle("ibeam.png", editpanel_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "ibeam"); new_toggle("show_meters.png", editpanel_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "meters"); new_toggle("blank30x30.png", @@ -1023,7 +1024,7 @@ void BlondTheme::draw_mwindow_bg(MWindowGUI *gui) x - toggle_margin / 2 - pdw / 2 + 2, mbuttons_y - 1); - x += 2 * get_image("autokeyframe")->get_w() + toggle_margin; // the state toggle buttons + x += 3 * get_image("autokeyframe")->get_w() + toggle_margin; // the state toggle buttons gui->draw_vframe(get_image("panel_divider"), x - toggle_margin / 2 - pdw / 2 + 2, mbuttons_y - 1); diff --git a/cinelerra-5.1/plugins/theme_blond/data/spankeyframe.png b/cinelerra-5.1/plugins/theme_blond/data/spankeyframe.png new file mode 100644 index 00000000..9dfd82a6 Binary files /dev/null and b/cinelerra-5.1/plugins/theme_blond/data/spankeyframe.png differ diff --git a/cinelerra-5.1/plugins/theme_blond_cv/blondcvtheme.C b/cinelerra-5.1/plugins/theme_blond_cv/blondcvtheme.C index c2023221..5ff85860 100644 --- a/cinelerra-5.1/plugins/theme_blond_cv/blondcvtheme.C +++ b/cinelerra-5.1/plugins/theme_blond_cv/blondcvtheme.C @@ -890,6 +890,7 @@ void BlondCVTheme::initialize() new_toggle("arrow.png", editpanel_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "arrow"); new_toggle("autokeyframe.png", editpanel_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "autokeyframe"); + new_toggle("spankeyframe.png", editpanel_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "spankeyframe"); new_image_set("category_button", 3, "preferencesbutton_dn.png", diff --git a/cinelerra-5.1/plugins/theme_blond_cv/data/spankeyframe.png b/cinelerra-5.1/plugins/theme_blond_cv/data/spankeyframe.png new file mode 100644 index 00000000..e7466ecb Binary files /dev/null and b/cinelerra-5.1/plugins/theme_blond_cv/data/spankeyframe.png differ diff --git a/cinelerra-5.1/plugins/theme_blue/bluetheme.C b/cinelerra-5.1/plugins/theme_blue/bluetheme.C index c96fd666..2a99932b 100644 --- a/cinelerra-5.1/plugins/theme_blue/bluetheme.C +++ b/cinelerra-5.1/plugins/theme_blue/bluetheme.C @@ -869,6 +869,7 @@ void BlueDotTheme::initialize() new_toggle("arrow.png", editpanel_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "arrow"); new_toggle("autokeyframe.png", transport_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "autokeyframe"); + new_toggle("spankeyframe.png", transport_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "spankeyframe"); new_toggle("ibeam.png", editpanel_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "ibeam"); new_toggle("show_meters.png", editpanel_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "meters"); new_toggle("blank30x30.png", @@ -1020,7 +1021,7 @@ void BlueDotTheme::draw_mwindow_bg(MWindowGUI *gui) x - toggle_margin / 2 - pdw / 2 + 2, mbuttons_y - 1); - x += 2 * get_image("autokeyframe")->get_w() + toggle_margin; // the state toggle buttons + x += 3 * get_image("autokeyframe")->get_w() + toggle_margin; // the state toggle buttons gui->draw_vframe(get_image("panel_divider"), x - toggle_margin / 2 - pdw / 2 + 2, mbuttons_y - 1); diff --git a/cinelerra-5.1/plugins/theme_blue/data/spankeyframe.png b/cinelerra-5.1/plugins/theme_blue/data/spankeyframe.png new file mode 100644 index 00000000..bf1987e8 Binary files /dev/null and b/cinelerra-5.1/plugins/theme_blue/data/spankeyframe.png differ diff --git a/cinelerra-5.1/plugins/theme_blue_dot/bluedottheme.C b/cinelerra-5.1/plugins/theme_blue_dot/bluedottheme.C index e6df2973..5304adf1 100644 --- a/cinelerra-5.1/plugins/theme_blue_dot/bluedottheme.C +++ b/cinelerra-5.1/plugins/theme_blue_dot/bluedottheme.C @@ -922,6 +922,7 @@ void BlueDotTheme::initialize() new_toggle("arrow.png", editpanel_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "arrow"); new_toggle("autokeyframe.png", editpanel_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "autokeyframe"); + new_toggle("spankeyframe.png", editpanel_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "spankeyframe"); new_toggle("ibeam.png", editpanel_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "ibeam"); new_toggle("show_meters.png", editpanel_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "meters"); new_toggle("blank30x30.png", @@ -1404,7 +1405,7 @@ void BlueDotTheme::draw_mwindow_bg(MWindowGUI *gui) mbuttons_y - 1); gui->draw_vframe(get_image("panel_divider"), - mbuttons_x + 290 + 11 + 30 * 2 + 11 + 30 * 2 + 5, + mbuttons_x + 290 + 11 + 30 * 2 + 11 + 30 * 3 + 5, mbuttons_y - 1); diff --git a/cinelerra-5.1/plugins/theme_blue_dot/data/spankeyframe.png b/cinelerra-5.1/plugins/theme_blue_dot/data/spankeyframe.png new file mode 100644 index 00000000..38fb8366 Binary files /dev/null and b/cinelerra-5.1/plugins/theme_blue_dot/data/spankeyframe.png differ diff --git a/cinelerra-5.1/plugins/theme_bright/brighttheme.C b/cinelerra-5.1/plugins/theme_bright/brighttheme.C index b48a9aa8..ffb70f32 100644 --- a/cinelerra-5.1/plugins/theme_bright/brighttheme.C +++ b/cinelerra-5.1/plugins/theme_bright/brighttheme.C @@ -876,6 +876,7 @@ void BrightTheme::initialize() new_toggle("arrow.png", editpanel_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "arrow"); new_toggle("autokeyframe.png", transport_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "autokeyframe"); + new_toggle("spankeyframe.png", transport_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "spankeyframe"); new_toggle("ibeam.png", editpanel_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "ibeam"); new_toggle("show_meters.png", editpanel_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "meters"); new_toggle("blank30x30.png", @@ -1025,7 +1026,10 @@ void BrightTheme::draw_mwindow_bg(MWindowGUI *gui) mbuttons_y - 1); gui->draw_vframe(get_image("panel_divider"), - mbuttons_x + 320, + mbuttons_x + 294, + mbuttons_y - 1); + gui->draw_vframe(get_image("panel_divider"), + mbuttons_x + 396, mbuttons_y - 1); // Clock diff --git a/cinelerra-5.1/plugins/theme_bright/data/spankeyframe.png b/cinelerra-5.1/plugins/theme_bright/data/spankeyframe.png new file mode 100644 index 00000000..90bdf66e Binary files /dev/null and b/cinelerra-5.1/plugins/theme_bright/data/spankeyframe.png differ diff --git a/cinelerra-5.1/plugins/theme_cakewalk/cakewalk.C b/cinelerra-5.1/plugins/theme_cakewalk/cakewalk.C index a3e8fde3..ed6294ff 100644 --- a/cinelerra-5.1/plugins/theme_cakewalk/cakewalk.C +++ b/cinelerra-5.1/plugins/theme_cakewalk/cakewalk.C @@ -936,6 +936,10 @@ void CAKEWALKTHEME::initialize() transport_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "autokeyframe"); +new_toggle("spankeyframe.png", + transport_up, editpanel_hi, editpanel_checked, + editpanel_dn, editpanel_checkedhi, + "spankeyframe"); new_toggle("ibeam.png", editpanel_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, @@ -1110,7 +1114,7 @@ void CAKEWALKTHEME::draw_mwindow_bg(MWindowGUI *gui) gui->draw_vframe(get_image("panel_divider"), x - toggle_margin / 2 - pdw / 2 + 2, mbuttons_y - 1); - x += 2 * get_image("autokeyframe")->get_w() + toggle_margin; + x += 3 * get_image("autokeyframe")->get_w() + toggle_margin; gui->draw_vframe(get_image("panel_divider"), x - toggle_margin / 2 - pdw / 2 + 2, mbuttons_y - 1); diff --git a/cinelerra-5.1/plugins/theme_cakewalk/data/spankeyframe.png b/cinelerra-5.1/plugins/theme_cakewalk/data/spankeyframe.png new file mode 100644 index 00000000..17cdb983 Binary files /dev/null and b/cinelerra-5.1/plugins/theme_cakewalk/data/spankeyframe.png differ diff --git a/cinelerra-5.1/plugins/theme_hulk/data/spankeyframe.png b/cinelerra-5.1/plugins/theme_hulk/data/spankeyframe.png new file mode 100644 index 00000000..5d08d19c Binary files /dev/null and b/cinelerra-5.1/plugins/theme_hulk/data/spankeyframe.png differ diff --git a/cinelerra-5.1/plugins/theme_hulk/hulktheme.C b/cinelerra-5.1/plugins/theme_hulk/hulktheme.C index 19abed45..1fc23d87 100644 --- a/cinelerra-5.1/plugins/theme_hulk/hulktheme.C +++ b/cinelerra-5.1/plugins/theme_hulk/hulktheme.C @@ -871,6 +871,7 @@ void HULKTHEME::initialize() new_toggle("arrow.png", editpanel_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "arrow"); new_toggle("autokeyframe.png", transport_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "autokeyframe"); + new_toggle("spankeyframe.png", transport_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "spankeyframe"); new_toggle("ibeam.png", editpanel_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "ibeam"); new_toggle("show_meters.png", editpanel_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "meters"); new_toggle("blank30x30.png", @@ -1025,7 +1026,7 @@ void HULKTHEME::draw_mwindow_bg(MWindowGUI *gui) x - toggle_margin / 2 - pdw / 2 + 2, mbuttons_y - 1); - x += 2 * get_image("autokeyframe")->get_w() + toggle_margin; // the state toggle buttons + x += 3 * get_image("autokeyframe")->get_w() + toggle_margin; // the state toggle buttons gui->draw_vframe(get_image("panel_divider"), x - toggle_margin / 2 - pdw / 2 + 2, mbuttons_y - 1); diff --git a/cinelerra-5.1/plugins/theme_neophyte/data/spankeyframe.png b/cinelerra-5.1/plugins/theme_neophyte/data/spankeyframe.png new file mode 100644 index 00000000..94172548 Binary files /dev/null and b/cinelerra-5.1/plugins/theme_neophyte/data/spankeyframe.png differ diff --git a/cinelerra-5.1/plugins/theme_neophyte/neophyte.C b/cinelerra-5.1/plugins/theme_neophyte/neophyte.C index 786c0702..cce41497 100644 --- a/cinelerra-5.1/plugins/theme_neophyte/neophyte.C +++ b/cinelerra-5.1/plugins/theme_neophyte/neophyte.C @@ -1081,6 +1081,10 @@ void NEOPHYTETHEME::initialize() transport_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "autokeyframe"); + new_toggle("spankeyframe.png", + transport_up, editpanel_hi, editpanel_checked, + editpanel_dn, editpanel_checkedhi, + "spankeyframe"); new_toggle("ibeam.png", editpanel_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, @@ -1326,7 +1330,7 @@ void NEOPHYTETHEME::draw_mwindow_bg(MWindowGUI *gui) x - toggle_margin / 2 - pdw / 2 + 2, mbuttons_y - 1); - x += 2 * get_image("autokeyframe")->get_w() + toggle_margin; // the state toggle buttons + x += 3 * get_image("autokeyframe")->get_w() + toggle_margin; // the state toggle buttons gui->draw_vframe(get_image("panel_divider"), x - toggle_margin / 2 - pdw / 2 + 2, mbuttons_y - 1); diff --git a/cinelerra-5.1/plugins/theme_pinklady/data/spankeyframe.png b/cinelerra-5.1/plugins/theme_pinklady/data/spankeyframe.png new file mode 100644 index 00000000..1ca51d0b Binary files /dev/null and b/cinelerra-5.1/plugins/theme_pinklady/data/spankeyframe.png differ diff --git a/cinelerra-5.1/plugins/theme_pinklady/pinkladytheme.C b/cinelerra-5.1/plugins/theme_pinklady/pinkladytheme.C index c2ad6e10..c4a2c9e0 100644 --- a/cinelerra-5.1/plugins/theme_pinklady/pinkladytheme.C +++ b/cinelerra-5.1/plugins/theme_pinklady/pinkladytheme.C @@ -856,6 +856,7 @@ void PINKLADY::initialize() new_toggle("arrow.png", editpanel_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "arrow"); new_toggle("autokeyframe.png", transport_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "autokeyframe"); + new_toggle("spankeyframe.png", transport_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "spankeyframe"); new_toggle("ibeam.png", editpanel_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "ibeam"); new_toggle("show_meters.png", editpanel_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "meters"); new_toggle("blank30x30.png", @@ -1007,7 +1008,7 @@ void PINKLADY::draw_mwindow_bg(MWindowGUI *gui) x - toggle_margin / 2 - pdw / 2 + 2, mbuttons_y - 1); - x += 2 * get_image("autokeyframe")->get_w() + toggle_margin; // the state toggle buttons + x += 3 * get_image("autokeyframe")->get_w() + toggle_margin; // the state toggle buttons gui->draw_vframe(get_image("panel_divider"), x - toggle_margin / 2 - pdw / 2 + 2, mbuttons_y - 1); diff --git a/cinelerra-5.1/plugins/theme_suv/data/spankeyframe.png b/cinelerra-5.1/plugins/theme_suv/data/spankeyframe.png new file mode 100644 index 00000000..bee7bcf9 Binary files /dev/null and b/cinelerra-5.1/plugins/theme_suv/data/spankeyframe.png differ diff --git a/cinelerra-5.1/plugins/theme_suv/suv.C b/cinelerra-5.1/plugins/theme_suv/suv.C index 46b4441f..e07e9492 100644 --- a/cinelerra-5.1/plugins/theme_suv/suv.C +++ b/cinelerra-5.1/plugins/theme_suv/suv.C @@ -857,6 +857,7 @@ void SUV::initialize() new_toggle("arrow.png", editpanel_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "arrow"); new_toggle("autokeyframe.png", transport_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "autokeyframe"); + new_toggle("spankeyframe.png", transport_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "spankeyframe"); new_toggle("ibeam.png", editpanel_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "ibeam"); new_toggle("show_meters.png", editpanel_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "meters"); new_toggle("blank30x30.png", @@ -1027,7 +1028,7 @@ void SUV::draw_mwindow_bg(MWindowGUI *gui) gui->draw_vframe(get_image("panel_divider"), x - toggle_margin / 2 - pdw / 2 + 2, mbuttons_y - 1); - x += 2 * get_image("autokeyframe")->get_w() + toggle_margin; // the state toggle buttons + x += 3 * get_image("autokeyframe")->get_w() + toggle_margin; // the state toggle buttons gui->draw_vframe(get_image("panel_divider"), x - toggle_margin / 2 - pdw / 2 + 2, diff --git a/cinelerra-5.1/plugins/theme_unflat/data/spankeyframe.png b/cinelerra-5.1/plugins/theme_unflat/data/spankeyframe.png new file mode 100644 index 00000000..57dd07a3 Binary files /dev/null and b/cinelerra-5.1/plugins/theme_unflat/data/spankeyframe.png differ diff --git a/cinelerra-5.1/plugins/theme_unflat/unflattheme.C b/cinelerra-5.1/plugins/theme_unflat/unflattheme.C index c6b1cf28..9dac9196 100644 --- a/cinelerra-5.1/plugins/theme_unflat/unflattheme.C +++ b/cinelerra-5.1/plugins/theme_unflat/unflattheme.C @@ -865,6 +865,7 @@ void UNFLATTHEME::initialize() new_toggle("arrow.png", editpanel_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "arrow"); new_toggle("autokeyframe.png", transport_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "autokeyframe"); + new_toggle("spankeyframe.png", transport_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "spankeyframe"); new_toggle("ibeam.png", editpanel_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "ibeam"); new_toggle("show_meters.png", editpanel_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "meters"); new_toggle("blank30x30.png", @@ -1016,7 +1017,7 @@ void UNFLATTHEME::draw_mwindow_bg(MWindowGUI *gui) x - toggle_margin / 2 - pdw / 2 + 2, mbuttons_y - 1); - x += 2 * get_image("autokeyframe")->get_w() + toggle_margin; // the state toggle buttons + x += 3 * get_image("autokeyframe")->get_w() + toggle_margin; // the state toggle buttons gui->draw_vframe(get_image("panel_divider"), x - toggle_margin / 2 - pdw / 2 + 2, mbuttons_y - 1);