From: Good Guy Date: Thu, 20 Jun 2019 22:54:10 +0000 (-0600) Subject: hard edges rework, add hard edge in gwdw, config.ac nv/cuda tweaks, message log warn... X-Git-Tag: 2019-08~35 X-Git-Url: https://git.cinelerra-gg.org/git/?p=goodguy%2Fcinelerra.git;a=commitdiff_plain;h=3d5faf45a6c261bb3e9973b42cf682415a1fde2e hard edges rework, add hard edge in gwdw, config.ac nv/cuda tweaks, message log warn mods, shell onexit options --- diff --git a/cinelerra-5.1/cinelerra/autoconf.C b/cinelerra-5.1/cinelerra/autoconf.C index 6b5e8d7c..b434d990 100644 --- a/cinelerra-5.1/cinelerra/autoconf.C +++ b/cinelerra-5.1/cinelerra/autoconf.C @@ -64,6 +64,7 @@ int AutoConf::load_defaults(BC_Hash* defaults) } transitions = defaults->get("SHOW_TRANSITIONS", 1); plugins = defaults->get("SHOW_PLUGINS", 1); + hard_edges = defaults->get("SHOW_HARD_EDGES", 1); return 0; } @@ -75,6 +76,7 @@ void AutoConf::load_xml(FileXML *file) } transitions = file->tag.get_property("SHOW_TRANSITIONS", 1); plugins = file->tag.get_property("SHOW_PLUGINS", 1); + hard_edges = file->tag.get_property("SHOW_HARD_EDGES", 1); } int AutoConf::save_defaults(BC_Hash* defaults) @@ -85,27 +87,28 @@ int AutoConf::save_defaults(BC_Hash* defaults) } defaults->update("SHOW_TRANSITIONS", transitions); defaults->update("SHOW_PLUGINS", plugins); + defaults->update("SHOW_HARD_EDGES", hard_edges); return 0; } void AutoConf::save_xml(FileXML *file) { - for(int i = 0; i < AUTOMATION_TOTAL; i++) - { + for(int i = 0; i < AUTOMATION_TOTAL; i++) { file->tag.set_property(xml_titles[i], autos[i]); } file->tag.set_property("SHOW_TRANSITIONS", transitions); file->tag.set_property("SHOW_PLUGINS", plugins); + file->tag.set_property("SHOW_HARD_EDGES", hard_edges); } int AutoConf::set_all(int value) { - for(int i = 0; i < AUTOMATION_TOTAL; i++) - { + for(int i = 0; i < AUTOMATION_TOTAL; i++) { autos[i] = value; } transitions = value; plugins = value; + hard_edges = value; return 0; } @@ -117,12 +120,12 @@ AutoConf& AutoConf::operator=(AutoConf &that) void AutoConf::copy_from(AutoConf *src) { - for(int i = 0; i < AUTOMATION_TOTAL; i++) - { + for(int i = 0; i < AUTOMATION_TOTAL; i++) { autos[i] = src->autos[i]; } transitions = src->transitions; plugins = src->plugins; + hard_edges = src->hard_edges; } diff --git a/cinelerra-5.1/cinelerra/autoconf.h b/cinelerra-5.1/cinelerra/autoconf.h index e5f38341..2395a191 100644 --- a/cinelerra-5.1/cinelerra/autoconf.h +++ b/cinelerra-5.1/cinelerra/autoconf.h @@ -51,6 +51,7 @@ public: // Other viewable things int transitions; int plugins; + int hard_edges; }; #endif diff --git a/cinelerra-5.1/cinelerra/automation.inc b/cinelerra-5.1/cinelerra/automation.inc index 98ba2b00..f573c3ec 100644 --- a/cinelerra-5.1/cinelerra/automation.inc +++ b/cinelerra-5.1/cinelerra/automation.inc @@ -54,6 +54,7 @@ enum NON_AUTOMATION_TITLES, NON_AUTOMATION_TRANSITIONS, NON_AUTOMATION_PLUGIN_AUTOS, + NON_AUTOMATION_HARD_EDGES, NON_AUTOMATION_TOTAL }; diff --git a/cinelerra-5.1/cinelerra/edits.C b/cinelerra-5.1/cinelerra/edits.C index ae7ab0c7..74bd4164 100644 --- a/cinelerra-5.1/cinelerra/edits.C +++ b/cinelerra-5.1/cinelerra/edits.C @@ -223,9 +223,7 @@ Edit* Edits::insert_new_edit(int64_t position) //printf("Edits::insert_new_edit 1\n"); Edit *new_edit = create_edit(); - if( current ) new_edit->hard_right = current->hard_left; if( current ) current = PREVIOUS; - if( current ) new_edit->hard_left = current->hard_right; //printf("Edits::insert_new_edit 1\n"); insert_after(current, new_edit); new_edit->startproject = position; @@ -247,6 +245,14 @@ Edit* Edits::split_edit(int64_t position) new_edit->copy_from(edit); new_edit->length = new_edit->startproject + new_edit->length - position; edit->length = position - edit->startproject; + if( !new_edit->length ) + new_edit->hard_left = new_edit->hard_right = 0; + else if( !edit->length ) + edit->hard_left = edit->hard_right = 0; + else { + new_edit->hard_right = edit->hard_right; + new_edit->hard_left = edit->hard_right = 0; + } new_edit->startproject = position; new_edit->startsource += edit->length; @@ -367,13 +373,19 @@ int Edits::optimize() // delete 0 length edits for( current = first; !result && current; ) { - Edit* next = current->next; + Edit* prev = current->previous, *next = current->next; if( current->length == 0 ) { if( next && current->transition && !next->transition) { next->transition = current->transition; next->transition->edit = next; current->transition = 0; } + if( !current->silence() ) { + if( current->hard_left && next && !next->silence() ) + next->hard_left = 1; + if( current->hard_right && prev && !prev->silence()) + prev->hard_right = 1; + } delete current; result = 1; break; @@ -394,7 +406,8 @@ int Edits::optimize() Edit *next_edit = 0; for( ; current && (next_edit=current->next); current=NEXT ) { // both edges are not hard edges - if( current->hard_right || next_edit->hard_left ) continue; + if( current->hard_right || next_edit->hard_left ) + continue; // next edit is a glitch if( is_glitch(next_edit) ) break; diff --git a/cinelerra-5.1/cinelerra/gwindowgui.C b/cinelerra-5.1/cinelerra/gwindowgui.C index 81520f01..f90a3878 100644 --- a/cinelerra-5.1/cinelerra/gwindowgui.C +++ b/cinelerra-5.1/cinelerra/gwindowgui.C @@ -63,6 +63,7 @@ const char *GWindowGUI::non_auto_text[NON_AUTOMATION_TOTAL] = N_("Titles"), N_("Transitions"), N_("Plugin Keyframes"), + N_("Hard Edges"), }; const char *GWindowGUI::auto_text[AUTOMATION_TOTAL] = @@ -138,6 +139,7 @@ static toggleinfo toggle_order[] = {1, AUTOMATION_MODE}, {1, AUTOMATION_PAN}, {1, AUTOMATION_MASK}, + {-1, NON_AUTOMATION_HARD_EDGES}, {0, -1}, // bar {1, AUTOMATION_CAMERA_X}, {1, AUTOMATION_CAMERA_Y}, @@ -154,7 +156,14 @@ const char *GWindowGUI::toggle_text(toggleinfo *tp) { if( tp->isauto > 0 ) return _(auto_text[tp->ref]); if( !tp->isauto ) return _(non_auto_text[tp->ref]); - return _("XYZ"); + switch( tp->ref ) { + case NONAUTOTOGGLES_CAMERA_XYZ: + case NONAUTOTOGGLES_PROJECTOR_XYZ: + return _("XYZ"); + case NON_AUTOMATION_HARD_EDGES: + return _("Hard Edges"); + } + return "()"; } void GWindowGUI::calculate_extents(BC_WindowBase *gui, int *w, int *h) @@ -263,7 +272,7 @@ void GWindowGUI::create_objects() else draw_vframe(vframe, get_w()-vframe->get_w()-10, y); } - else if( tp->isauto < 0 ) { + else { const char *accel = 0; switch( ref ) { case NONAUTOTOGGLES_CAMERA_XYZ: @@ -274,6 +283,11 @@ void GWindowGUI::create_objects() projector_xyz = toggle; accel = _("Shift-F2"); break; + case NON_AUTOMATION_HARD_EDGES: + VFrame *vframe = mwindow->theme->hardedge_data; + draw_vframe(vframe, get_w()-vframe->get_w()-10, y); + hard_edges = toggle; + break; } if( accel ) { int x1 = get_w() - BC_Title::calculate_w(this, accel) - 10; @@ -412,13 +426,12 @@ int* GWindowGUI::get_main_value(toggleinfo *info) { if( info->isauto > 0 ) return &mwindow->edl->session->auto_conf->autos[info->ref]; - if( !info->isauto ) { - switch( info->ref ) { - case NON_AUTOMATION_ASSETS: return &mwindow->edl->session->show_assets; - case NON_AUTOMATION_TITLES: return &mwindow->edl->session->show_titles; - case NON_AUTOMATION_TRANSITIONS: return &mwindow->edl->session->auto_conf->transitions; - case NON_AUTOMATION_PLUGIN_AUTOS: return &mwindow->edl->session->auto_conf->plugins; - } + switch( info->ref ) { + case NON_AUTOMATION_ASSETS: return &mwindow->edl->session->show_assets; + case NON_AUTOMATION_TITLES: return &mwindow->edl->session->show_titles; + case NON_AUTOMATION_TRANSITIONS: return &mwindow->edl->session->auto_conf->transitions; + case NON_AUTOMATION_PLUGIN_AUTOS: return &mwindow->edl->session->auto_conf->plugins; + case NON_AUTOMATION_HARD_EDGES: return &mwindow->edl->session->auto_conf->hard_edges; } return 0; } @@ -477,6 +490,7 @@ int GWindowToggle::handle_event() switch( info->ref ) { case NONAUTOTOGGLES_CAMERA_XYZ: group = AUTOMATION_CAMERA_X; break; case NONAUTOTOGGLES_PROJECTOR_XYZ: group = AUTOMATION_PROJECTOR_X; break; + case NON_AUTOMATION_HARD_EDGES: *gui->get_main_value(info) = value; break; } if( group >= 0 ) { gui->xyz_check(group, value); diff --git a/cinelerra-5.1/cinelerra/gwindowgui.h b/cinelerra-5.1/cinelerra/gwindowgui.h index 302417cf..6490c851 100644 --- a/cinelerra-5.1/cinelerra/gwindowgui.h +++ b/cinelerra-5.1/cinelerra/gwindowgui.h @@ -34,6 +34,7 @@ enum { NONAUTOTOGGLES_TITLES, NONAUTOTOGGLES_TRANSITIONS, NONAUTOTOGGLES_PLUGIN_AUTOS, + NONAUTOTOGGLES_HARD_EDGES, NONAUTOTOGGLES_CAMERA_XYZ, NONAUTOTOGGLES_PROJECTOR_XYZ, NONAUTOTOGGLES_BAR1, @@ -77,7 +78,7 @@ public: MWindow *mwindow; GWindowToggle *toggles[NONAUTOTOGGLES_COUNT + AUTOMATION_TOTAL]; - GWindowToggle *camera_xyz, *projector_xyz; + GWindowToggle *camera_xyz, *projector_xyz, *hard_edges; }; class GWindowToggle : public BC_CheckBox diff --git a/cinelerra-5.1/cinelerra/mainerror.C b/cinelerra-5.1/cinelerra/mainerror.C index 4fdc592f..c82d23a3 100644 --- a/cinelerra-5.1/cinelerra/mainerror.C +++ b/cinelerra-5.1/cinelerra/mainerror.C @@ -40,7 +40,7 @@ MainError* MainError::main_error = 0; MainErrorGUI::MainErrorGUI(MWindow *mwindow, MainError *thread, int x, int y) - : BC_Window(_(PROGRAM_NAME ": Errors"), + : BC_Window(_(PROGRAM_NAME ": Messages"), x, y, mwindow->session->ewindow_w, @@ -68,7 +68,7 @@ void MainErrorGUI::create_objects() BC_Button *button; add_subwindow(button = new BC_OKButton(this)); int x = 10, y = 10; - add_subwindow(title = new BC_Title(x, y, _("The following errors occurred:"))); + add_subwindow(title = new BC_Title(x, y, _("Message log:"))); y += title->get_h() + 5; add_subwindow(list = new BC_ListBox(x, y, get_w() - 20, button->get_y() - y - 5, diff --git a/cinelerra-5.1/cinelerra/performanceprefs.C b/cinelerra-5.1/cinelerra/performanceprefs.C index cb19f905..c00ca732 100644 --- a/cinelerra-5.1/cinelerra/performanceprefs.C +++ b/cinelerra-5.1/cinelerra/performanceprefs.C @@ -332,10 +332,19 @@ PrefsUseHWDev::PrefsUseHWDev(PreferencesWindow *pwindow, void PrefsUseHWDev::create_objects() { BC_PopupTextBox::create_objects(); + set_tooltip(_("vdpau - Nvidia, Nouveau, Amdgpu\n" + "vaapi - Broadcom, Intel HD graphics, Radeon\n" + "cuda - Nvidia + Cuda SDK")); hw_dev_names.append(new BC_ListBoxItem(_("none"))); +#ifdef HAVE_VAAPI hw_dev_names.append(new BC_ListBoxItem("vaapi")); +#endif +#ifdef HAVE_VDPAU hw_dev_names.append(new BC_ListBoxItem("vdpau")); - hw_dev_names.append(new BC_ListBoxItem("")); +#endif +#ifdef HAVE_NV + hw_dev_names.append(new BC_ListBoxItem("cuda")); +#endif update_list(&hw_dev_names); update(&pwindow->thread->preferences->use_hw_dev[0]); } diff --git a/cinelerra-5.1/cinelerra/shbtnprefs.C b/cinelerra-5.1/cinelerra/shbtnprefs.C index 2945c035..679d16f4 100644 --- a/cinelerra-5.1/cinelerra/shbtnprefs.C +++ b/cinelerra-5.1/cinelerra/shbtnprefs.C @@ -43,17 +43,22 @@ void ShBtnRun::run() perror("fork"); return; } - if( pid > 0 ) { - int stat; waitpid(pid, &stat, 0); - if( warn && stat ) { - char msg[BCTEXTLEN]; - sprintf(msg, "%s: error exit status %d", name, stat); - MainError::show_error(msg); - } + char msg[BCTEXTLEN]; + if( !pid ) { + argv.append(0); + execvp(argv[0], &argv[0]); return; } - argv.append(0); - execvp(argv[0], &argv[0]); + // warn <0:always, =0:never, >0:on err + if( !warn ) return; + int stat; waitpid(pid, &stat, 0); + if( !stat ) { + if( warn > 0 ) return; + sprintf(msg, "%s: completed", name); + } + else + sprintf(msg, "%s: error exit status %d", name, stat); + MainError::show_error(msg); } ShBtnPref::ShBtnPref(const char *nm, const char *cmds, int warn, int run_script) @@ -223,15 +228,43 @@ ShBtnTextWindow::~ShBtnTextWindow() { } + +ShBtnErrWarnItem::ShBtnErrWarnItem(ShBtnErrWarn *popup, + const char *text, int warn) + : BC_MenuItem(text) +{ + this->popup = popup; + this->warn = warn; +} + +int ShBtnErrWarnItem::handle_event() +{ + popup->set_text(get_text()); + popup->st_window->warn = warn; + return 1; +} + ShBtnErrWarn::ShBtnErrWarn(ShBtnTextWindow *st_window, int x, int y) - : BC_CheckBox(x, y, &st_window->warn, _("Warn on err exit")) + : BC_PopupMenu(x, y, 120, st_window->warn < 0 ? _("Always"): + !st_window->warn ? _("Never") : _("On Error")) { this->st_window = st_window; } - ShBtnErrWarn::~ShBtnErrWarn() { } +int ShBtnErrWarn::handle_event() +{ + return 0; +} + +void ShBtnErrWarn::create_objects() +{ + add_item(new ShBtnErrWarnItem(this,_("Always"), -1)); + add_item(new ShBtnErrWarnItem(this,_("Never"), 0)); + add_item(new ShBtnErrWarnItem(this,_("On Error"), 1)); +} + ShBtnRunScript::ShBtnRunScript(ShBtnTextWindow *st_window, int x, int y) : BC_CheckBox(x, y, &st_window->run_script, _("run /path/script.sh + argvs")) @@ -259,7 +292,10 @@ void ShBtnTextWindow::create_objects() cmd_text = new BC_ScrollTextBox(this, x1, y, get_w()-x1-20, 4, pref->commands); cmd_text->create_objects(); y += cmd_text->get_h() + 16; + add_subwindow(title = new BC_Title(x1,y, _("OnExit Notify:"))); + x1 += title->get_w() + 10; add_subwindow(st_err_warn = new ShBtnErrWarn(this, x1, y)); + st_err_warn->create_objects(); x1 += st_err_warn->get_w() + 20; add_subwindow(st_run_script = new ShBtnRunScript(this, x1, y)); y = get_h() - ShBtnTextOK::calculate_h() - 10; diff --git a/cinelerra-5.1/cinelerra/shbtnprefs.h b/cinelerra-5.1/cinelerra/shbtnprefs.h index 36022205..de7050d3 100644 --- a/cinelerra-5.1/cinelerra/shbtnprefs.h +++ b/cinelerra-5.1/cinelerra/shbtnprefs.h @@ -107,12 +107,26 @@ public: ~ShBtnTextOK(); }; -class ShBtnErrWarn : public BC_CheckBox +class ShBtnErrWarnItem : public BC_MenuItem +{ +public: + ShBtnErrWarnItem(ShBtnErrWarn *popup, const char *text, int warn); + ShBtnErrWarnItem(); + int handle_event(); + + ShBtnErrWarn *popup; + int warn; +}; + +class ShBtnErrWarn : public BC_PopupMenu { public: ShBtnErrWarn(ShBtnTextWindow *st_window, int x, int y); ~ShBtnErrWarn(); + void create_objects(); + int handle_event(); + ShBtnTextWindow *st_window; }; diff --git a/cinelerra-5.1/cinelerra/shbtnprefs.inc b/cinelerra-5.1/cinelerra/shbtnprefs.inc index 1ce40933..ed626105 100644 --- a/cinelerra-5.1/cinelerra/shbtnprefs.inc +++ b/cinelerra-5.1/cinelerra/shbtnprefs.inc @@ -9,6 +9,7 @@ class ShBtnDelButton; class ShBtnEditButton; class ShBtnTextDialog; class ShBtnTextOK; +class ShBtnErrWarnItem; class ShBtnErrWarn; class ShBtnTextWindow; class ShBtnPrefItem; diff --git a/cinelerra-5.1/cinelerra/theme.C b/cinelerra-5.1/cinelerra/theme.C index 3b5de953..4141f08f 100644 --- a/cinelerra-5.1/cinelerra/theme.C +++ b/cinelerra-5.1/cinelerra/theme.C @@ -140,6 +140,7 @@ Theme::Theme() lift_data = 0; maskkeyframe_data = 0; modekeyframe_data = 0; + hardedge_data = 0; movedn_data = 0; moveup_data = 0; newbin_data = 0; diff --git a/cinelerra-5.1/cinelerra/theme.h b/cinelerra-5.1/cinelerra/theme.h index 1845b871..7055ee15 100644 --- a/cinelerra-5.1/cinelerra/theme.h +++ b/cinelerra-5.1/cinelerra/theme.h @@ -331,6 +331,7 @@ public: VFrame **lift_data; VFrame *maskkeyframe_data; VFrame *modekeyframe_data; + VFrame *hardedge_data; VFrame **movedn_data; VFrame **moveup_data; VFrame **newbin_data; diff --git a/cinelerra-5.1/cinelerra/trackcanvas.C b/cinelerra-5.1/cinelerra/trackcanvas.C index 7dbda4e1..3f526fd6 100644 --- a/cinelerra-5.1/cinelerra/trackcanvas.C +++ b/cinelerra-5.1/cinelerra/trackcanvas.C @@ -1888,6 +1888,8 @@ void TrackCanvas::refresh_plugintoggles() void TrackCanvas::draw_hard_edges() { + if( !mwindow->edl->session->auto_conf->hard_edges ) + return; int64_t x, y, w, h; for(Track *track = mwindow->edl->tracks->first; track; track = track->next) { diff --git a/cinelerra-5.1/configure.ac b/cinelerra-5.1/configure.ac index 574b0db2..77fe5cac 100644 --- a/cinelerra-5.1/configure.ac +++ b/cinelerra-5.1/configure.ac @@ -867,7 +867,8 @@ if test "x$WANT_CIN_3RDPARTY" != "xno"; then fi for v in GL XFT XXF86VM OSS ALSA FIREWIRE DV DVB \ VIDEO4LINUX2 ESOUND PACTL OPENEXR LV2 \ - COMMERCIAL LIBZMPEG SHUTTLE SHUTTLE_USB; do + COMMERCIAL LIBZMPEG SHUTTLE SHUTTLE_USB \ + VAAPI VDPAU CUDA NV; do eval vv="\$WANT_$v" if test "x$vv" != "xno"; then CFG_CFLAGS+=" -DHAVE_$v" diff --git a/cinelerra-5.1/guicast/bctextbox.C b/cinelerra-5.1/guicast/bctextbox.C index 725bbfa5..078134c0 100644 --- a/cinelerra-5.1/guicast/bctextbox.C +++ b/cinelerra-5.1/guicast/bctextbox.C @@ -2626,6 +2626,11 @@ void BC_PopupTextBox::reposition_window(int x, int y) // if(flush) parent_window->flush(); } +void BC_PopupTextBox::set_tooltip(const char *text) +{ + listbox->set_tooltip(text); +} + BC_TumbleTextBoxText::BC_TumbleTextBoxText(BC_TumbleTextBox *popup, diff --git a/cinelerra-5.1/guicast/bctextbox.h b/cinelerra-5.1/guicast/bctextbox.h index fa569fa8..d5860577 100644 --- a/cinelerra-5.1/guicast/bctextbox.h +++ b/cinelerra-5.1/guicast/bctextbox.h @@ -358,6 +358,7 @@ public: int get_h(); int get_show_query(); void set_show_query(int v); + void set_tooltip(const char *text); void update(const char *text); void update_list(ArrayList *data); diff --git a/cinelerra-5.1/plugins/theme_blond/blondtheme.C b/cinelerra-5.1/plugins/theme_blond/blondtheme.C index da215d57..37e2c397 100644 --- a/cinelerra-5.1/plugins/theme_blond/blondtheme.C +++ b/cinelerra-5.1/plugins/theme_blond/blondtheme.C @@ -97,6 +97,7 @@ BlondTheme::~BlondTheme() delete keyframe_data; delete maskkeyframe_data; delete modekeyframe_data; + delete hardedge_data; delete pankeyframe_data; delete projectorkeyframe_data; } @@ -879,6 +880,7 @@ void BlondTheme::build_overlays() camerakeyframe_data = new VFramePng(get_image_data("camerakeyframe.png")); maskkeyframe_data = new VFramePng(get_image_data("maskkeyframe.png")); modekeyframe_data = new VFramePng(get_image_data("modekeyframe.png")); + hardedge_data = new VFramePng(get_image_data("hardedge.png")); pankeyframe_data = new VFramePng(get_image_data("pankeyframe.png")); projectorkeyframe_data = new VFramePng(get_image_data("projectorkeyframe.png")); } diff --git a/cinelerra-5.1/plugins/theme_blond/data/hardedge.png b/cinelerra-5.1/plugins/theme_blond/data/hardedge.png new file mode 100644 index 00000000..c3724eb3 Binary files /dev/null and b/cinelerra-5.1/plugins/theme_blond/data/hardedge.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 246aab94..6ab7a9e7 100644 --- a/cinelerra-5.1/plugins/theme_blond_cv/blondcvtheme.C +++ b/cinelerra-5.1/plugins/theme_blond_cv/blondcvtheme.C @@ -97,6 +97,7 @@ BlondCVTheme::~BlondCVTheme() delete keyframe_data; delete maskkeyframe_data; delete modekeyframe_data; + delete hardedge_data; delete pankeyframe_data; delete projectorkeyframe_data; } @@ -1189,6 +1190,7 @@ void BlondCVTheme::build_overlays() camerakeyframe_data = new VFramePng(get_image_data("camerakeyframe.png")); maskkeyframe_data = new VFramePng(get_image_data("maskkeyframe.png")); modekeyframe_data = new VFramePng(get_image_data("modekeyframe.png")); + hardedge_data = new VFramePng(get_image_data("hardedge.png")); pankeyframe_data = new VFramePng(get_image_data("pankeyframe.png")); projectorkeyframe_data = new VFramePng(get_image_data("projectorkeyframe.png")); } diff --git a/cinelerra-5.1/plugins/theme_blond_cv/data/hardedge.png b/cinelerra-5.1/plugins/theme_blond_cv/data/hardedge.png new file mode 100644 index 00000000..c3724eb3 Binary files /dev/null and b/cinelerra-5.1/plugins/theme_blond_cv/data/hardedge.png differ diff --git a/cinelerra-5.1/plugins/theme_blue/bluetheme.C b/cinelerra-5.1/plugins/theme_blue/bluetheme.C index 63216e41..ea43e59d 100644 --- a/cinelerra-5.1/plugins/theme_blue/bluetheme.C +++ b/cinelerra-5.1/plugins/theme_blue/bluetheme.C @@ -97,6 +97,7 @@ BlueDotTheme::~BlueDotTheme() delete keyframe_data; delete maskkeyframe_data; delete modekeyframe_data; + delete hardedge_data; delete pankeyframe_data; delete projectorkeyframe_data; } @@ -876,6 +877,7 @@ void BlueDotTheme::build_overlays() camerakeyframe_data = new VFramePng(get_image_data("camerakeyframe.png")); maskkeyframe_data = new VFramePng(get_image_data("maskkeyframe.png")); modekeyframe_data = new VFramePng(get_image_data("modekeyframe.png")); + hardedge_data = new VFramePng(get_image_data("hardedge.png")); pankeyframe_data = new VFramePng(get_image_data("pankeyframe.png")); projectorkeyframe_data = new VFramePng(get_image_data("projectorkeyframe.png")); } diff --git a/cinelerra-5.1/plugins/theme_blue/data/hardedge.png b/cinelerra-5.1/plugins/theme_blue/data/hardedge.png new file mode 100644 index 00000000..c3724eb3 Binary files /dev/null and b/cinelerra-5.1/plugins/theme_blue/data/hardedge.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 7d43a698..e55d920b 100644 --- a/cinelerra-5.1/plugins/theme_blue_dot/bluedottheme.C +++ b/cinelerra-5.1/plugins/theme_blue_dot/bluedottheme.C @@ -100,6 +100,7 @@ BlueDotTheme::~BlueDotTheme() delete keyframe_data; delete maskkeyframe_data; delete modekeyframe_data; + delete hardedge_data; delete pankeyframe_data; delete projectorkeyframe_data; } @@ -1246,6 +1247,7 @@ void BlueDotTheme::build_overlays() camerakeyframe_data = new VFramePng(get_image_data("camerakeyframe.png")); maskkeyframe_data = new VFramePng(get_image_data("maskkeyframe.png")); modekeyframe_data = new VFramePng(get_image_data("modekeyframe.png")); + hardedge_data = new VFramePng(get_image_data("hardedge.png")); pankeyframe_data = new VFramePng(get_image_data("pankeyframe.png")); projectorkeyframe_data = new VFramePng(get_image_data("projectorkeyframe.png")); } diff --git a/cinelerra-5.1/plugins/theme_blue_dot/data/hardedge.png b/cinelerra-5.1/plugins/theme_blue_dot/data/hardedge.png new file mode 100644 index 00000000..c3724eb3 Binary files /dev/null and b/cinelerra-5.1/plugins/theme_blue_dot/data/hardedge.png differ diff --git a/cinelerra-5.1/plugins/theme_bright/brighttheme.C b/cinelerra-5.1/plugins/theme_bright/brighttheme.C index 4a2735ef..cd3acc9c 100644 --- a/cinelerra-5.1/plugins/theme_bright/brighttheme.C +++ b/cinelerra-5.1/plugins/theme_bright/brighttheme.C @@ -95,6 +95,7 @@ BrightTheme::~BrightTheme() delete keyframe_data; delete maskkeyframe_data; delete modekeyframe_data; + delete hardedge_data; delete pankeyframe_data; delete projectorkeyframe_data; } @@ -882,6 +883,7 @@ void BrightTheme::build_overlays() camerakeyframe_data = new VFramePng(get_image_data("camerakeyframe.png")); maskkeyframe_data = new VFramePng(get_image_data("maskkeyframe.png")); modekeyframe_data = new VFramePng(get_image_data("modekeyframe.png")); + hardedge_data = new VFramePng(get_image_data("hardedge.png")); pankeyframe_data = new VFramePng(get_image_data("pankeyframe.png")); projectorkeyframe_data = new VFramePng(get_image_data("projectorkeyframe.png")); } diff --git a/cinelerra-5.1/plugins/theme_bright/data/hardedge.png b/cinelerra-5.1/plugins/theme_bright/data/hardedge.png new file mode 100644 index 00000000..c3724eb3 Binary files /dev/null and b/cinelerra-5.1/plugins/theme_bright/data/hardedge.png differ diff --git a/cinelerra-5.1/plugins/theme_cakewalk/cakewalk.C b/cinelerra-5.1/plugins/theme_cakewalk/cakewalk.C index ac1f5159..b4170efd 100644 --- a/cinelerra-5.1/plugins/theme_cakewalk/cakewalk.C +++ b/cinelerra-5.1/plugins/theme_cakewalk/cakewalk.C @@ -65,6 +65,7 @@ CAKEWALKTHEME::~CAKEWALKTHEME() delete keyframe_data; delete maskkeyframe_data; delete modekeyframe_data; + delete hardedge_data; delete pankeyframe_data; delete projectorkeyframe_data; } @@ -997,6 +998,7 @@ void CAKEWALKTHEME::build_overlays() camerakeyframe_data = new VFramePng(get_image_data("camerakeyframe.png")); maskkeyframe_data = new VFramePng(get_image_data("maskkeyframe.png")); modekeyframe_data = new VFramePng(get_image_data("modekeyframe.png")); + hardedge_data = new VFramePng(get_image_data("hardedge.png")); pankeyframe_data = new VFramePng(get_image_data("pankeyframe.png")); projectorkeyframe_data = new VFramePng(get_image_data("projectorkeyframe.png")); } diff --git a/cinelerra-5.1/plugins/theme_cakewalk/data/hardedge.png b/cinelerra-5.1/plugins/theme_cakewalk/data/hardedge.png new file mode 100644 index 00000000..c3724eb3 Binary files /dev/null and b/cinelerra-5.1/plugins/theme_cakewalk/data/hardedge.png differ diff --git a/cinelerra-5.1/plugins/theme_hulk/data/hardedge.png b/cinelerra-5.1/plugins/theme_hulk/data/hardedge.png new file mode 100644 index 00000000..c3724eb3 Binary files /dev/null and b/cinelerra-5.1/plugins/theme_hulk/data/hardedge.png differ diff --git a/cinelerra-5.1/plugins/theme_hulk/hulktheme.C b/cinelerra-5.1/plugins/theme_hulk/hulktheme.C index 082b9654..8222d6df 100644 --- a/cinelerra-5.1/plugins/theme_hulk/hulktheme.C +++ b/cinelerra-5.1/plugins/theme_hulk/hulktheme.C @@ -98,6 +98,7 @@ HULKTHEME::~HULKTHEME() delete keyframe_data; delete maskkeyframe_data; delete modekeyframe_data; + delete hardedge_data; delete pankeyframe_data; delete projectorkeyframe_data; } @@ -881,6 +882,7 @@ void HULKTHEME::build_overlays() camerakeyframe_data = new VFramePng(get_image_data("camerakeyframe.png")); maskkeyframe_data = new VFramePng(get_image_data("maskkeyframe.png")); modekeyframe_data = new VFramePng(get_image_data("modekeyframe.png")); + hardedge_data = new VFramePng(get_image_data("hardedge.png")); pankeyframe_data = new VFramePng(get_image_data("pankeyframe.png")); projectorkeyframe_data = new VFramePng(get_image_data("projectorkeyframe.png")); } diff --git a/cinelerra-5.1/plugins/theme_neophyte/data/hardedge.png b/cinelerra-5.1/plugins/theme_neophyte/data/hardedge.png new file mode 100644 index 00000000..c3724eb3 Binary files /dev/null and b/cinelerra-5.1/plugins/theme_neophyte/data/hardedge.png differ diff --git a/cinelerra-5.1/plugins/theme_neophyte/neophyte.C b/cinelerra-5.1/plugins/theme_neophyte/neophyte.C index de9d59c0..3d34c837 100644 --- a/cinelerra-5.1/plugins/theme_neophyte/neophyte.C +++ b/cinelerra-5.1/plugins/theme_neophyte/neophyte.C @@ -94,6 +94,7 @@ NEOPHYTETHEME::~NEOPHYTETHEME() delete keyframe_data; delete maskkeyframe_data; delete modekeyframe_data; + delete hardedge_data; delete pankeyframe_data; delete projectorkeyframe_data; } @@ -1185,6 +1186,7 @@ void NEOPHYTETHEME::build_overlays() camerakeyframe_data = new VFramePng(get_image_data("camerakeyframe.png")); maskkeyframe_data = new VFramePng(get_image_data("maskkeyframe.png")); modekeyframe_data = new VFramePng(get_image_data("modekeyframe.png")); + hardedge_data = new VFramePng(get_image_data("hardedge.png")); pankeyframe_data = new VFramePng(get_image_data("pankeyframe.png")); projectorkeyframe_data = new VFramePng(get_image_data("projectorkeyframe.png")); } diff --git a/cinelerra-5.1/plugins/theme_pinklady/data/hardedge.png b/cinelerra-5.1/plugins/theme_pinklady/data/hardedge.png new file mode 100644 index 00000000..c3724eb3 Binary files /dev/null and b/cinelerra-5.1/plugins/theme_pinklady/data/hardedge.png differ diff --git a/cinelerra-5.1/plugins/theme_pinklady/pinkladytheme.C b/cinelerra-5.1/plugins/theme_pinklady/pinkladytheme.C index 671da394..50017627 100644 --- a/cinelerra-5.1/plugins/theme_pinklady/pinkladytheme.C +++ b/cinelerra-5.1/plugins/theme_pinklady/pinkladytheme.C @@ -83,6 +83,7 @@ PINKLADY::~PINKLADY() delete keyframe_data; delete maskkeyframe_data; delete modekeyframe_data; + delete hardedge_data; delete pankeyframe_data; delete projectorkeyframe_data; } @@ -863,6 +864,7 @@ void PINKLADY::build_overlays() camerakeyframe_data = new VFramePng(get_image_data("camerakeyframe.png")); maskkeyframe_data = new VFramePng(get_image_data("maskkeyframe.png")); modekeyframe_data = new VFramePng(get_image_data("modekeyframe.png")); + hardedge_data = new VFramePng(get_image_data("hardedge.png")); pankeyframe_data = new VFramePng(get_image_data("pankeyframe.png")); projectorkeyframe_data = new VFramePng(get_image_data("projectorkeyframe.png")); } diff --git a/cinelerra-5.1/plugins/theme_suv/data/hardedge.png b/cinelerra-5.1/plugins/theme_suv/data/hardedge.png new file mode 100644 index 00000000..c3724eb3 Binary files /dev/null and b/cinelerra-5.1/plugins/theme_suv/data/hardedge.png differ diff --git a/cinelerra-5.1/plugins/theme_suv/suv.C b/cinelerra-5.1/plugins/theme_suv/suv.C index 3c6de6f2..40ad35c4 100644 --- a/cinelerra-5.1/plugins/theme_suv/suv.C +++ b/cinelerra-5.1/plugins/theme_suv/suv.C @@ -94,6 +94,7 @@ SUV::~SUV() delete keyframe_data; delete maskkeyframe_data; delete modekeyframe_data; + delete hardedge_data; delete pankeyframe_data; delete projectorkeyframe_data; } @@ -876,6 +877,7 @@ void SUV::build_overlays() camerakeyframe_data = new VFramePng(get_image_data("camerakeyframe.png")); maskkeyframe_data = new VFramePng(get_image_data("maskkeyframe.png")); modekeyframe_data = new VFramePng(get_image_data("modekeyframe.png")); + hardedge_data = new VFramePng(get_image_data("hardedge.png")); pankeyframe_data = new VFramePng(get_image_data("pankeyframe.png")); projectorkeyframe_data = new VFramePng(get_image_data("projectorkeyframe.png")); } diff --git a/cinelerra-5.1/plugins/theme_unflat/data/hardedge.png b/cinelerra-5.1/plugins/theme_unflat/data/hardedge.png new file mode 100644 index 00000000..c3724eb3 Binary files /dev/null and b/cinelerra-5.1/plugins/theme_unflat/data/hardedge.png differ diff --git a/cinelerra-5.1/plugins/theme_unflat/unflattheme.C b/cinelerra-5.1/plugins/theme_unflat/unflattheme.C index def4469b..55a3dd04 100644 --- a/cinelerra-5.1/plugins/theme_unflat/unflattheme.C +++ b/cinelerra-5.1/plugins/theme_unflat/unflattheme.C @@ -92,6 +92,7 @@ UNFLATTHEME::~UNFLATTHEME() delete keyframe_data; delete maskkeyframe_data; delete modekeyframe_data; + delete hardedge_data; delete pankeyframe_data; delete projectorkeyframe_data; } @@ -872,6 +873,7 @@ void UNFLATTHEME::build_overlays() camerakeyframe_data = new VFramePng(get_image_data("camerakeyframe.png")); maskkeyframe_data = new VFramePng(get_image_data("maskkeyframe.png")); modekeyframe_data = new VFramePng(get_image_data("modekeyframe.png")); + hardedge_data = new VFramePng(get_image_data("hardedge.png")); pankeyframe_data = new VFramePng(get_image_data("pankeyframe.png")); projectorkeyframe_data = new VFramePng(get_image_data("projectorkeyframe.png")); }