From 540f653df26e5e2d1249de1f7a1a3d888dddf341 Mon Sep 17 00:00:00 2001 From: Good Guy Date: Mon, 9 Jul 2018 18:48:52 -0600 Subject: [PATCH] add proxy quick switch, folder lock, shortcuts update, bsd GL tweak --- cinelerra-5.1/blds/bsd.bld | 4 +- cinelerra-5.1/cinelerra/awindowgui.C | 12 +- cinelerra-5.1/cinelerra/awindowgui.h | 2 + cinelerra-5.1/cinelerra/edl.C | 9 +- cinelerra-5.1/cinelerra/edl.h | 2 +- cinelerra-5.1/cinelerra/edlsession.C | 12 +- cinelerra-5.1/cinelerra/edlsession.h | 2 + cinelerra-5.1/cinelerra/mwindow.C | 163 +++++++++++++++++ cinelerra-5.1/cinelerra/mwindow.h | 6 +- cinelerra-5.1/cinelerra/mwindowedit.C | 6 - cinelerra-5.1/cinelerra/mwindowgui.C | 67 ++++++- cinelerra-5.1/cinelerra/mwindowgui.h | 15 ++ cinelerra-5.1/cinelerra/pluginlv2config.C | 1 + cinelerra-5.1/cinelerra/proxy.C | 171 +++--------------- cinelerra-5.1/cinelerra/proxy.h | 3 +- cinelerra-5.1/cinelerra/theme.C | 3 +- cinelerra-5.1/cinelerra/theme.h | 1 + cinelerra-5.1/doc/shortcuts.html | 86 ++++++++- .../plugins/theme_blond/blondtheme.C | 7 + .../plugins/theme_blond/data/proxy_chkd.png | Bin 0 -> 794 bytes .../plugins/theme_blond/data/proxy_chkdhi.png | Bin 0 -> 787 bytes .../plugins/theme_blond/data/proxy_down.png | Bin 0 -> 473 bytes .../plugins/theme_blond/data/proxy_hi.png | Bin 0 -> 814 bytes .../plugins/theme_blond/data/proxy_up.png | Bin 0 -> 589 bytes .../plugins/theme_blond/data/proxy_uphi.png | Bin 0 -> 537 bytes .../plugins/theme_blond_cv/blondcvtheme.C | 7 + .../theme_blond_cv/data/proxy_chkd.png | Bin 0 -> 794 bytes .../theme_blond_cv/data/proxy_chkdhi.png | Bin 0 -> 787 bytes .../theme_blond_cv/data/proxy_down.png | Bin 0 -> 473 bytes .../plugins/theme_blond_cv/data/proxy_hi.png | Bin 0 -> 814 bytes .../plugins/theme_blond_cv/data/proxy_up.png | Bin 0 -> 589 bytes .../theme_blond_cv/data/proxy_uphi.png | Bin 0 -> 537 bytes cinelerra-5.1/plugins/theme_blue/bluetheme.C | 7 + .../plugins/theme_blue/data/proxy_chkd.png | Bin 0 -> 794 bytes .../plugins/theme_blue/data/proxy_chkdhi.png | Bin 0 -> 787 bytes .../plugins/theme_blue/data/proxy_down.png | Bin 0 -> 473 bytes .../plugins/theme_blue/data/proxy_hi.png | Bin 0 -> 814 bytes .../plugins/theme_blue/data/proxy_up.png | Bin 0 -> 589 bytes .../plugins/theme_blue/data/proxy_uphi.png | Bin 0 -> 537 bytes .../plugins/theme_blue_dot/bluedottheme.C | 7 + .../theme_blue_dot/data/proxy_chkd.png | Bin 0 -> 794 bytes .../theme_blue_dot/data/proxy_chkdhi.png | Bin 0 -> 787 bytes .../theme_blue_dot/data/proxy_down.png | Bin 0 -> 473 bytes .../plugins/theme_blue_dot/data/proxy_hi.png | Bin 0 -> 814 bytes .../plugins/theme_blue_dot/data/proxy_up.png | Bin 0 -> 589 bytes .../theme_blue_dot/data/proxy_uphi.png | Bin 0 -> 537 bytes .../plugins/theme_bright/brighttheme.C | 7 + .../plugins/theme_bright/data/proxy_chkd.png | Bin 0 -> 794 bytes .../theme_bright/data/proxy_chkdhi.png | Bin 0 -> 787 bytes .../plugins/theme_bright/data/proxy_down.png | Bin 0 -> 473 bytes .../plugins/theme_bright/data/proxy_hi.png | Bin 0 -> 814 bytes .../plugins/theme_bright/data/proxy_up.png | Bin 0 -> 589 bytes .../plugins/theme_bright/data/proxy_uphi.png | Bin 0 -> 537 bytes .../plugins/theme_hulk/data/proxy_chkd.png | Bin 0 -> 794 bytes .../plugins/theme_hulk/data/proxy_chkdhi.png | Bin 0 -> 787 bytes .../plugins/theme_hulk/data/proxy_down.png | Bin 0 -> 473 bytes .../plugins/theme_hulk/data/proxy_hi.png | Bin 0 -> 814 bytes .../plugins/theme_hulk/data/proxy_up.png | Bin 0 -> 589 bytes .../plugins/theme_hulk/data/proxy_uphi.png | Bin 0 -> 537 bytes cinelerra-5.1/plugins/theme_hulk/hulktheme.C | 7 + .../theme_pinklady/data/proxy_chkd.png | Bin 0 -> 794 bytes .../theme_pinklady/data/proxy_chkdhi.png | Bin 0 -> 787 bytes .../theme_pinklady/data/proxy_down.png | Bin 0 -> 473 bytes .../plugins/theme_pinklady/data/proxy_hi.png | Bin 0 -> 814 bytes .../plugins/theme_pinklady/data/proxy_up.png | Bin 0 -> 589 bytes .../theme_pinklady/data/proxy_uphi.png | Bin 0 -> 537 bytes .../plugins/theme_pinklady/pinkladytheme.C | 7 + .../plugins/theme_suv/data/proxy_chkd.png | Bin 0 -> 794 bytes .../plugins/theme_suv/data/proxy_chkdhi.png | Bin 0 -> 787 bytes .../plugins/theme_suv/data/proxy_down.png | Bin 0 -> 473 bytes .../plugins/theme_suv/data/proxy_hi.png | Bin 0 -> 814 bytes .../plugins/theme_suv/data/proxy_up.png | Bin 0 -> 589 bytes .../plugins/theme_suv/data/proxy_uphi.png | Bin 0 -> 537 bytes cinelerra-5.1/plugins/theme_suv/suv.C | 7 + .../plugins/theme_unflat/data/proxy_chkd.png | Bin 0 -> 794 bytes .../theme_unflat/data/proxy_chkdhi.png | Bin 0 -> 787 bytes .../plugins/theme_unflat/data/proxy_down.png | Bin 0 -> 473 bytes .../plugins/theme_unflat/data/proxy_hi.png | Bin 0 -> 814 bytes .../plugins/theme_unflat/data/proxy_up.png | Bin 0 -> 589 bytes .../plugins/theme_unflat/data/proxy_uphi.png | Bin 0 -> 537 bytes .../plugins/theme_unflat/unflattheme.C | 7 + 81 files changed, 450 insertions(+), 178 deletions(-) create mode 100644 cinelerra-5.1/plugins/theme_blond/data/proxy_chkd.png create mode 100644 cinelerra-5.1/plugins/theme_blond/data/proxy_chkdhi.png create mode 100644 cinelerra-5.1/plugins/theme_blond/data/proxy_down.png create mode 100644 cinelerra-5.1/plugins/theme_blond/data/proxy_hi.png create mode 100644 cinelerra-5.1/plugins/theme_blond/data/proxy_up.png create mode 100644 cinelerra-5.1/plugins/theme_blond/data/proxy_uphi.png create mode 100644 cinelerra-5.1/plugins/theme_blond_cv/data/proxy_chkd.png create mode 100644 cinelerra-5.1/plugins/theme_blond_cv/data/proxy_chkdhi.png create mode 100644 cinelerra-5.1/plugins/theme_blond_cv/data/proxy_down.png create mode 100644 cinelerra-5.1/plugins/theme_blond_cv/data/proxy_hi.png create mode 100644 cinelerra-5.1/plugins/theme_blond_cv/data/proxy_up.png create mode 100644 cinelerra-5.1/plugins/theme_blond_cv/data/proxy_uphi.png create mode 100644 cinelerra-5.1/plugins/theme_blue/data/proxy_chkd.png create mode 100644 cinelerra-5.1/plugins/theme_blue/data/proxy_chkdhi.png create mode 100644 cinelerra-5.1/plugins/theme_blue/data/proxy_down.png create mode 100644 cinelerra-5.1/plugins/theme_blue/data/proxy_hi.png create mode 100644 cinelerra-5.1/plugins/theme_blue/data/proxy_up.png create mode 100644 cinelerra-5.1/plugins/theme_blue/data/proxy_uphi.png create mode 100644 cinelerra-5.1/plugins/theme_blue_dot/data/proxy_chkd.png create mode 100644 cinelerra-5.1/plugins/theme_blue_dot/data/proxy_chkdhi.png create mode 100644 cinelerra-5.1/plugins/theme_blue_dot/data/proxy_down.png create mode 100644 cinelerra-5.1/plugins/theme_blue_dot/data/proxy_hi.png create mode 100644 cinelerra-5.1/plugins/theme_blue_dot/data/proxy_up.png create mode 100644 cinelerra-5.1/plugins/theme_blue_dot/data/proxy_uphi.png create mode 100644 cinelerra-5.1/plugins/theme_bright/data/proxy_chkd.png create mode 100644 cinelerra-5.1/plugins/theme_bright/data/proxy_chkdhi.png create mode 100644 cinelerra-5.1/plugins/theme_bright/data/proxy_down.png create mode 100644 cinelerra-5.1/plugins/theme_bright/data/proxy_hi.png create mode 100644 cinelerra-5.1/plugins/theme_bright/data/proxy_up.png create mode 100644 cinelerra-5.1/plugins/theme_bright/data/proxy_uphi.png create mode 100644 cinelerra-5.1/plugins/theme_hulk/data/proxy_chkd.png create mode 100644 cinelerra-5.1/plugins/theme_hulk/data/proxy_chkdhi.png create mode 100644 cinelerra-5.1/plugins/theme_hulk/data/proxy_down.png create mode 100644 cinelerra-5.1/plugins/theme_hulk/data/proxy_hi.png create mode 100644 cinelerra-5.1/plugins/theme_hulk/data/proxy_up.png create mode 100644 cinelerra-5.1/plugins/theme_hulk/data/proxy_uphi.png create mode 100644 cinelerra-5.1/plugins/theme_pinklady/data/proxy_chkd.png create mode 100644 cinelerra-5.1/plugins/theme_pinklady/data/proxy_chkdhi.png create mode 100644 cinelerra-5.1/plugins/theme_pinklady/data/proxy_down.png create mode 100644 cinelerra-5.1/plugins/theme_pinklady/data/proxy_hi.png create mode 100644 cinelerra-5.1/plugins/theme_pinklady/data/proxy_up.png create mode 100644 cinelerra-5.1/plugins/theme_pinklady/data/proxy_uphi.png create mode 100644 cinelerra-5.1/plugins/theme_suv/data/proxy_chkd.png create mode 100644 cinelerra-5.1/plugins/theme_suv/data/proxy_chkdhi.png create mode 100644 cinelerra-5.1/plugins/theme_suv/data/proxy_down.png create mode 100644 cinelerra-5.1/plugins/theme_suv/data/proxy_hi.png create mode 100644 cinelerra-5.1/plugins/theme_suv/data/proxy_up.png create mode 100644 cinelerra-5.1/plugins/theme_suv/data/proxy_uphi.png create mode 100644 cinelerra-5.1/plugins/theme_unflat/data/proxy_chkd.png create mode 100644 cinelerra-5.1/plugins/theme_unflat/data/proxy_chkdhi.png create mode 100644 cinelerra-5.1/plugins/theme_unflat/data/proxy_down.png create mode 100644 cinelerra-5.1/plugins/theme_unflat/data/proxy_hi.png create mode 100644 cinelerra-5.1/plugins/theme_unflat/data/proxy_up.png create mode 100644 cinelerra-5.1/plugins/theme_unflat/data/proxy_uphi.png diff --git a/cinelerra-5.1/blds/bsd.bld b/cinelerra-5.1/blds/bsd.bld index 3707579c..6795b230 100755 --- a/cinelerra-5.1/blds/bsd.bld +++ b/cinelerra-5.1/blds/bsd.bld @@ -9,7 +9,7 @@ alias make=gmake ./autogen.sh CC=clang CXX=clang++ CFLAGS="-g -O2 -DFFMPEG3" ./configure --with-single-user \ --disable-static-build --without-lv2 --disable-lame --disable-twolame \ - --with-oss --without-alsa --without-gl --without-firewire --without-dv \ - --without-dvb --without-video4linux2 --without-xxf86vm --without-ladspa-build \ + --with-oss --without-alsa --without-firewire --without-dv --without-dvb \ + --without-video4linux2 --without-xxf86vm --without-ladspa-build \ --without-libzmpeg --without-commercial --without-thirdparty gmake 2>&1 | tee log diff --git a/cinelerra-5.1/cinelerra/awindowgui.C b/cinelerra-5.1/cinelerra/awindowgui.C index 186dcc5b..bffaa2d1 100644 --- a/cinelerra-5.1/cinelerra/awindowgui.C +++ b/cinelerra-5.1/cinelerra/awindowgui.C @@ -847,6 +847,7 @@ AWindowGUI::AWindowGUI(MWindow *mwindow, AWindow *awindow) vicon_audio = 0; vicon_drawing = 1; displayed_folder = AW_NO_FOLDER; + folder_lock = new Mutex("AWindowGUI::folder_lock"); } AWindowGUI::~AWindowGUI() @@ -889,6 +890,7 @@ AWindowGUI::~AWindowGUI() delete vtransition_vframe; delete vtransition_icon; delete aeffect_vframe; delete aeffect_icon; delete veffect_vframe; delete veffect_icon; + delete folder_lock; } bool AWindowGUI::protected_pixmap(BC_Pixmap *icon) @@ -998,7 +1000,7 @@ void AWindowGUI::create_objects() plugin_icon(ladspa_vframe, ladspa_icon, "lad_picon", lad_picon_png); plugin_icon(ff_aud_vframe, ff_aud_icon, "ff_audio", ff_audio_png); plugin_icon(ff_vid_vframe, ff_vid_icon, "ff_video", ff_video_png); - + folder_lock->lock("AWindowGUI::create_objects"); // Mandatory folders folders.append(new AssetPicon(mwindow, this, AW_AEFFECT_FOLDER, 1)); folders.append(new AssetPicon(mwindow, this, AW_VEFFECT_FOLDER, 1)); @@ -1010,6 +1012,7 @@ void AWindowGUI::create_objects() folders.append(new AssetPicon(mwindow, this, AW_MEDIA_FOLDER, 1)); create_label_folder(); + folder_lock->unlock(); mwindow->theme->get_awindow_sizes(this); load_defaults(mwindow->defaults); @@ -1553,6 +1556,7 @@ void AWindowGUI::update_picon(Indexable *indexable) void AWindowGUI::sort_assets(int use_mtime) { + folder_lock->lock("AWindowGUI::sort_assets"); switch( mwindow->edl->session->awindow_folder ) { case AW_AEFFECT_FOLDER: sort_picons(&aeffects); @@ -1571,16 +1575,20 @@ void AWindowGUI::sort_assets(int use_mtime) break; default: sort_picons(&assets, use_mtime); + break; } // reset xyposition asset_list->update_format(asset_list->get_format(), 0); + folder_lock->unlock(); update_assets(); } void AWindowGUI::sort_folders() { + folder_lock->lock("AWindowGUI::update_assets"); sort_picons(&folders); folder_list->update_format(folder_list->get_format(), 0); + folder_lock->unlock(); update_assets(); } @@ -1753,6 +1761,7 @@ void AWindowGUI::filter_displayed_assets() void AWindowGUI::update_assets() { stop_vicon_drawing(); + folder_lock->lock("AWindowGUI::update_assets"); update_folder_list(); update_asset_list(); labellist.remove_all_objects(); @@ -1761,6 +1770,7 @@ void AWindowGUI::update_assets() if( displayed_folder != mwindow->edl->session->awindow_folder ) search_text->clear(); filter_displayed_assets(); + folder_lock->unlock(); if( mwindow->edl->session->folderlist_format != folder_list->get_format() ) { folder_list->update_format(mwindow->edl->session->folderlist_format, 0); diff --git a/cinelerra-5.1/cinelerra/awindowgui.h b/cinelerra-5.1/cinelerra/awindowgui.h index 440b4019..b941e18d 100644 --- a/cinelerra-5.1/cinelerra/awindowgui.h +++ b/cinelerra-5.1/cinelerra/awindowgui.h @@ -40,6 +40,7 @@ #include "labels.h" #include "indexable.inc" #include "mwindow.inc" +#include "mutex.inc" #include "newfolder.inc" #include "pluginserver.inc" #include "proxypopup.inc" @@ -215,6 +216,7 @@ public: AWindowFolders *folder_list; AWindowDivider *divider; AWindowSearchText *search_text; + Mutex *folder_lock; // Store data to speed up responses // Persistant data for listboxes diff --git a/cinelerra-5.1/cinelerra/edl.C b/cinelerra-5.1/cinelerra/edl.C index d3f19b23..cfed55d6 100644 --- a/cinelerra-5.1/cinelerra/edl.C +++ b/cinelerra-5.1/cinelerra/edl.C @@ -1494,16 +1494,15 @@ void EDL::rescale_proxy(int orig_scale, int new_scale) } } -void EDL::set_proxy(int use_scaler, int new_scale, int auto_scale, int beep, +void EDL::set_proxy(int new_scale, int use_scaler, ArrayList *orig_assets, ArrayList *proxy_assets) { - int orig_use_scaler = session->proxy_use_scaler; int orig_scale = session->proxy_scale; + int orig_use_scaler = session->proxy_use_scaler; + // rescale to full size asset in read_frame - session->proxy_use_scaler = use_scaler; session->proxy_scale = new_scale; - session->proxy_auto_scale = auto_scale; - session->proxy_beep = beep; + session->proxy_use_scaler = use_scaler; if( use_scaler ) { for( int i=0; isize(); ++i ) { diff --git a/cinelerra-5.1/cinelerra/edl.h b/cinelerra-5.1/cinelerra/edl.h index 44802e31..bc22b290 100644 --- a/cinelerra-5.1/cinelerra/edl.h +++ b/cinelerra-5.1/cinelerra/edl.h @@ -250,7 +250,7 @@ public: // Does nothing if EDL already exists void append_vwindow_edl(EDL *edl, int increase_counter); void rescale_proxy(int orig_scale, int new_scale); - void set_proxy(int use_scaler, int new_scale, int auto_scale, int beep, + void set_proxy(int new_scale, int use_scaler, ArrayList *orig_assets, ArrayList *proxy_assets); void add_proxy(int use_scaler, ArrayList *orig_assets, ArrayList *proxy_assets); diff --git a/cinelerra-5.1/cinelerra/edlsession.C b/cinelerra-5.1/cinelerra/edlsession.C index e0d5f701..9bdb6458 100644 --- a/cinelerra-5.1/cinelerra/edlsession.C +++ b/cinelerra-5.1/cinelerra/edlsession.C @@ -99,6 +99,7 @@ EDLSession::EDLSession(EDL *edl) playback_cursor_visible = 0; playback_preload = 0; proxy_scale = 1; + proxy_disabled_scale = 1; proxy_use_scaler = 0; proxy_auto_scale = 1; proxy_beep = 0; @@ -174,6 +175,7 @@ int EDLSession::need_rerender(EDLSession *ptr) (subtitle_number != ptr->subtitle_number) || (interpolate_raw != ptr->interpolate_raw) || (white_balance_raw != ptr->white_balance_raw) || + (proxy_disabled_scale != ptr->proxy_disabled_scale) || (proxy_scale != ptr->proxy_scale) || (proxy_use_scaler != ptr->proxy_use_scaler)); } @@ -189,6 +191,7 @@ void EDLSession::equivalent_output(EDLSession *session, double *result) session->white_balance_raw != white_balance_raw || session->decode_subtitles != decode_subtitles || session->subtitle_number != subtitle_number || + session->proxy_disabled_scale != proxy_disabled_scale || session->proxy_scale != proxy_scale || session->proxy_use_scaler != proxy_use_scaler ) *result = 0; @@ -553,6 +556,7 @@ int EDLSession::load_video_config(FileXML *file, int append_mode, uint32_t load_ aspect_w = file->tag.get_property("ASPECTW", aspect_w); aspect_h = file->tag.get_property("ASPECTH", aspect_h); proxy_scale = file->tag.get_property("PROXY_SCALE", proxy_scale); + proxy_disabled_scale = file->tag.get_property("PROXY_DISABLED_SCALE", proxy_disabled_scale); proxy_use_scaler = file->tag.get_property("PROXY_USE_SCALER", proxy_use_scaler); proxy_auto_scale = file->tag.get_property("PROXY_AUTO_SCALE", proxy_auto_scale); return 0; @@ -748,6 +752,7 @@ int EDLSession::save_video_config(FileXML *file) file->tag.set_property("ASPECTW", aspect_w); file->tag.set_property("ASPECTH", aspect_h); file->tag.set_property("PROXY_SCALE", proxy_scale); + file->tag.set_property("PROXY_DISABLED_SCALE", proxy_disabled_scale); file->tag.set_property("PROXY_USE_SCALER", proxy_use_scaler); file->tag.set_property("PROXY_AUTO_SCALE", proxy_auto_scale); file->append_tag(); @@ -890,6 +895,7 @@ int EDLSession::copy(EDLSession *session) vwindow_zoom = session->vwindow_zoom; vwindow_click2play = session->vwindow_click2play; proxy_scale = session->proxy_scale; + proxy_disabled_scale = session->proxy_disabled_scale; proxy_use_scaler = session->proxy_use_scaler; proxy_auto_scale = session->proxy_auto_scale; proxy_beep = session->proxy_beep; @@ -909,12 +915,12 @@ void EDLSession::dump() printf(" audio_tracks=%d audio_channels=%d sample_rate=%jd\n" " video_tracks=%d frame_rate=%f output_w=%d output_h=%d aspect_w=%f aspect_h=%f\n" " decode subtitles=%d subtitle_number=%d label_cells=%d program_no=%d\n" - " proxy_scale=%d\n proxy_use_scaler=%d, proxy_auto_scale=%d\n" - " proxy_beep=%d render_beep=%d\n", + " proxy scale=%d\n disabled_scale=%d, use_scaler=%d, auto_scale=%d\n" + " proxy_beep=%d render_beep=%d\n", audio_tracks, audio_channels, sample_rate, video_tracks, frame_rate, output_w, output_h, aspect_w, aspect_h, decode_subtitles, subtitle_number, label_cells, program_no, - proxy_scale, proxy_use_scaler, proxy_auto_scale, + proxy_scale, proxy_disabled_scale, proxy_use_scaler, proxy_auto_scale, proxy_beep, render_beep); } diff --git a/cinelerra-5.1/cinelerra/edlsession.h b/cinelerra-5.1/cinelerra/edlsession.h index c1da8908..44d09974 100644 --- a/cinelerra-5.1/cinelerra/edlsession.h +++ b/cinelerra-5.1/cinelerra/edlsession.h @@ -161,6 +161,8 @@ public: int playback_software_position; // current settings are scaled this much from the original settings int proxy_scale; +// original proxy_scale when proxy_enable disables/enables proxy + int proxy_disabled_scale; // upscale geom from proxy to session on read in int proxy_use_scaler; // automatically rescale assets when loaded diff --git a/cinelerra-5.1/cinelerra/mwindow.C b/cinelerra-5.1/cinelerra/mwindow.C index 034b1bd6..565f3328 100644 --- a/cinelerra-5.1/cinelerra/mwindow.C +++ b/cinelerra-5.1/cinelerra/mwindow.C @@ -41,6 +41,7 @@ #include "clipedls.h" #include "bccmodels.h" #include "commercials.h" +#include "confirmsave.h" #include "cplayback.h" #include "ctimebar.h" #include "cwindowgui.h" @@ -2135,6 +2136,7 @@ if(debug) printf("MWindow::load_filenames %d\n", __LINE__); load_mode == LOADMODE_REPLACE_CONCATENATE ) ) { select_asset(0, 0); edl->session->proxy_scale = 1; + edl->session->proxy_disabled_scale = 1; edl->session->proxy_use_scaler = 0; edl->session->proxy_auto_scale = 0; edl->session->proxy_beep = 0; @@ -2252,6 +2254,167 @@ int MWindow::render_proxy(ArrayList &new_idxbls) return !result ? proxy_render.needed_proxies.size() : -1; } +int MWindow::enable_proxy() +{ + if( edl->session->proxy_scale == 1 && + edl->session->proxy_disabled_scale != 1 ) { + int new_scale = edl->session->proxy_disabled_scale; + edl->session->proxy_disabled_scale = 1; + Asset *asset = new Asset; + asset->format = FILE_FFMPEG; + asset->load_defaults(defaults, "PROXY_", 1, 1, 0, 0, 0); + to_proxy(asset, new_scale); + asset->remove_user(); + } + return 1; +} + +int MWindow::disable_proxy() +{ + if( edl->session->proxy_scale != 1 && + edl->session->proxy_disabled_scale == 1 ) { + edl->session->proxy_disabled_scale = edl->session->proxy_scale; + Asset *asset = new Asset; + asset->format = FILE_FFMPEG; + asset->load_defaults(defaults, "PROXY_", 1, 1, 0, 0, 0); + to_proxy(asset, 1); + asset->remove_user(); + } + return 1; +} + +int MWindow::to_proxy(Asset *asset, int new_scale) +{ + ArrayList orig_idxbls; + ArrayList proxy_assets; + + edl->Garbage::add_user(); + save_backup(); + undo->update_undo_before(_("proxy"), this); + ProxyRender proxy_render(this, asset); + +// revert project to original size from current size +// remove all session proxy assets at the at the current proxy_scale + int proxy_scale = edl->session->proxy_scale; + int proxy_use_scaler = edl->session->proxy_use_scaler; + + if( proxy_scale > 1 ) { + Asset *orig_asset = edl->assets->first; + for( ; orig_asset; orig_asset=orig_asset->next ) { + char new_path[BCTEXTLEN]; + proxy_render.to_proxy_path(new_path, orig_asset, proxy_scale); +// test if proxy asset was already added to proxy_assets + int got_it = 0; + for( int i = 0; !got_it && ipath, new_path); + if( got_it ) continue; + Asset *proxy_asset = edl->assets->get_asset(new_path); + if( !proxy_asset ) continue; +// add pointer to existing EDL asset if it exists +// EDL won't delete it unless it's the same pointer. + proxy_assets.append(proxy_asset); + proxy_asset->add_user(); + orig_idxbls.append(orig_asset); + orig_asset->add_user(); + } + for( int i=0,n=edl->nested_edls.size(); inested_edls[i]; + char new_path[BCTEXTLEN]; + if( !ProxyRender::from_proxy_path(new_path, orig_nested, proxy_scale) ) + continue; + proxy_render.to_proxy_path(new_path, orig_nested, proxy_scale); +// test if proxy asset was already added to proxy_assets + int got_it = 0; + for( int i = 0; !got_it && ipath, new_path); + if( got_it ) continue; + Asset *proxy_nested = edl->assets->get_asset(new_path); + if( !proxy_nested ) continue; +// add pointer to existing EDL asset if it exists +// EDL won't delete it unless it's the same pointer. + proxy_assets.append(proxy_nested); + proxy_nested->add_user(); + orig_idxbls.append(orig_nested); + orig_nested->add_user(); + } + +// convert from the proxy assets to the original assets + edl->set_proxy(1, 0, &proxy_assets, &orig_idxbls); + +// remove the references + for( int i=0; iwidth = proxy->actual_width; + proxy->height = proxy->actual_height; + proxy->remove_user(); + edl->assets->remove_pointer(proxy); + proxy->remove_user(); + } + proxy_assets.remove_all(); + for( int i = 0; i < orig_idxbls.size(); i++ ) + orig_idxbls[i]->remove_user(); + orig_idxbls.remove_all(); + } + + ArrayList confirm_paths; // test for new files + confirm_paths.set_array_delete(); + +// convert to new size if not original size + if( new_scale != 1 ) { + FileSystem fs; + Asset *orig = edl->assets->first; + for( ; orig; orig=orig->next ) { + Asset *proxy = proxy_render.add_original(orig, new_scale); + if( !proxy ) continue; + int exists = fs.get_size(proxy->path) > 0 ? 1 : 0; + int got_it = exists && // if proxy exists, and is newer than orig + fs.get_date(proxy->path) > fs.get_date(orig->path) ? 1 : 0; + if( !got_it ) { + if( exists ) // prompt user to overwrite + confirm_paths.append(cstrdup(proxy->path)); + proxy_render.add_needed(orig, proxy); + } + } + for( int i=0,n=edl->nested_edls.size(); inested_edls[i]; + Asset *proxy = proxy_render.add_original(orig_nested, new_scale); + if( !proxy ) continue; + int exists = fs.get_size(proxy->path) > 0 ? 1 : 0; + int got_it = exists && // if proxy exists, and is newer than orig_nested + fs.get_date(proxy->path) > fs.get_date(orig_nested->path) ? 1 : 0; + if( !got_it ) { + if( exists ) // prompt user to overwrite + confirm_paths.append(cstrdup(proxy->path)); + proxy_render.add_needed(orig_nested, proxy); + } + } + } + + int result = 0; +// test for existing files + if( confirm_paths.size() ) { + result = ConfirmSave::test_files(this, &confirm_paths); + confirm_paths.remove_all_objects(); + } + + if( !result ) + result = proxy_render.create_needed_proxies(new_scale); + + if( !result ) // resize project + edl->set_proxy(new_scale, proxy_use_scaler, + &proxy_render.orig_idxbls, &proxy_render.orig_proxies); + + undo->update_undo_after(_("proxy"), LOAD_ALL); + edl->Garbage::remove_user(); + restart_brender(); + + gui->lock_window("MWindow::to_proxy"); + update_project(LOADMODE_REPLACE); + gui->unlock_window(); + + return !result ? proxy_render.needed_proxies.size() : -1; +} + void MWindow::test_plugins(EDL *new_edl, char *path) { char string[BCTEXTLEN]; diff --git a/cinelerra-5.1/cinelerra/mwindow.h b/cinelerra-5.1/cinelerra/mwindow.h index fb3513a2..b9744861 100644 --- a/cinelerra-5.1/cinelerra/mwindow.h +++ b/cinelerra-5.1/cinelerra/mwindow.h @@ -509,14 +509,14 @@ public: int modify_pluginhandles(); void finish_modify_handles(); void rescale_proxy(EDL *clip, int orig_scale, int new_scale); - void set_proxy(int use_scaler, int new_scale, int auto_scale, int beep, - ArrayList *orig_assets, - ArrayList *proxy_assets); void add_proxy(int use_scaler, ArrayList *orig_assets, ArrayList *proxy_assets); int render_proxy(ArrayList &new_idxbls); void beep(double freq, double secs, double gain); + int enable_proxy(); + int disable_proxy(); + int to_proxy(Asset *asset, int new_scale); ProxyBeep *proxy_beep; void dump_plugins(FILE *fp=stdout); diff --git a/cinelerra-5.1/cinelerra/mwindowedit.C b/cinelerra-5.1/cinelerra/mwindowedit.C index ced86c1a..e5d90c6b 100644 --- a/cinelerra-5.1/cinelerra/mwindowedit.C +++ b/cinelerra-5.1/cinelerra/mwindowedit.C @@ -2329,12 +2329,6 @@ void MWindow::rescale_proxy(EDL *clip, int orig_scale, int new_scale) edl->rescale_proxy(orig_scale, new_scale); } -void MWindow::set_proxy(int use_scaler, int new_scale, int auto_scale, int beep, - ArrayList *orig_assets, ArrayList *proxy_assets) -{ - edl->set_proxy(use_scaler, new_scale, auto_scale, beep, orig_assets, proxy_assets); -} - void MWindow::add_proxy(int use_scaler, ArrayList *orig_assets, ArrayList *proxy_assets) { diff --git a/cinelerra-5.1/cinelerra/mwindowgui.C b/cinelerra-5.1/cinelerra/mwindowgui.C index 9259dde1..f2789643 100644 --- a/cinelerra-5.1/cinelerra/mwindowgui.C +++ b/cinelerra-5.1/cinelerra/mwindowgui.C @@ -277,7 +277,10 @@ void MWindowGUI::create_objects() add_subwindow(mbuttons = new MButtons(mwindow, this)); mbuttons->create_objects(); - add_subwindow(ffmpeg_toggle = new FFMpegToggle(mwindow, mbuttons, menu_w(), menu_h()+2)); + int x1 = mbuttons->get_x() + mbuttons->get_w(), y1 = mbuttons->get_y()+2; + add_subwindow(proxy_toggle = new ProxyToggle(mwindow, mbuttons, x1, y1)); + x1 += proxy_toggle->get_w() + 3; + add_subwindow(ffmpeg_toggle = new FFMpegToggle(mwindow, mbuttons, x1, y1)); pane[TOP_LEFT_PANE] = new TimelinePane(mwindow, TOP_LEFT_PANE, @@ -403,10 +406,13 @@ int MWindowGUI::resize_event(int w, int h) int x = w - MainShBtns::calculate_w(0); mainmenu->resize_event(x, mainmenu->get_h()); mainshbtns->reposition_window(x, -1); - ffmpeg_toggle->reposition_window(menu_w(), menu_h()+2); mwindow->theme->get_mwindow_sizes(this, w, h); mwindow->theme->draw_mwindow_bg(this); mbuttons->resize_event(); + int x1 = mbuttons->get_x() + mbuttons->get_w(), y1 = mbuttons->get_y()+2; + proxy_toggle->reposition_window(x1, y1); + x1 += proxy_toggle->get_w() + 3; + ffmpeg_toggle->reposition_window(x1, y1); statusbar->resize_event(); zoombar->resize_event(); @@ -702,6 +708,17 @@ void MWindowGUI::flash_canvas(int flush) } } +int MWindowGUI::show_window(int flush) +{ + int ret = BC_WindowBase::show_window(flush); + if( mwindow->edl->session->proxy_scale == 1 && + mwindow->edl->session->proxy_disabled_scale == 1 ) + proxy_toggle->hide_window(); + else + proxy_toggle->show_window(); + return ret; +} + void MWindowGUI::draw_cursor(int do_plugintoggles) { for(int i = 0; i < TOTAL_PANES; i++) @@ -1385,6 +1402,14 @@ int MWindowGUI::menu_h() return mainmenu->get_h(); } +int MWindowGUI::mbuttons_w() +{ + int w = get_w(); + w -= mwindow->theme->ffmpeg_toggle[0]->get_w()+2; + w -= mwindow->theme->ffmpeg_toggle[0]->get_w()+2; + return w; +} + void MWindowGUI::start_x_pane_drag() { if(!x_pane_drag) @@ -2365,3 +2390,41 @@ int FFMpegToggle::handle_event() } +ProxyToggle::ProxyToggle(MWindow *mwindow, MButtons *mbuttons, int x, int y) + : BC_Toggle(x, y, mwindow->theme->proxy_toggle, + mwindow->edl->session->proxy_disabled_scale != 1) +{ + this->mwindow = mwindow; + this->mbuttons = mbuttons; + set_tooltip(mwindow->edl->session->proxy_disabled_scale==1 ? + _("Disable proxy") : _("Enable proxy")); +} + +ProxyToggle::~ProxyToggle() +{ +} + +int ProxyToggle::handle_event() +{ + int disabled = get_value(); + if( disabled ) + mwindow->disable_proxy(); + else + mwindow->enable_proxy(); + set_tooltip(!disabled ? _("Disable proxy") : _("Enable proxy")); + return 1; +} + +int ProxyToggle::keypress_event() +{ + if( ctrl_down() && !shift_down() && !alt_down() ) { + int key = get_keypress(); + if( key == 'r' ) { + int value = get_value() ? 0 : 1; + set_value(value); + return handle_event(); + } + } + return 0; +} + diff --git a/cinelerra-5.1/cinelerra/mwindowgui.h b/cinelerra-5.1/cinelerra/mwindowgui.h index a40e4446..5ca693e0 100644 --- a/cinelerra-5.1/cinelerra/mwindowgui.h +++ b/cinelerra-5.1/cinelerra/mwindowgui.h @@ -78,6 +78,18 @@ public: MButtons *mbuttons; }; +class ProxyToggle : public BC_Toggle +{ +public: + ProxyToggle(MWindow *mwindow, MButtons *mbuttons, int x, int y); + ~ProxyToggle(); + int handle_event(); + int keypress_event(); + + MWindow *mwindow; + MButtons *mbuttons; +}; + class MWindowGUI : public BC_Window { @@ -116,6 +128,7 @@ public: void update_scrollbars(int flush); void draw_canvas(int mode, int hide_cursor); void flash_canvas(int flush); + int show_window(int flush=1); void deactivate_timeline(); void activate_timeline(); void reset_meters(); @@ -144,6 +157,7 @@ public: int save_defaults(BC_Hash *defaults); int menu_w(); int menu_h(); + int mbuttons_w(); // Draw on the status bar only. void show_message(const char *message, int color=-1); void update_default_message(); @@ -204,6 +218,7 @@ public: MainClock *mainclock; MButtons *mbuttons; FFMpegToggle *ffmpeg_toggle; + ProxyToggle *proxy_toggle; PaneDivider *x_divider; PaneDivider *y_divider; TimelinePane *pane[TOTAL_PANES]; diff --git a/cinelerra-5.1/cinelerra/pluginlv2config.C b/cinelerra-5.1/cinelerra/pluginlv2config.C index f104be00..32721c52 100644 --- a/cinelerra-5.1/cinelerra/pluginlv2config.C +++ b/cinelerra-5.1/cinelerra/pluginlv2config.C @@ -145,6 +145,7 @@ void PluginLV2ClientConfig::reset() delete [] syms[i]; } delete [] names; names = 0; + delete [] syms; syms = 0; delete [] mins; mins = 0; delete [] maxs; maxs = 0; delete [] ctls; ctls = 0; diff --git a/cinelerra-5.1/cinelerra/proxy.C b/cinelerra-5.1/cinelerra/proxy.C index aa9c8343..3acfa422 100644 --- a/cinelerra-5.1/cinelerra/proxy.C +++ b/cinelerra-5.1/cinelerra/proxy.C @@ -24,7 +24,6 @@ #include "bcsignals.h" #include "cache.h" #include "clip.h" -#include "confirmsave.h" #include "cstrdup.h" #include "edl.h" #include "edlsession.h" @@ -49,7 +48,7 @@ #include "vrender.h" #define WIDTH 400 -#define HEIGHT 300 +#define HEIGHT 330 #define MAX_SCALE 16 ProxyMenuItem::ProxyMenuItem(MWindow *mwindow) @@ -88,12 +87,10 @@ ProxyDialog::ProxyDialog(MWindow *mwindow) size_text[0] = cstrdup(_("Original size")); size_factors[0] = 1; total_sizes = 1; - proxy_beep = 0; } ProxyDialog::~ProxyDialog() { - delete proxy_beep; close_window(); for( int i=0; iremove_user(); @@ -163,148 +160,21 @@ void ProxyDialog::calculate_sizes() void ProxyDialog::handle_close_event(int result) { + if( result ) return; + mwindow->edl->session->proxy_use_scaler = use_scaler; + mwindow->edl->session->proxy_auto_scale = auto_scale; + mwindow->edl->session->proxy_beep = beep; + mwindow->edl->session->proxy_disabled_scale = 1; asset->save_defaults(mwindow->defaults, "PROXY_", 1, 1, 0, 0, 0); - - if( !result && (result=to_proxy()) >= 0 && beep && new_scale != 1 ) - if( result > 0 ) - mwindow->beep(2000., 1.5, 0.5); - else - mwindow->beep(4000., 0.25, 0.5); -} - -int ProxyDialog::to_proxy() -{ - ArrayList orig_idxbls; - ArrayList proxy_assets; - - EDL *edl = mwindow->edl; - mwindow->edl->Garbage::add_user(); - mwindow->save_backup(); - mwindow->undo->update_undo_before(_("proxy"), this); - ProxyRender proxy_render(mwindow, asset); - -// revert project to original size from current size -// remove all session proxy assets at the at the current proxy_scale - int proxy_scale = edl->session->proxy_scale; - if( proxy_scale > 1 ) { - Asset *orig_asset = edl->assets->first; - for( ; orig_asset; orig_asset=orig_asset->next ) { - char new_path[BCTEXTLEN]; - proxy_render.to_proxy_path(new_path, orig_asset, proxy_scale); -// test if proxy asset was already added to proxy_assets - int got_it = 0; - for( int i = 0; !got_it && ipath, new_path); - if( got_it ) continue; - Asset *proxy_asset = edl->assets->get_asset(new_path); - if( !proxy_asset ) continue; -// add pointer to existing EDL asset if it exists -// EDL won't delete it unless it's the same pointer. - proxy_assets.append(proxy_asset); - proxy_asset->add_user(); - orig_idxbls.append(orig_asset); - orig_asset->add_user(); - } - for( int i=0,n=edl->nested_edls.size(); inested_edls[i]; - char new_path[BCTEXTLEN]; - if( !ProxyRender::from_proxy_path(new_path, orig_nested, proxy_scale) ) - continue; - proxy_render.to_proxy_path(new_path, orig_nested, proxy_scale); -// test if proxy asset was already added to proxy_assets - int got_it = 0; - for( int i = 0; !got_it && ipath, new_path); - if( got_it ) continue; - Asset *proxy_nested = edl->assets->get_asset(new_path); - if( !proxy_nested ) continue; -// add pointer to existing EDL asset if it exists -// EDL won't delete it unless it's the same pointer. - proxy_assets.append(proxy_nested); - proxy_nested->add_user(); - orig_idxbls.append(orig_nested); - orig_nested->add_user(); - } - -// convert from the proxy assets to the original assets - int auto_scale = edl->session->proxy_auto_scale; - int beep = edl->session->proxy_beep; - mwindow->set_proxy(0, 1, auto_scale, beep, &proxy_assets, &orig_idxbls); - -// remove the references - for( int i=0; iwidth = proxy->actual_width; - proxy->height = proxy->actual_height; - proxy->remove_user(); - mwindow->edl->assets->remove_pointer(proxy); - proxy->remove_user(); - } - proxy_assets.remove_all(); - for( int i = 0; i < orig_idxbls.size(); i++ ) - orig_idxbls[i]->remove_user(); - orig_idxbls.remove_all(); - } - - ArrayList confirm_paths; // test for new files - confirm_paths.set_array_delete(); - -// convert to new size if not original size - if( new_scale != 1 ) { - FileSystem fs; - Asset *orig = mwindow->edl->assets->first; - for( ; orig; orig=orig->next ) { - Asset *proxy = proxy_render.add_original(orig, new_scale); - if( !proxy ) continue; - int exists = fs.get_size(proxy->path) > 0 ? 1 : 0; - int got_it = exists && // if proxy exists, and is newer than orig - fs.get_date(proxy->path) > fs.get_date(orig->path) ? 1 : 0; - if( !got_it ) { - if( exists ) // prompt user to overwrite - confirm_paths.append(cstrdup(proxy->path)); - proxy_render.add_needed(orig, proxy); - } - } - for( int i=0,n=edl->nested_edls.size(); inested_edls[i]; - Asset *proxy = proxy_render.add_original(orig_nested, new_scale); - if( !proxy ) continue; - int exists = fs.get_size(proxy->path) > 0 ? 1 : 0; - int got_it = exists && // if proxy exists, and is newer than orig_nested - fs.get_date(proxy->path) > fs.get_date(orig_nested->path) ? 1 : 0; - if( !got_it ) { - if( exists ) // prompt user to overwrite - confirm_paths.append(cstrdup(proxy->path)); - proxy_render.add_needed(orig_nested, proxy); - } - } + result = mwindow->to_proxy(asset, new_scale); + if( result >= 0 && beep && new_scale != 1 ) { + static struct { double freq, secs, gain; } + tone[2] = { { 2000., 1.5, 0.5 }, { 4000., 0.25, 0.5 } }; + int i = result > 0 ? 0 : 1; + mwindow->beep(tone[i].freq, tone[i].secs, tone[i].gain); } - - int result = 0; -// test for existing files - if( confirm_paths.size() ) { - result = ConfirmSave::test_files(mwindow, &confirm_paths); - confirm_paths.remove_all_objects(); - } - - if( !result ) - result = proxy_render.create_needed_proxies(new_scale); - - if( !result ) // resize project - mwindow->set_proxy(use_scaler, new_scale, auto_scale, beep, - &proxy_render.orig_idxbls, &proxy_render.orig_proxies); - - mwindow->undo->update_undo_after(_("proxy"), LOAD_ALL); - mwindow->edl->Garbage::remove_user(); - mwindow->restart_brender(); - - mwindow->gui->lock_window("ProxyDialog::to_proxy"); - mwindow->update_project(LOADMODE_REPLACE); - mwindow->gui->unlock_window(); - return !result ? proxy_render.needed_proxies.size() : -1; } - void ProxyRender::to_proxy_path(char *new_path, Indexable *indexable, int scale) { // path is already a proxy @@ -516,6 +386,12 @@ void ProxyWindow::create_objects() add_subwindow(new_dimensions = new BC_Title(x, y, "")); y += new_dimensions->get_h() + margin; + x = margin; + add_subwindow(text = new BC_Title(x, y, _("Active Scale: "))); + x += text->get_w() + margin; + add_subwindow(active_scale = new BC_Title(x, y, "")); + y += active_scale->get_h() + margin; + x = margin; y += 25; format_tools = new ProxyFormatTools(mwindow, this, dialog->asset); format_tools->create_objects(x, y, 0, 1, 0, 0, 0, 1, 0, 1, // skip the path @@ -549,11 +425,7 @@ void ProxyFormatTools::update_format() void ProxyWindow::update() { -// preview the new size - char string[BCTEXTLEN]; -//printf("ProxyWindow::update %d %d %d %d %d\n", -// __LINE__, mwindow->edl->session->output_w, mwindow->edl->session->output_h, -// dialog->orig_scale, dialog->new_scale); + char string[BCSTRLEN]; int orig_w = mwindow->edl->session->output_w * dialog->orig_scale; int orig_h = mwindow->edl->session->output_h * dialog->orig_scale; int new_w = orig_w / dialog->new_scale; @@ -566,6 +438,10 @@ void ProxyWindow::update() scale_factor->set_text(string); use_scaler->update(); auto_scale->update(); + int scale = mwindow->edl->session->proxy_scale; + if( scale == 1 ) scale = mwindow->edl->session->proxy_disabled_scale; + sprintf(string, scale>1 ? "1/%d" : "%d", scale); + active_scale->update(string); } @@ -587,7 +463,6 @@ void ProxyUseScaler::update() int ProxyUseScaler::handle_event() { - pwindow->dialog->new_scale = 1; pwindow->dialog->use_scaler = get_value(); pwindow->scale_factor->update_sizes(); pwindow->update(); diff --git a/cinelerra-5.1/cinelerra/proxy.h b/cinelerra-5.1/cinelerra/proxy.h index b1121254..c98f2e04 100644 --- a/cinelerra-5.1/cinelerra/proxy.h +++ b/cinelerra-5.1/cinelerra/proxy.h @@ -99,7 +99,6 @@ public: void handle_close_event(int result); void from_proxy(); - int to_proxy(); // calculate possible sizes based on the original size void calculate_sizes(); void scale_to_text(char *string, int scale); @@ -108,7 +107,6 @@ public: ProxyWindow *gui; Asset *asset; ProxyRender *proxy_render; - ProxyBeep *proxy_beep; int new_scale; int orig_scale; @@ -198,6 +196,7 @@ public: ProxyDialog *dialog; FormatTools *format_tools; BC_Title *new_dimensions; + BC_Title *active_scale; ProxyMenu *scale_factor; ProxyUseScaler *use_scaler; ProxyAutoScale *auto_scale; diff --git a/cinelerra-5.1/cinelerra/theme.C b/cinelerra-5.1/cinelerra/theme.C index 9ed31959..b1deeb09 100644 --- a/cinelerra-5.1/cinelerra/theme.C +++ b/cinelerra-5.1/cinelerra/theme.C @@ -128,6 +128,7 @@ Theme::Theme() edithandleout_data = 0; extract_data = 0; ffmpeg_toggle = 0; + proxy_toggle = 0; infoasset_data = 0; in_point = 0; insert_data = 0; @@ -596,7 +597,7 @@ void Theme::get_mwindow_sizes(MWindowGUI *gui, int w, int h) { mbuttons_x = 0; mbuttons_y = gui->menu_h() + 1; - mbuttons_w = gui->menu_w(); + mbuttons_w = gui->mbuttons_w(); mbuttons_h = get_image("mbutton_bg")->get_h(); mclock_x = window_border - 5; mclock_y = mbuttons_y - 1 + mbuttons_h; diff --git a/cinelerra-5.1/cinelerra/theme.h b/cinelerra-5.1/cinelerra/theme.h index 009f396f..35dad586 100644 --- a/cinelerra-5.1/cinelerra/theme.h +++ b/cinelerra-5.1/cinelerra/theme.h @@ -325,6 +325,7 @@ public: VFrame **edithandleout_data; VFrame **extract_data; VFrame **ffmpeg_toggle; + VFrame **proxy_toggle; VFrame **infoasset_data; VFrame **in_point; VFrame **insert_data; diff --git a/cinelerra-5.1/doc/shortcuts.html b/cinelerra-5.1/doc/shortcuts.html index d360db50..59b56638 100644 --- a/cinelerra-5.1/doc/shortcuts.html +++ b/cinelerra-5.1/doc/shortcuts.html @@ -54,6 +54,18 @@ 'o' Load file(s) + +
+ - load tool + 'Alt-a' + Selects all files + + +
+ - load tool + 'Alt-z' + Deselects any selected files +
Save @@ -888,6 +900,18 @@
Lock labels from moving + +
+ Editing choice +
+ Drag and drop editing mode + + +
+ Editing choice +
+ Cut and paste editing mode +

@@ -1350,6 +1374,12 @@
Paste the last Audio transition + +
+ 'r' + 'Ctrl' + Proxy quick switch +

@@ -1446,6 +1476,24 @@ F7 Crop a layer or output + +
+ + crop tool + Click-drag + In video, starts a new rectangle + + +
+ + crop tool + Click-drag + Over rectangle corner to reposition + + +
+ + crop tool + Alt-click + In cropping rectangle to translate +
Get color @@ -1806,6 +1854,24 @@ 'g' Jump to time selected by popup + +
+
+
+
+ + + Keypresses + Key + Qualifier + Description + + +
+ Right click +
+ Brings up fullscreen/zoom/close menu +

@@ -2106,6 +2172,18 @@ Opens Load files... menu + +
+ - load tool + Ctrl-a + Selects all files + + +
+ - load tool + Ctrl-z + Deselects any selected files +

@@ -2212,7 +2290,7 @@

Double click - In Find window,centers there & turns yellow + In Find window, cursor moves to hilite program
@@ -2227,16 +2305,16 @@
- Android Remote + Remote Control MENU
- Toggle Android remote state (grabs/ungrabs keys) + Toggle remote control state (grabs/ungrabs keys)
KPTV
- Start/stop record window + Open or close the record window
diff --git a/cinelerra-5.1/plugins/theme_blond/blondtheme.C b/cinelerra-5.1/plugins/theme_blond/blondtheme.C index 93f4da0b..c6bbc6e6 100644 --- a/cinelerra-5.1/plugins/theme_blond/blondtheme.C +++ b/cinelerra-5.1/plugins/theme_blond/blondtheme.C @@ -622,6 +622,13 @@ void BlondTheme::initialize() "ff_down.png", "ff_checkedhi.png"); + proxy_toggle = new_image_set(5, + "proxy_up.png", + "proxy_hi.png", + "proxy_chkd.png", + "proxy_down.png", + "proxy_chkdhi.png"); + shbtn_data = new_image_set(3, "shbtn_up.png", "shbtn_hi.png", diff --git a/cinelerra-5.1/plugins/theme_blond/data/proxy_chkd.png b/cinelerra-5.1/plugins/theme_blond/data/proxy_chkd.png new file mode 100644 index 0000000000000000000000000000000000000000..98430bc1916cadbd3ed98ccf934825a61c23b576 GIT binary patch literal 794 zcmV+#1LgdQP)WFU8GbZ8()Nlj2>E@cM*00MqVL_t(Y$L*F&NK{c6 z$G`8~JGZ%mE~dp831Q?wk{IT_vka<5W$k+4x=n2gS|pTB(G&#+QHa#8wcs{;KoQYy zW-=s+t*oPP^%6jIJ3BM8s#y#C+s{LgnDL{%2wZ#xLs0BlIv)={mF zpnqIe0e%Z0rQM~Jb)!&7)K)8AC?sl?vad;LB`X4$n@iL)(-~$y5shM4O6zbHNqQg} zRd1N-Br}~Z7F#!z4PY2DPDHarM9j2a2<}tLy63vBn@R?8)QTLZZJlXyiinOdvla-yCBg${J|5J2iD(xyZCl1(daF{D1W;sV zjhT*`CXGsICG+`~NJRh(3)c2n%oq`ZE;3V1u?j++_wkO1qk+Ajl|qLQnLXj~;8-b3!{O|>5b1U))gb_% z0*}`EzBgVrfN5qw0(2Qb&&-T!(zHxprP;0P+5YKi(FD+SfUbnY&p)i_GrIaC`fmWf Y0W;1lZcDcIDF6Tf07*qoM6N<$f-Xi>#Q*>R literal 0 HcmV?d00001 diff --git a/cinelerra-5.1/plugins/theme_blond/data/proxy_chkdhi.png b/cinelerra-5.1/plugins/theme_blond/data/proxy_chkdhi.png new file mode 100644 index 0000000000000000000000000000000000000000..cecf4168a472a32ca262e30e6718f733b5b21257 GIT binary patch literal 787 zcmV+u1MK{XP)WFU8GbZ8()Nlj2>E@cM*00MVOL_t(Y$L&_lOH@%5 z|DAX5yylIxcnK8=LB&846!ZtQs6{00k|4-U(3j2=3=%5MG%B!-_(o|Fw2LISNd|oo zty^VZqeccbfjU}^^BnKJr-d^heT;9$q86Ur{W|COJLhnImr$W4l&ZIcxC;Pm%n@IR zJC*pc@Q-a3fc)Kor}YIQTF;qGn_pf1wG!vv)YMwIZYP*Cz7Ur~XTY1At0AKEAZjMp zeVx$yaM{6?It15!MMNziI@grTZ4M29Y&*`t?BaqpS(Y{68FRle2(~R3_;e6#X*Onv zgcu~E8UP?*)`~>pp#k(t`9x1n#+kX3nX`*HXuq`W7oOJbUMgk(#5k3*J*_WD+a3YY z0RUj;ESS5#O;5*tDIfll>~f4wWV0LBI8GM<$3P?sj^6-yKtx_)-ABMa5N*fehGyUv z2f@W;EcU6Ce+paE=6rq!OW93Cb*1hx^AIW3+H2b*Vf<3L&DE&XUSV0+iD>r^fuCz* z&h|_B=&#NJ3*bu5R-6HEe!dowNH-B3MClsb(@M4W+4jpn0-!OQ-5?z25&_4HO$g?< z3=EfQLI5{aF4xgtRrR@|5;UaKv4qxb(s4$K=oE+qm;+->$CrtToovk0C9I$E*w`*( zOgl5@KqNqPQaaA4r*(TnIvp!31Kz^I9td%}I7kXChjl*R)E|wGm6BsG2)2@KCyTS7 z@c5%K=4evN$Dy={XE)7O>#5j&?agGu_5EPbGmY-UJAiF1B#Zfaf$kjuc}T$Gwv zlA5AWo>`Ki;O^-gkfN8$&cMKE>*?Yc;&J@#HD7I)L=pB6@j|VU)!d5QHS9;j4Ib{6 zICLmzqLN+Xrq4q1N!KE{vJ=nbEW2Uz>ZRG@o#kmkvx1kuE1q9{?&tjN_0!)>Iv##u z>l(jZe>Rpd{9#Lw{e8mpp?$k;&Jt6Zqv;YG#Mh)q97?rm|7~>aa!3MO{=-U^^c@FF zm>;MY_I{qw@gQ3*SM=A$)}Sews#7*EcVn$`x_#>6Z=r357tYM#dB}40#7A4cMV}Sl zEh-jWE|K^2z`4g-TtWWp4{gt#tSXYtqSv;2+vfw}$96AE6%*&(@<6C~Esssd;v)if zCI&6X51MWMvaq55h*aL9?dPP#gtC7KUfZUh`=PbtXq}0t%hwqNS^|MNznhMlFdP#K z*)yxL>vN!xsLvIyE3xbcgv*@yxhu|JI8=NmiG6)V&eyP#e;xnW8}gR~*B^TMmb)Dk N!k(^vF6*2UngF=_zx@CJ literal 0 HcmV?d00001 diff --git a/cinelerra-5.1/plugins/theme_blond/data/proxy_hi.png b/cinelerra-5.1/plugins/theme_blond/data/proxy_hi.png new file mode 100644 index 0000000000000000000000000000000000000000..8c00e10b63d133d1696ecb537d7bab08e69d436f GIT binary patch literal 814 zcmV+}1JV46P)WFU8GbZ8()Nlj2>E@cM*00NRpL_t(Y$L&^2NR&|& z{?5JQ=r~4AiA6$WA!LbR^H>JePNGc`v~Uyjnq~weg;KM$jFdq9M`;n&GD+HH*`h_X zYG$fU56z|*ltndan&bHY_q3RiL~{CPENbD|UGBNx_npVR=MpkBpYE&_Qd|cBR%)*% z!`Cvw5%|ZpD8Mq`hTm}46LA4YMT55D!M9An{a-vw;Na6>j%qU0Vmbr<@18;;oB&ZZ zIrzEHaP3K(TzBqux4G71NOqQ=PEr6^>F$1HC1y&0|J$~i7?TwYM{~ht+n5(E- zx%)_pULqLvf%?ITDw9zi}?X>`o5y1`sV2&}P6_JtiT(or8>}!a~=nbrM z)PlI4h-?XWOb~Ek{Oefz<@|y1v;@r9feGiTY#TKbun$Bs2|NJs9U}54*Ifkc0AWK? zsKLM$ju|HdxsN`i!Y8vet&Y1kv4z@*P?5@y8GWR4U8gnl#0)N_+gx7Vyqi@EjR=IDNhNqR2vcPMCuycG<2%#vId|25dq!__eyEwQv~dv zX+kg$GSHu@2?4sKPok;Y9{iY5395$6a(#xo!D7P@5gh`N1anL&ZW??0xr`Ox`x&*m z&o85!l|mykPl8B-aL{7Ikl%1MRt=ZsrX|2X?b^Dmz&a=dT0qE41jYS&+$asmQ1jKb zuczjo(Ta!S0U11lIG2KPE1BOs64dM{$bR9|J=;vr0@C>vq;Mpn!+S6v)nus0Oii_% za0EbwPj^<5ppL|A$jfzoI$}Blowo2hX0$T178_9|ohHd=Tfh?TMO2i4(V-aUF6KOb slh!oUWbo`lM{RP7)+~NV{%Zk005qBi^N*#tZvX%Q07*qoM6N<$g285I8~^|S literal 0 HcmV?d00001 diff --git a/cinelerra-5.1/plugins/theme_blond/data/proxy_up.png b/cinelerra-5.1/plugins/theme_blond/data/proxy_up.png new file mode 100644 index 0000000000000000000000000000000000000000..042fdde97d8e5f12a42518458ec4d37c56d3b4ba GIT binary patch literal 589 zcmV-T0WFU8GbZ8()Nlj2>E@cM*00FT{L_t(Y$L&_pO58vc zokTVTt9`Xq+ET@b>OTne7b>>@(%q%~ffhxuv|mu@n^pP~`>c|eeNYI?Wm-dDx()jh{U0wWUu@PU-AIF4tl zg2!<@OUh>ejZzDfBv~M#oueah3ShIW2u0*AiIWT?Nz?Sj*cAwZU|A`3rj$~i=gs@R z_k+Z5W6aV`$s1!{kvN!|@_%}sw~!5=)oQinQdQ`5I*&>DNaAAnrzBDUjW7&@Vg$%FrQ4~!BsFOG^v|+Q|Za*5)hV?=lo&#t^Q8ZnOd@vZS4P7h;cEyNBIiWFT zk;Fk^?Wu^o89RYAO`jL6_+14n-pE;TYK(bVstVa*wB76Vo>aY%WQWlg0L@AG!NZN{ b|485uaJh>^#RDoR00000NkvXXu0mjfgP8a6 literal 0 HcmV?d00001 diff --git a/cinelerra-5.1/plugins/theme_blond/data/proxy_uphi.png b/cinelerra-5.1/plugins/theme_blond/data/proxy_uphi.png new file mode 100644 index 0000000000000000000000000000000000000000..5022c2574aa6a20ec157bfc8896536c8af2e4746 GIT binary patch literal 537 zcmV+!0_OdRP)WFU8GbZ8()Nlj2>E@cM*00DhTL_t(Y$L-eNN)=HQ z2JoLsC(!IxOEN0DDBmH-S4gsV$s_dwMiLbD1VMMD^b%fYc+-V~L<*wkPsf=xT{s7( zp+j>fEeIFP#hyL;Ti;&$Ti2haDItP8%!WU!Lb z9BN^knV^-C1v@DZhZSMMgJ3(yXm^;cT!99+aR4J+9p!ECvCFOBk?(RNSRdov2s8QX zg9|5^)#ED@!IR*qztfYV9!>to4%&dV;kcb7$5z3G>0mFA{Gg%>NA^$ZF30S$yYC@V>$keCToa z)DpLt3SO2(__=}zU$vO3op_h=l%?RX)P~DnxHzBWFU8GbZ8()Nlj2>E@cM*00MqVL_t(Y$L*F&NK{c6 z$G`8~JGZ%mE~dp831Q?wk{IT_vka<5W$k+4x=n2gS|pTB(G&#+QHa#8wcs{;KoQYy zW-=s+t*oPP^%6jIJ3BM8s#y#C+s{LgnDL{%2wZ#xLs0BlIv)={mF zpnqIe0e%Z0rQM~Jb)!&7)K)8AC?sl?vad;LB`X4$n@iL)(-~$y5shM4O6zbHNqQg} zRd1N-Br}~Z7F#!z4PY2DPDHarM9j2a2<}tLy63vBn@R?8)QTLZZJlXyiinOdvla-yCBg${J|5J2iD(xyZCl1(daF{D1W;sV zjhT*`CXGsICG+`~NJRh(3)c2n%oq`ZE;3V1u?j++_wkO1qk+Ajl|qLQnLXj~;8-b3!{O|>5b1U))gb_% z0*}`EzBgVrfN5qw0(2Qb&&-T!(zHxprP;0P+5YKi(FD+SfUbnY&p)i_GrIaC`fmWf Y0W;1lZcDcIDF6Tf07*qoM6N<$f-Xi>#Q*>R literal 0 HcmV?d00001 diff --git a/cinelerra-5.1/plugins/theme_blond_cv/data/proxy_chkdhi.png b/cinelerra-5.1/plugins/theme_blond_cv/data/proxy_chkdhi.png new file mode 100644 index 0000000000000000000000000000000000000000..cecf4168a472a32ca262e30e6718f733b5b21257 GIT binary patch literal 787 zcmV+u1MK{XP)WFU8GbZ8()Nlj2>E@cM*00MVOL_t(Y$L&_lOH@%5 z|DAX5yylIxcnK8=LB&846!ZtQs6{00k|4-U(3j2=3=%5MG%B!-_(o|Fw2LISNd|oo zty^VZqeccbfjU}^^BnKJr-d^heT;9$q86Ur{W|COJLhnImr$W4l&ZIcxC;Pm%n@IR zJC*pc@Q-a3fc)Kor}YIQTF;qGn_pf1wG!vv)YMwIZYP*Cz7Ur~XTY1At0AKEAZjMp zeVx$yaM{6?It15!MMNziI@grTZ4M29Y&*`t?BaqpS(Y{68FRle2(~R3_;e6#X*Onv zgcu~E8UP?*)`~>pp#k(t`9x1n#+kX3nX`*HXuq`W7oOJbUMgk(#5k3*J*_WD+a3YY z0RUj;ESS5#O;5*tDIfll>~f4wWV0LBI8GM<$3P?sj^6-yKtx_)-ABMa5N*fehGyUv z2f@W;EcU6Ce+paE=6rq!OW93Cb*1hx^AIW3+H2b*Vf<3L&DE&XUSV0+iD>r^fuCz* z&h|_B=&#NJ3*bu5R-6HEe!dowNH-B3MClsb(@M4W+4jpn0-!OQ-5?z25&_4HO$g?< z3=EfQLI5{aF4xgtRrR@|5;UaKv4qxb(s4$K=oE+qm;+->$CrtToovk0C9I$E*w`*( zOgl5@KqNqPQaaA4r*(TnIvp!31Kz^I9td%}I7kXChjl*R)E|wGm6BsG2)2@KCyTS7 z@c5%K=4evN$Dy={XE)7O>#5j&?agGu_5EPbGmY-UJAiF1B#Zfaf$kjuc}T$Gwv zlA5AWo>`Ki;O^-gkfN8$&cMKE>*?Yc;&J@#HD7I)L=pB6@j|VU)!d5QHS9;j4Ib{6 zICLmzqLN+Xrq4q1N!KE{vJ=nbEW2Uz>ZRG@o#kmkvx1kuE1q9{?&tjN_0!)>Iv##u z>l(jZe>Rpd{9#Lw{e8mpp?$k;&Jt6Zqv;YG#Mh)q97?rm|7~>aa!3MO{=-U^^c@FF zm>;MY_I{qw@gQ3*SM=A$)}Sews#7*EcVn$`x_#>6Z=r357tYM#dB}40#7A4cMV}Sl zEh-jWE|K^2z`4g-TtWWp4{gt#tSXYtqSv;2+vfw}$96AE6%*&(@<6C~Esssd;v)if zCI&6X51MWMvaq55h*aL9?dPP#gtC7KUfZUh`=PbtXq}0t%hwqNS^|MNznhMlFdP#K z*)yxL>vN!xsLvIyE3xbcgv*@yxhu|JI8=NmiG6)V&eyP#e;xnW8}gR~*B^TMmb)Dk N!k(^vF6*2UngF=_zx@CJ literal 0 HcmV?d00001 diff --git a/cinelerra-5.1/plugins/theme_blond_cv/data/proxy_hi.png b/cinelerra-5.1/plugins/theme_blond_cv/data/proxy_hi.png new file mode 100644 index 0000000000000000000000000000000000000000..8c00e10b63d133d1696ecb537d7bab08e69d436f GIT binary patch literal 814 zcmV+}1JV46P)WFU8GbZ8()Nlj2>E@cM*00NRpL_t(Y$L&^2NR&|& z{?5JQ=r~4AiA6$WA!LbR^H>JePNGc`v~Uyjnq~weg;KM$jFdq9M`;n&GD+HH*`h_X zYG$fU56z|*ltndan&bHY_q3RiL~{CPENbD|UGBNx_npVR=MpkBpYE&_Qd|cBR%)*% z!`Cvw5%|ZpD8Mq`hTm}46LA4YMT55D!M9An{a-vw;Na6>j%qU0Vmbr<@18;;oB&ZZ zIrzEHaP3K(TzBqux4G71NOqQ=PEr6^>F$1HC1y&0|J$~i7?TwYM{~ht+n5(E- zx%)_pULqLvf%?ITDw9zi}?X>`o5y1`sV2&}P6_JtiT(or8>}!a~=nbrM z)PlI4h-?XWOb~Ek{Oefz<@|y1v;@r9feGiTY#TKbun$Bs2|NJs9U}54*Ifkc0AWK? zsKLM$ju|HdxsN`i!Y8vet&Y1kv4z@*P?5@y8GWR4U8gnl#0)N_+gx7Vyqi@EjR=IDNhNqR2vcPMCuycG<2%#vId|25dq!__eyEwQv~dv zX+kg$GSHu@2?4sKPok;Y9{iY5395$6a(#xo!D7P@5gh`N1anL&ZW??0xr`Ox`x&*m z&o85!l|mykPl8B-aL{7Ikl%1MRt=ZsrX|2X?b^Dmz&a=dT0qE41jYS&+$asmQ1jKb zuczjo(Ta!S0U11lIG2KPE1BOs64dM{$bR9|J=;vr0@C>vq;Mpn!+S6v)nus0Oii_% za0EbwPj^<5ppL|A$jfzoI$}Blowo2hX0$T178_9|ohHd=Tfh?TMO2i4(V-aUF6KOb slh!oUWbo`lM{RP7)+~NV{%Zk005qBi^N*#tZvX%Q07*qoM6N<$g285I8~^|S literal 0 HcmV?d00001 diff --git a/cinelerra-5.1/plugins/theme_blond_cv/data/proxy_up.png b/cinelerra-5.1/plugins/theme_blond_cv/data/proxy_up.png new file mode 100644 index 0000000000000000000000000000000000000000..042fdde97d8e5f12a42518458ec4d37c56d3b4ba GIT binary patch literal 589 zcmV-T0WFU8GbZ8()Nlj2>E@cM*00FT{L_t(Y$L&_pO58vc zokTVTt9`Xq+ET@b>OTne7b>>@(%q%~ffhxuv|mu@n^pP~`>c|eeNYI?Wm-dDx()jh{U0wWUu@PU-AIF4tl zg2!<@OUh>ejZzDfBv~M#oueah3ShIW2u0*AiIWT?Nz?Sj*cAwZU|A`3rj$~i=gs@R z_k+Z5W6aV`$s1!{kvN!|@_%}sw~!5=)oQinQdQ`5I*&>DNaAAnrzBDUjW7&@Vg$%FrQ4~!BsFOG^v|+Q|Za*5)hV?=lo&#t^Q8ZnOd@vZS4P7h;cEyNBIiWFT zk;Fk^?Wu^o89RYAO`jL6_+14n-pE;TYK(bVstVa*wB76Vo>aY%WQWlg0L@AG!NZN{ b|485uaJh>^#RDoR00000NkvXXu0mjfgP8a6 literal 0 HcmV?d00001 diff --git a/cinelerra-5.1/plugins/theme_blond_cv/data/proxy_uphi.png b/cinelerra-5.1/plugins/theme_blond_cv/data/proxy_uphi.png new file mode 100644 index 0000000000000000000000000000000000000000..5022c2574aa6a20ec157bfc8896536c8af2e4746 GIT binary patch literal 537 zcmV+!0_OdRP)WFU8GbZ8()Nlj2>E@cM*00DhTL_t(Y$L-eNN)=HQ z2JoLsC(!IxOEN0DDBmH-S4gsV$s_dwMiLbD1VMMD^b%fYc+-V~L<*wkPsf=xT{s7( zp+j>fEeIFP#hyL;Ti;&$Ti2haDItP8%!WU!Lb z9BN^knV^-C1v@DZhZSMMgJ3(yXm^;cT!99+aR4J+9p!ECvCFOBk?(RNSRdov2s8QX zg9|5^)#ED@!IR*qztfYV9!>to4%&dV;kcb7$5z3G>0mFA{Gg%>NA^$ZF30S$yYC@V>$keCToa z)DpLt3SO2(__=}zU$vO3op_h=l%?RX)P~DnxHzBWFU8GbZ8()Nlj2>E@cM*00MqVL_t(Y$L*F&NK{c6 z$G`8~JGZ%mE~dp831Q?wk{IT_vka<5W$k+4x=n2gS|pTB(G&#+QHa#8wcs{;KoQYy zW-=s+t*oPP^%6jIJ3BM8s#y#C+s{LgnDL{%2wZ#xLs0BlIv)={mF zpnqIe0e%Z0rQM~Jb)!&7)K)8AC?sl?vad;LB`X4$n@iL)(-~$y5shM4O6zbHNqQg} zRd1N-Br}~Z7F#!z4PY2DPDHarM9j2a2<}tLy63vBn@R?8)QTLZZJlXyiinOdvla-yCBg${J|5J2iD(xyZCl1(daF{D1W;sV zjhT*`CXGsICG+`~NJRh(3)c2n%oq`ZE;3V1u?j++_wkO1qk+Ajl|qLQnLXj~;8-b3!{O|>5b1U))gb_% z0*}`EzBgVrfN5qw0(2Qb&&-T!(zHxprP;0P+5YKi(FD+SfUbnY&p)i_GrIaC`fmWf Y0W;1lZcDcIDF6Tf07*qoM6N<$f-Xi>#Q*>R literal 0 HcmV?d00001 diff --git a/cinelerra-5.1/plugins/theme_blue/data/proxy_chkdhi.png b/cinelerra-5.1/plugins/theme_blue/data/proxy_chkdhi.png new file mode 100644 index 0000000000000000000000000000000000000000..cecf4168a472a32ca262e30e6718f733b5b21257 GIT binary patch literal 787 zcmV+u1MK{XP)WFU8GbZ8()Nlj2>E@cM*00MVOL_t(Y$L&_lOH@%5 z|DAX5yylIxcnK8=LB&846!ZtQs6{00k|4-U(3j2=3=%5MG%B!-_(o|Fw2LISNd|oo zty^VZqeccbfjU}^^BnKJr-d^heT;9$q86Ur{W|COJLhnImr$W4l&ZIcxC;Pm%n@IR zJC*pc@Q-a3fc)Kor}YIQTF;qGn_pf1wG!vv)YMwIZYP*Cz7Ur~XTY1At0AKEAZjMp zeVx$yaM{6?It15!MMNziI@grTZ4M29Y&*`t?BaqpS(Y{68FRle2(~R3_;e6#X*Onv zgcu~E8UP?*)`~>pp#k(t`9x1n#+kX3nX`*HXuq`W7oOJbUMgk(#5k3*J*_WD+a3YY z0RUj;ESS5#O;5*tDIfll>~f4wWV0LBI8GM<$3P?sj^6-yKtx_)-ABMa5N*fehGyUv z2f@W;EcU6Ce+paE=6rq!OW93Cb*1hx^AIW3+H2b*Vf<3L&DE&XUSV0+iD>r^fuCz* z&h|_B=&#NJ3*bu5R-6HEe!dowNH-B3MClsb(@M4W+4jpn0-!OQ-5?z25&_4HO$g?< z3=EfQLI5{aF4xgtRrR@|5;UaKv4qxb(s4$K=oE+qm;+->$CrtToovk0C9I$E*w`*( zOgl5@KqNqPQaaA4r*(TnIvp!31Kz^I9td%}I7kXChjl*R)E|wGm6BsG2)2@KCyTS7 z@c5%K=4evN$Dy={XE)7O>#5j&?agGu_5EPbGmY-UJAiF1B#Zfaf$kjuc}T$Gwv zlA5AWo>`Ki;O^-gkfN8$&cMKE>*?Yc;&J@#HD7I)L=pB6@j|VU)!d5QHS9;j4Ib{6 zICLmzqLN+Xrq4q1N!KE{vJ=nbEW2Uz>ZRG@o#kmkvx1kuE1q9{?&tjN_0!)>Iv##u z>l(jZe>Rpd{9#Lw{e8mpp?$k;&Jt6Zqv;YG#Mh)q97?rm|7~>aa!3MO{=-U^^c@FF zm>;MY_I{qw@gQ3*SM=A$)}Sews#7*EcVn$`x_#>6Z=r357tYM#dB}40#7A4cMV}Sl zEh-jWE|K^2z`4g-TtWWp4{gt#tSXYtqSv;2+vfw}$96AE6%*&(@<6C~Esssd;v)if zCI&6X51MWMvaq55h*aL9?dPP#gtC7KUfZUh`=PbtXq}0t%hwqNS^|MNznhMlFdP#K z*)yxL>vN!xsLvIyE3xbcgv*@yxhu|JI8=NmiG6)V&eyP#e;xnW8}gR~*B^TMmb)Dk N!k(^vF6*2UngF=_zx@CJ literal 0 HcmV?d00001 diff --git a/cinelerra-5.1/plugins/theme_blue/data/proxy_hi.png b/cinelerra-5.1/plugins/theme_blue/data/proxy_hi.png new file mode 100644 index 0000000000000000000000000000000000000000..8c00e10b63d133d1696ecb537d7bab08e69d436f GIT binary patch literal 814 zcmV+}1JV46P)WFU8GbZ8()Nlj2>E@cM*00NRpL_t(Y$L&^2NR&|& z{?5JQ=r~4AiA6$WA!LbR^H>JePNGc`v~Uyjnq~weg;KM$jFdq9M`;n&GD+HH*`h_X zYG$fU56z|*ltndan&bHY_q3RiL~{CPENbD|UGBNx_npVR=MpkBpYE&_Qd|cBR%)*% z!`Cvw5%|ZpD8Mq`hTm}46LA4YMT55D!M9An{a-vw;Na6>j%qU0Vmbr<@18;;oB&ZZ zIrzEHaP3K(TzBqux4G71NOqQ=PEr6^>F$1HC1y&0|J$~i7?TwYM{~ht+n5(E- zx%)_pULqLvf%?ITDw9zi}?X>`o5y1`sV2&}P6_JtiT(or8>}!a~=nbrM z)PlI4h-?XWOb~Ek{Oefz<@|y1v;@r9feGiTY#TKbun$Bs2|NJs9U}54*Ifkc0AWK? zsKLM$ju|HdxsN`i!Y8vet&Y1kv4z@*P?5@y8GWR4U8gnl#0)N_+gx7Vyqi@EjR=IDNhNqR2vcPMCuycG<2%#vId|25dq!__eyEwQv~dv zX+kg$GSHu@2?4sKPok;Y9{iY5395$6a(#xo!D7P@5gh`N1anL&ZW??0xr`Ox`x&*m z&o85!l|mykPl8B-aL{7Ikl%1MRt=ZsrX|2X?b^Dmz&a=dT0qE41jYS&+$asmQ1jKb zuczjo(Ta!S0U11lIG2KPE1BOs64dM{$bR9|J=;vr0@C>vq;Mpn!+S6v)nus0Oii_% za0EbwPj^<5ppL|A$jfzoI$}Blowo2hX0$T178_9|ohHd=Tfh?TMO2i4(V-aUF6KOb slh!oUWbo`lM{RP7)+~NV{%Zk005qBi^N*#tZvX%Q07*qoM6N<$g285I8~^|S literal 0 HcmV?d00001 diff --git a/cinelerra-5.1/plugins/theme_blue/data/proxy_up.png b/cinelerra-5.1/plugins/theme_blue/data/proxy_up.png new file mode 100644 index 0000000000000000000000000000000000000000..042fdde97d8e5f12a42518458ec4d37c56d3b4ba GIT binary patch literal 589 zcmV-T0WFU8GbZ8()Nlj2>E@cM*00FT{L_t(Y$L&_pO58vc zokTVTt9`Xq+ET@b>OTne7b>>@(%q%~ffhxuv|mu@n^pP~`>c|eeNYI?Wm-dDx()jh{U0wWUu@PU-AIF4tl zg2!<@OUh>ejZzDfBv~M#oueah3ShIW2u0*AiIWT?Nz?Sj*cAwZU|A`3rj$~i=gs@R z_k+Z5W6aV`$s1!{kvN!|@_%}sw~!5=)oQinQdQ`5I*&>DNaAAnrzBDUjW7&@Vg$%FrQ4~!BsFOG^v|+Q|Za*5)hV?=lo&#t^Q8ZnOd@vZS4P7h;cEyNBIiWFT zk;Fk^?Wu^o89RYAO`jL6_+14n-pE;TYK(bVstVa*wB76Vo>aY%WQWlg0L@AG!NZN{ b|485uaJh>^#RDoR00000NkvXXu0mjfgP8a6 literal 0 HcmV?d00001 diff --git a/cinelerra-5.1/plugins/theme_blue/data/proxy_uphi.png b/cinelerra-5.1/plugins/theme_blue/data/proxy_uphi.png new file mode 100644 index 0000000000000000000000000000000000000000..5022c2574aa6a20ec157bfc8896536c8af2e4746 GIT binary patch literal 537 zcmV+!0_OdRP)WFU8GbZ8()Nlj2>E@cM*00DhTL_t(Y$L-eNN)=HQ z2JoLsC(!IxOEN0DDBmH-S4gsV$s_dwMiLbD1VMMD^b%fYc+-V~L<*wkPsf=xT{s7( zp+j>fEeIFP#hyL;Ti;&$Ti2haDItP8%!WU!Lb z9BN^knV^-C1v@DZhZSMMgJ3(yXm^;cT!99+aR4J+9p!ECvCFOBk?(RNSRdov2s8QX zg9|5^)#ED@!IR*qztfYV9!>to4%&dV;kcb7$5z3G>0mFA{Gg%>NA^$ZF30S$yYC@V>$keCToa z)DpLt3SO2(__=}zU$vO3op_h=l%?RX)P~DnxHzBWFU8GbZ8()Nlj2>E@cM*00MqVL_t(Y$L*F&NK{c6 z$G`8~JGZ%mE~dp831Q?wk{IT_vka<5W$k+4x=n2gS|pTB(G&#+QHa#8wcs{;KoQYy zW-=s+t*oPP^%6jIJ3BM8s#y#C+s{LgnDL{%2wZ#xLs0BlIv)={mF zpnqIe0e%Z0rQM~Jb)!&7)K)8AC?sl?vad;LB`X4$n@iL)(-~$y5shM4O6zbHNqQg} zRd1N-Br}~Z7F#!z4PY2DPDHarM9j2a2<}tLy63vBn@R?8)QTLZZJlXyiinOdvla-yCBg${J|5J2iD(xyZCl1(daF{D1W;sV zjhT*`CXGsICG+`~NJRh(3)c2n%oq`ZE;3V1u?j++_wkO1qk+Ajl|qLQnLXj~;8-b3!{O|>5b1U))gb_% z0*}`EzBgVrfN5qw0(2Qb&&-T!(zHxprP;0P+5YKi(FD+SfUbnY&p)i_GrIaC`fmWf Y0W;1lZcDcIDF6Tf07*qoM6N<$f-Xi>#Q*>R literal 0 HcmV?d00001 diff --git a/cinelerra-5.1/plugins/theme_blue_dot/data/proxy_chkdhi.png b/cinelerra-5.1/plugins/theme_blue_dot/data/proxy_chkdhi.png new file mode 100644 index 0000000000000000000000000000000000000000..cecf4168a472a32ca262e30e6718f733b5b21257 GIT binary patch literal 787 zcmV+u1MK{XP)WFU8GbZ8()Nlj2>E@cM*00MVOL_t(Y$L&_lOH@%5 z|DAX5yylIxcnK8=LB&846!ZtQs6{00k|4-U(3j2=3=%5MG%B!-_(o|Fw2LISNd|oo zty^VZqeccbfjU}^^BnKJr-d^heT;9$q86Ur{W|COJLhnImr$W4l&ZIcxC;Pm%n@IR zJC*pc@Q-a3fc)Kor}YIQTF;qGn_pf1wG!vv)YMwIZYP*Cz7Ur~XTY1At0AKEAZjMp zeVx$yaM{6?It15!MMNziI@grTZ4M29Y&*`t?BaqpS(Y{68FRle2(~R3_;e6#X*Onv zgcu~E8UP?*)`~>pp#k(t`9x1n#+kX3nX`*HXuq`W7oOJbUMgk(#5k3*J*_WD+a3YY z0RUj;ESS5#O;5*tDIfll>~f4wWV0LBI8GM<$3P?sj^6-yKtx_)-ABMa5N*fehGyUv z2f@W;EcU6Ce+paE=6rq!OW93Cb*1hx^AIW3+H2b*Vf<3L&DE&XUSV0+iD>r^fuCz* z&h|_B=&#NJ3*bu5R-6HEe!dowNH-B3MClsb(@M4W+4jpn0-!OQ-5?z25&_4HO$g?< z3=EfQLI5{aF4xgtRrR@|5;UaKv4qxb(s4$K=oE+qm;+->$CrtToovk0C9I$E*w`*( zOgl5@KqNqPQaaA4r*(TnIvp!31Kz^I9td%}I7kXChjl*R)E|wGm6BsG2)2@KCyTS7 z@c5%K=4evN$Dy={XE)7O>#5j&?agGu_5EPbGmY-UJAiF1B#Zfaf$kjuc}T$Gwv zlA5AWo>`Ki;O^-gkfN8$&cMKE>*?Yc;&J@#HD7I)L=pB6@j|VU)!d5QHS9;j4Ib{6 zICLmzqLN+Xrq4q1N!KE{vJ=nbEW2Uz>ZRG@o#kmkvx1kuE1q9{?&tjN_0!)>Iv##u z>l(jZe>Rpd{9#Lw{e8mpp?$k;&Jt6Zqv;YG#Mh)q97?rm|7~>aa!3MO{=-U^^c@FF zm>;MY_I{qw@gQ3*SM=A$)}Sews#7*EcVn$`x_#>6Z=r357tYM#dB}40#7A4cMV}Sl zEh-jWE|K^2z`4g-TtWWp4{gt#tSXYtqSv;2+vfw}$96AE6%*&(@<6C~Esssd;v)if zCI&6X51MWMvaq55h*aL9?dPP#gtC7KUfZUh`=PbtXq}0t%hwqNS^|MNznhMlFdP#K z*)yxL>vN!xsLvIyE3xbcgv*@yxhu|JI8=NmiG6)V&eyP#e;xnW8}gR~*B^TMmb)Dk N!k(^vF6*2UngF=_zx@CJ literal 0 HcmV?d00001 diff --git a/cinelerra-5.1/plugins/theme_blue_dot/data/proxy_hi.png b/cinelerra-5.1/plugins/theme_blue_dot/data/proxy_hi.png new file mode 100644 index 0000000000000000000000000000000000000000..8c00e10b63d133d1696ecb537d7bab08e69d436f GIT binary patch literal 814 zcmV+}1JV46P)WFU8GbZ8()Nlj2>E@cM*00NRpL_t(Y$L&^2NR&|& z{?5JQ=r~4AiA6$WA!LbR^H>JePNGc`v~Uyjnq~weg;KM$jFdq9M`;n&GD+HH*`h_X zYG$fU56z|*ltndan&bHY_q3RiL~{CPENbD|UGBNx_npVR=MpkBpYE&_Qd|cBR%)*% z!`Cvw5%|ZpD8Mq`hTm}46LA4YMT55D!M9An{a-vw;Na6>j%qU0Vmbr<@18;;oB&ZZ zIrzEHaP3K(TzBqux4G71NOqQ=PEr6^>F$1HC1y&0|J$~i7?TwYM{~ht+n5(E- zx%)_pULqLvf%?ITDw9zi}?X>`o5y1`sV2&}P6_JtiT(or8>}!a~=nbrM z)PlI4h-?XWOb~Ek{Oefz<@|y1v;@r9feGiTY#TKbun$Bs2|NJs9U}54*Ifkc0AWK? zsKLM$ju|HdxsN`i!Y8vet&Y1kv4z@*P?5@y8GWR4U8gnl#0)N_+gx7Vyqi@EjR=IDNhNqR2vcPMCuycG<2%#vId|25dq!__eyEwQv~dv zX+kg$GSHu@2?4sKPok;Y9{iY5395$6a(#xo!D7P@5gh`N1anL&ZW??0xr`Ox`x&*m z&o85!l|mykPl8B-aL{7Ikl%1MRt=ZsrX|2X?b^Dmz&a=dT0qE41jYS&+$asmQ1jKb zuczjo(Ta!S0U11lIG2KPE1BOs64dM{$bR9|J=;vr0@C>vq;Mpn!+S6v)nus0Oii_% za0EbwPj^<5ppL|A$jfzoI$}Blowo2hX0$T178_9|ohHd=Tfh?TMO2i4(V-aUF6KOb slh!oUWbo`lM{RP7)+~NV{%Zk005qBi^N*#tZvX%Q07*qoM6N<$g285I8~^|S literal 0 HcmV?d00001 diff --git a/cinelerra-5.1/plugins/theme_blue_dot/data/proxy_up.png b/cinelerra-5.1/plugins/theme_blue_dot/data/proxy_up.png new file mode 100644 index 0000000000000000000000000000000000000000..042fdde97d8e5f12a42518458ec4d37c56d3b4ba GIT binary patch literal 589 zcmV-T0WFU8GbZ8()Nlj2>E@cM*00FT{L_t(Y$L&_pO58vc zokTVTt9`Xq+ET@b>OTne7b>>@(%q%~ffhxuv|mu@n^pP~`>c|eeNYI?Wm-dDx()jh{U0wWUu@PU-AIF4tl zg2!<@OUh>ejZzDfBv~M#oueah3ShIW2u0*AiIWT?Nz?Sj*cAwZU|A`3rj$~i=gs@R z_k+Z5W6aV`$s1!{kvN!|@_%}sw~!5=)oQinQdQ`5I*&>DNaAAnrzBDUjW7&@Vg$%FrQ4~!BsFOG^v|+Q|Za*5)hV?=lo&#t^Q8ZnOd@vZS4P7h;cEyNBIiWFT zk;Fk^?Wu^o89RYAO`jL6_+14n-pE;TYK(bVstVa*wB76Vo>aY%WQWlg0L@AG!NZN{ b|485uaJh>^#RDoR00000NkvXXu0mjfgP8a6 literal 0 HcmV?d00001 diff --git a/cinelerra-5.1/plugins/theme_blue_dot/data/proxy_uphi.png b/cinelerra-5.1/plugins/theme_blue_dot/data/proxy_uphi.png new file mode 100644 index 0000000000000000000000000000000000000000..5022c2574aa6a20ec157bfc8896536c8af2e4746 GIT binary patch literal 537 zcmV+!0_OdRP)WFU8GbZ8()Nlj2>E@cM*00DhTL_t(Y$L-eNN)=HQ z2JoLsC(!IxOEN0DDBmH-S4gsV$s_dwMiLbD1VMMD^b%fYc+-V~L<*wkPsf=xT{s7( zp+j>fEeIFP#hyL;Ti;&$Ti2haDItP8%!WU!Lb z9BN^knV^-C1v@DZhZSMMgJ3(yXm^;cT!99+aR4J+9p!ECvCFOBk?(RNSRdov2s8QX zg9|5^)#ED@!IR*qztfYV9!>to4%&dV;kcb7$5z3G>0mFA{Gg%>NA^$ZF30S$yYC@V>$keCToa z)DpLt3SO2(__=}zU$vO3op_h=l%?RX)P~DnxHzBWFU8GbZ8()Nlj2>E@cM*00MqVL_t(Y$L*F&NK{c6 z$G`8~JGZ%mE~dp831Q?wk{IT_vka<5W$k+4x=n2gS|pTB(G&#+QHa#8wcs{;KoQYy zW-=s+t*oPP^%6jIJ3BM8s#y#C+s{LgnDL{%2wZ#xLs0BlIv)={mF zpnqIe0e%Z0rQM~Jb)!&7)K)8AC?sl?vad;LB`X4$n@iL)(-~$y5shM4O6zbHNqQg} zRd1N-Br}~Z7F#!z4PY2DPDHarM9j2a2<}tLy63vBn@R?8)QTLZZJlXyiinOdvla-yCBg${J|5J2iD(xyZCl1(daF{D1W;sV zjhT*`CXGsICG+`~NJRh(3)c2n%oq`ZE;3V1u?j++_wkO1qk+Ajl|qLQnLXj~;8-b3!{O|>5b1U))gb_% z0*}`EzBgVrfN5qw0(2Qb&&-T!(zHxprP;0P+5YKi(FD+SfUbnY&p)i_GrIaC`fmWf Y0W;1lZcDcIDF6Tf07*qoM6N<$f-Xi>#Q*>R literal 0 HcmV?d00001 diff --git a/cinelerra-5.1/plugins/theme_bright/data/proxy_chkdhi.png b/cinelerra-5.1/plugins/theme_bright/data/proxy_chkdhi.png new file mode 100644 index 0000000000000000000000000000000000000000..cecf4168a472a32ca262e30e6718f733b5b21257 GIT binary patch literal 787 zcmV+u1MK{XP)WFU8GbZ8()Nlj2>E@cM*00MVOL_t(Y$L&_lOH@%5 z|DAX5yylIxcnK8=LB&846!ZtQs6{00k|4-U(3j2=3=%5MG%B!-_(o|Fw2LISNd|oo zty^VZqeccbfjU}^^BnKJr-d^heT;9$q86Ur{W|COJLhnImr$W4l&ZIcxC;Pm%n@IR zJC*pc@Q-a3fc)Kor}YIQTF;qGn_pf1wG!vv)YMwIZYP*Cz7Ur~XTY1At0AKEAZjMp zeVx$yaM{6?It15!MMNziI@grTZ4M29Y&*`t?BaqpS(Y{68FRle2(~R3_;e6#X*Onv zgcu~E8UP?*)`~>pp#k(t`9x1n#+kX3nX`*HXuq`W7oOJbUMgk(#5k3*J*_WD+a3YY z0RUj;ESS5#O;5*tDIfll>~f4wWV0LBI8GM<$3P?sj^6-yKtx_)-ABMa5N*fehGyUv z2f@W;EcU6Ce+paE=6rq!OW93Cb*1hx^AIW3+H2b*Vf<3L&DE&XUSV0+iD>r^fuCz* z&h|_B=&#NJ3*bu5R-6HEe!dowNH-B3MClsb(@M4W+4jpn0-!OQ-5?z25&_4HO$g?< z3=EfQLI5{aF4xgtRrR@|5;UaKv4qxb(s4$K=oE+qm;+->$CrtToovk0C9I$E*w`*( zOgl5@KqNqPQaaA4r*(TnIvp!31Kz^I9td%}I7kXChjl*R)E|wGm6BsG2)2@KCyTS7 z@c5%K=4evN$Dy={XE)7O>#5j&?agGu_5EPbGmY-UJAiF1B#Zfaf$kjuc}T$Gwv zlA5AWo>`Ki;O^-gkfN8$&cMKE>*?Yc;&J@#HD7I)L=pB6@j|VU)!d5QHS9;j4Ib{6 zICLmzqLN+Xrq4q1N!KE{vJ=nbEW2Uz>ZRG@o#kmkvx1kuE1q9{?&tjN_0!)>Iv##u z>l(jZe>Rpd{9#Lw{e8mpp?$k;&Jt6Zqv;YG#Mh)q97?rm|7~>aa!3MO{=-U^^c@FF zm>;MY_I{qw@gQ3*SM=A$)}Sews#7*EcVn$`x_#>6Z=r357tYM#dB}40#7A4cMV}Sl zEh-jWE|K^2z`4g-TtWWp4{gt#tSXYtqSv;2+vfw}$96AE6%*&(@<6C~Esssd;v)if zCI&6X51MWMvaq55h*aL9?dPP#gtC7KUfZUh`=PbtXq}0t%hwqNS^|MNznhMlFdP#K z*)yxL>vN!xsLvIyE3xbcgv*@yxhu|JI8=NmiG6)V&eyP#e;xnW8}gR~*B^TMmb)Dk N!k(^vF6*2UngF=_zx@CJ literal 0 HcmV?d00001 diff --git a/cinelerra-5.1/plugins/theme_bright/data/proxy_hi.png b/cinelerra-5.1/plugins/theme_bright/data/proxy_hi.png new file mode 100644 index 0000000000000000000000000000000000000000..8c00e10b63d133d1696ecb537d7bab08e69d436f GIT binary patch literal 814 zcmV+}1JV46P)WFU8GbZ8()Nlj2>E@cM*00NRpL_t(Y$L&^2NR&|& z{?5JQ=r~4AiA6$WA!LbR^H>JePNGc`v~Uyjnq~weg;KM$jFdq9M`;n&GD+HH*`h_X zYG$fU56z|*ltndan&bHY_q3RiL~{CPENbD|UGBNx_npVR=MpkBpYE&_Qd|cBR%)*% z!`Cvw5%|ZpD8Mq`hTm}46LA4YMT55D!M9An{a-vw;Na6>j%qU0Vmbr<@18;;oB&ZZ zIrzEHaP3K(TzBqux4G71NOqQ=PEr6^>F$1HC1y&0|J$~i7?TwYM{~ht+n5(E- zx%)_pULqLvf%?ITDw9zi}?X>`o5y1`sV2&}P6_JtiT(or8>}!a~=nbrM z)PlI4h-?XWOb~Ek{Oefz<@|y1v;@r9feGiTY#TKbun$Bs2|NJs9U}54*Ifkc0AWK? zsKLM$ju|HdxsN`i!Y8vet&Y1kv4z@*P?5@y8GWR4U8gnl#0)N_+gx7Vyqi@EjR=IDNhNqR2vcPMCuycG<2%#vId|25dq!__eyEwQv~dv zX+kg$GSHu@2?4sKPok;Y9{iY5395$6a(#xo!D7P@5gh`N1anL&ZW??0xr`Ox`x&*m z&o85!l|mykPl8B-aL{7Ikl%1MRt=ZsrX|2X?b^Dmz&a=dT0qE41jYS&+$asmQ1jKb zuczjo(Ta!S0U11lIG2KPE1BOs64dM{$bR9|J=;vr0@C>vq;Mpn!+S6v)nus0Oii_% za0EbwPj^<5ppL|A$jfzoI$}Blowo2hX0$T178_9|ohHd=Tfh?TMO2i4(V-aUF6KOb slh!oUWbo`lM{RP7)+~NV{%Zk005qBi^N*#tZvX%Q07*qoM6N<$g285I8~^|S literal 0 HcmV?d00001 diff --git a/cinelerra-5.1/plugins/theme_bright/data/proxy_up.png b/cinelerra-5.1/plugins/theme_bright/data/proxy_up.png new file mode 100644 index 0000000000000000000000000000000000000000..042fdde97d8e5f12a42518458ec4d37c56d3b4ba GIT binary patch literal 589 zcmV-T0WFU8GbZ8()Nlj2>E@cM*00FT{L_t(Y$L&_pO58vc zokTVTt9`Xq+ET@b>OTne7b>>@(%q%~ffhxuv|mu@n^pP~`>c|eeNYI?Wm-dDx()jh{U0wWUu@PU-AIF4tl zg2!<@OUh>ejZzDfBv~M#oueah3ShIW2u0*AiIWT?Nz?Sj*cAwZU|A`3rj$~i=gs@R z_k+Z5W6aV`$s1!{kvN!|@_%}sw~!5=)oQinQdQ`5I*&>DNaAAnrzBDUjW7&@Vg$%FrQ4~!BsFOG^v|+Q|Za*5)hV?=lo&#t^Q8ZnOd@vZS4P7h;cEyNBIiWFT zk;Fk^?Wu^o89RYAO`jL6_+14n-pE;TYK(bVstVa*wB76Vo>aY%WQWlg0L@AG!NZN{ b|485uaJh>^#RDoR00000NkvXXu0mjfgP8a6 literal 0 HcmV?d00001 diff --git a/cinelerra-5.1/plugins/theme_bright/data/proxy_uphi.png b/cinelerra-5.1/plugins/theme_bright/data/proxy_uphi.png new file mode 100644 index 0000000000000000000000000000000000000000..5022c2574aa6a20ec157bfc8896536c8af2e4746 GIT binary patch literal 537 zcmV+!0_OdRP)WFU8GbZ8()Nlj2>E@cM*00DhTL_t(Y$L-eNN)=HQ z2JoLsC(!IxOEN0DDBmH-S4gsV$s_dwMiLbD1VMMD^b%fYc+-V~L<*wkPsf=xT{s7( zp+j>fEeIFP#hyL;Ti;&$Ti2haDItP8%!WU!Lb z9BN^knV^-C1v@DZhZSMMgJ3(yXm^;cT!99+aR4J+9p!ECvCFOBk?(RNSRdov2s8QX zg9|5^)#ED@!IR*qztfYV9!>to4%&dV;kcb7$5z3G>0mFA{Gg%>NA^$ZF30S$yYC@V>$keCToa z)DpLt3SO2(__=}zU$vO3op_h=l%?RX)P~DnxHzBWFU8GbZ8()Nlj2>E@cM*00MqVL_t(Y$L*F&NK{c6 z$G`8~JGZ%mE~dp831Q?wk{IT_vka<5W$k+4x=n2gS|pTB(G&#+QHa#8wcs{;KoQYy zW-=s+t*oPP^%6jIJ3BM8s#y#C+s{LgnDL{%2wZ#xLs0BlIv)={mF zpnqIe0e%Z0rQM~Jb)!&7)K)8AC?sl?vad;LB`X4$n@iL)(-~$y5shM4O6zbHNqQg} zRd1N-Br}~Z7F#!z4PY2DPDHarM9j2a2<}tLy63vBn@R?8)QTLZZJlXyiinOdvla-yCBg${J|5J2iD(xyZCl1(daF{D1W;sV zjhT*`CXGsICG+`~NJRh(3)c2n%oq`ZE;3V1u?j++_wkO1qk+Ajl|qLQnLXj~;8-b3!{O|>5b1U))gb_% z0*}`EzBgVrfN5qw0(2Qb&&-T!(zHxprP;0P+5YKi(FD+SfUbnY&p)i_GrIaC`fmWf Y0W;1lZcDcIDF6Tf07*qoM6N<$f-Xi>#Q*>R literal 0 HcmV?d00001 diff --git a/cinelerra-5.1/plugins/theme_hulk/data/proxy_chkdhi.png b/cinelerra-5.1/plugins/theme_hulk/data/proxy_chkdhi.png new file mode 100644 index 0000000000000000000000000000000000000000..cecf4168a472a32ca262e30e6718f733b5b21257 GIT binary patch literal 787 zcmV+u1MK{XP)WFU8GbZ8()Nlj2>E@cM*00MVOL_t(Y$L&_lOH@%5 z|DAX5yylIxcnK8=LB&846!ZtQs6{00k|4-U(3j2=3=%5MG%B!-_(o|Fw2LISNd|oo zty^VZqeccbfjU}^^BnKJr-d^heT;9$q86Ur{W|COJLhnImr$W4l&ZIcxC;Pm%n@IR zJC*pc@Q-a3fc)Kor}YIQTF;qGn_pf1wG!vv)YMwIZYP*Cz7Ur~XTY1At0AKEAZjMp zeVx$yaM{6?It15!MMNziI@grTZ4M29Y&*`t?BaqpS(Y{68FRle2(~R3_;e6#X*Onv zgcu~E8UP?*)`~>pp#k(t`9x1n#+kX3nX`*HXuq`W7oOJbUMgk(#5k3*J*_WD+a3YY z0RUj;ESS5#O;5*tDIfll>~f4wWV0LBI8GM<$3P?sj^6-yKtx_)-ABMa5N*fehGyUv z2f@W;EcU6Ce+paE=6rq!OW93Cb*1hx^AIW3+H2b*Vf<3L&DE&XUSV0+iD>r^fuCz* z&h|_B=&#NJ3*bu5R-6HEe!dowNH-B3MClsb(@M4W+4jpn0-!OQ-5?z25&_4HO$g?< z3=EfQLI5{aF4xgtRrR@|5;UaKv4qxb(s4$K=oE+qm;+->$CrtToovk0C9I$E*w`*( zOgl5@KqNqPQaaA4r*(TnIvp!31Kz^I9td%}I7kXChjl*R)E|wGm6BsG2)2@KCyTS7 z@c5%K=4evN$Dy={XE)7O>#5j&?agGu_5EPbGmY-UJAiF1B#Zfaf$kjuc}T$Gwv zlA5AWo>`Ki;O^-gkfN8$&cMKE>*?Yc;&J@#HD7I)L=pB6@j|VU)!d5QHS9;j4Ib{6 zICLmzqLN+Xrq4q1N!KE{vJ=nbEW2Uz>ZRG@o#kmkvx1kuE1q9{?&tjN_0!)>Iv##u z>l(jZe>Rpd{9#Lw{e8mpp?$k;&Jt6Zqv;YG#Mh)q97?rm|7~>aa!3MO{=-U^^c@FF zm>;MY_I{qw@gQ3*SM=A$)}Sews#7*EcVn$`x_#>6Z=r357tYM#dB}40#7A4cMV}Sl zEh-jWE|K^2z`4g-TtWWp4{gt#tSXYtqSv;2+vfw}$96AE6%*&(@<6C~Esssd;v)if zCI&6X51MWMvaq55h*aL9?dPP#gtC7KUfZUh`=PbtXq}0t%hwqNS^|MNznhMlFdP#K z*)yxL>vN!xsLvIyE3xbcgv*@yxhu|JI8=NmiG6)V&eyP#e;xnW8}gR~*B^TMmb)Dk N!k(^vF6*2UngF=_zx@CJ literal 0 HcmV?d00001 diff --git a/cinelerra-5.1/plugins/theme_hulk/data/proxy_hi.png b/cinelerra-5.1/plugins/theme_hulk/data/proxy_hi.png new file mode 100644 index 0000000000000000000000000000000000000000..8c00e10b63d133d1696ecb537d7bab08e69d436f GIT binary patch literal 814 zcmV+}1JV46P)WFU8GbZ8()Nlj2>E@cM*00NRpL_t(Y$L&^2NR&|& z{?5JQ=r~4AiA6$WA!LbR^H>JePNGc`v~Uyjnq~weg;KM$jFdq9M`;n&GD+HH*`h_X zYG$fU56z|*ltndan&bHY_q3RiL~{CPENbD|UGBNx_npVR=MpkBpYE&_Qd|cBR%)*% z!`Cvw5%|ZpD8Mq`hTm}46LA4YMT55D!M9An{a-vw;Na6>j%qU0Vmbr<@18;;oB&ZZ zIrzEHaP3K(TzBqux4G71NOqQ=PEr6^>F$1HC1y&0|J$~i7?TwYM{~ht+n5(E- zx%)_pULqLvf%?ITDw9zi}?X>`o5y1`sV2&}P6_JtiT(or8>}!a~=nbrM z)PlI4h-?XWOb~Ek{Oefz<@|y1v;@r9feGiTY#TKbun$Bs2|NJs9U}54*Ifkc0AWK? zsKLM$ju|HdxsN`i!Y8vet&Y1kv4z@*P?5@y8GWR4U8gnl#0)N_+gx7Vyqi@EjR=IDNhNqR2vcPMCuycG<2%#vId|25dq!__eyEwQv~dv zX+kg$GSHu@2?4sKPok;Y9{iY5395$6a(#xo!D7P@5gh`N1anL&ZW??0xr`Ox`x&*m z&o85!l|mykPl8B-aL{7Ikl%1MRt=ZsrX|2X?b^Dmz&a=dT0qE41jYS&+$asmQ1jKb zuczjo(Ta!S0U11lIG2KPE1BOs64dM{$bR9|J=;vr0@C>vq;Mpn!+S6v)nus0Oii_% za0EbwPj^<5ppL|A$jfzoI$}Blowo2hX0$T178_9|ohHd=Tfh?TMO2i4(V-aUF6KOb slh!oUWbo`lM{RP7)+~NV{%Zk005qBi^N*#tZvX%Q07*qoM6N<$g285I8~^|S literal 0 HcmV?d00001 diff --git a/cinelerra-5.1/plugins/theme_hulk/data/proxy_up.png b/cinelerra-5.1/plugins/theme_hulk/data/proxy_up.png new file mode 100644 index 0000000000000000000000000000000000000000..042fdde97d8e5f12a42518458ec4d37c56d3b4ba GIT binary patch literal 589 zcmV-T0WFU8GbZ8()Nlj2>E@cM*00FT{L_t(Y$L&_pO58vc zokTVTt9`Xq+ET@b>OTne7b>>@(%q%~ffhxuv|mu@n^pP~`>c|eeNYI?Wm-dDx()jh{U0wWUu@PU-AIF4tl zg2!<@OUh>ejZzDfBv~M#oueah3ShIW2u0*AiIWT?Nz?Sj*cAwZU|A`3rj$~i=gs@R z_k+Z5W6aV`$s1!{kvN!|@_%}sw~!5=)oQinQdQ`5I*&>DNaAAnrzBDUjW7&@Vg$%FrQ4~!BsFOG^v|+Q|Za*5)hV?=lo&#t^Q8ZnOd@vZS4P7h;cEyNBIiWFT zk;Fk^?Wu^o89RYAO`jL6_+14n-pE;TYK(bVstVa*wB76Vo>aY%WQWlg0L@AG!NZN{ b|485uaJh>^#RDoR00000NkvXXu0mjfgP8a6 literal 0 HcmV?d00001 diff --git a/cinelerra-5.1/plugins/theme_hulk/data/proxy_uphi.png b/cinelerra-5.1/plugins/theme_hulk/data/proxy_uphi.png new file mode 100644 index 0000000000000000000000000000000000000000..5022c2574aa6a20ec157bfc8896536c8af2e4746 GIT binary patch literal 537 zcmV+!0_OdRP)WFU8GbZ8()Nlj2>E@cM*00DhTL_t(Y$L-eNN)=HQ z2JoLsC(!IxOEN0DDBmH-S4gsV$s_dwMiLbD1VMMD^b%fYc+-V~L<*wkPsf=xT{s7( zp+j>fEeIFP#hyL;Ti;&$Ti2haDItP8%!WU!Lb z9BN^knV^-C1v@DZhZSMMgJ3(yXm^;cT!99+aR4J+9p!ECvCFOBk?(RNSRdov2s8QX zg9|5^)#ED@!IR*qztfYV9!>to4%&dV;kcb7$5z3G>0mFA{Gg%>NA^$ZF30S$yYC@V>$keCToa z)DpLt3SO2(__=}zU$vO3op_h=l%?RX)P~DnxHzBWFU8GbZ8()Nlj2>E@cM*00MqVL_t(Y$L*F&NK{c6 z$G`8~JGZ%mE~dp831Q?wk{IT_vka<5W$k+4x=n2gS|pTB(G&#+QHa#8wcs{;KoQYy zW-=s+t*oPP^%6jIJ3BM8s#y#C+s{LgnDL{%2wZ#xLs0BlIv)={mF zpnqIe0e%Z0rQM~Jb)!&7)K)8AC?sl?vad;LB`X4$n@iL)(-~$y5shM4O6zbHNqQg} zRd1N-Br}~Z7F#!z4PY2DPDHarM9j2a2<}tLy63vBn@R?8)QTLZZJlXyiinOdvla-yCBg${J|5J2iD(xyZCl1(daF{D1W;sV zjhT*`CXGsICG+`~NJRh(3)c2n%oq`ZE;3V1u?j++_wkO1qk+Ajl|qLQnLXj~;8-b3!{O|>5b1U))gb_% z0*}`EzBgVrfN5qw0(2Qb&&-T!(zHxprP;0P+5YKi(FD+SfUbnY&p)i_GrIaC`fmWf Y0W;1lZcDcIDF6Tf07*qoM6N<$f-Xi>#Q*>R literal 0 HcmV?d00001 diff --git a/cinelerra-5.1/plugins/theme_pinklady/data/proxy_chkdhi.png b/cinelerra-5.1/plugins/theme_pinklady/data/proxy_chkdhi.png new file mode 100644 index 0000000000000000000000000000000000000000..cecf4168a472a32ca262e30e6718f733b5b21257 GIT binary patch literal 787 zcmV+u1MK{XP)WFU8GbZ8()Nlj2>E@cM*00MVOL_t(Y$L&_lOH@%5 z|DAX5yylIxcnK8=LB&846!ZtQs6{00k|4-U(3j2=3=%5MG%B!-_(o|Fw2LISNd|oo zty^VZqeccbfjU}^^BnKJr-d^heT;9$q86Ur{W|COJLhnImr$W4l&ZIcxC;Pm%n@IR zJC*pc@Q-a3fc)Kor}YIQTF;qGn_pf1wG!vv)YMwIZYP*Cz7Ur~XTY1At0AKEAZjMp zeVx$yaM{6?It15!MMNziI@grTZ4M29Y&*`t?BaqpS(Y{68FRle2(~R3_;e6#X*Onv zgcu~E8UP?*)`~>pp#k(t`9x1n#+kX3nX`*HXuq`W7oOJbUMgk(#5k3*J*_WD+a3YY z0RUj;ESS5#O;5*tDIfll>~f4wWV0LBI8GM<$3P?sj^6-yKtx_)-ABMa5N*fehGyUv z2f@W;EcU6Ce+paE=6rq!OW93Cb*1hx^AIW3+H2b*Vf<3L&DE&XUSV0+iD>r^fuCz* z&h|_B=&#NJ3*bu5R-6HEe!dowNH-B3MClsb(@M4W+4jpn0-!OQ-5?z25&_4HO$g?< z3=EfQLI5{aF4xgtRrR@|5;UaKv4qxb(s4$K=oE+qm;+->$CrtToovk0C9I$E*w`*( zOgl5@KqNqPQaaA4r*(TnIvp!31Kz^I9td%}I7kXChjl*R)E|wGm6BsG2)2@KCyTS7 z@c5%K=4evN$Dy={XE)7O>#5j&?agGu_5EPbGmY-UJAiF1B#Zfaf$kjuc}T$Gwv zlA5AWo>`Ki;O^-gkfN8$&cMKE>*?Yc;&J@#HD7I)L=pB6@j|VU)!d5QHS9;j4Ib{6 zICLmzqLN+Xrq4q1N!KE{vJ=nbEW2Uz>ZRG@o#kmkvx1kuE1q9{?&tjN_0!)>Iv##u z>l(jZe>Rpd{9#Lw{e8mpp?$k;&Jt6Zqv;YG#Mh)q97?rm|7~>aa!3MO{=-U^^c@FF zm>;MY_I{qw@gQ3*SM=A$)}Sews#7*EcVn$`x_#>6Z=r357tYM#dB}40#7A4cMV}Sl zEh-jWE|K^2z`4g-TtWWp4{gt#tSXYtqSv;2+vfw}$96AE6%*&(@<6C~Esssd;v)if zCI&6X51MWMvaq55h*aL9?dPP#gtC7KUfZUh`=PbtXq}0t%hwqNS^|MNznhMlFdP#K z*)yxL>vN!xsLvIyE3xbcgv*@yxhu|JI8=NmiG6)V&eyP#e;xnW8}gR~*B^TMmb)Dk N!k(^vF6*2UngF=_zx@CJ literal 0 HcmV?d00001 diff --git a/cinelerra-5.1/plugins/theme_pinklady/data/proxy_hi.png b/cinelerra-5.1/plugins/theme_pinklady/data/proxy_hi.png new file mode 100644 index 0000000000000000000000000000000000000000..8c00e10b63d133d1696ecb537d7bab08e69d436f GIT binary patch literal 814 zcmV+}1JV46P)WFU8GbZ8()Nlj2>E@cM*00NRpL_t(Y$L&^2NR&|& z{?5JQ=r~4AiA6$WA!LbR^H>JePNGc`v~Uyjnq~weg;KM$jFdq9M`;n&GD+HH*`h_X zYG$fU56z|*ltndan&bHY_q3RiL~{CPENbD|UGBNx_npVR=MpkBpYE&_Qd|cBR%)*% z!`Cvw5%|ZpD8Mq`hTm}46LA4YMT55D!M9An{a-vw;Na6>j%qU0Vmbr<@18;;oB&ZZ zIrzEHaP3K(TzBqux4G71NOqQ=PEr6^>F$1HC1y&0|J$~i7?TwYM{~ht+n5(E- zx%)_pULqLvf%?ITDw9zi}?X>`o5y1`sV2&}P6_JtiT(or8>}!a~=nbrM z)PlI4h-?XWOb~Ek{Oefz<@|y1v;@r9feGiTY#TKbun$Bs2|NJs9U}54*Ifkc0AWK? zsKLM$ju|HdxsN`i!Y8vet&Y1kv4z@*P?5@y8GWR4U8gnl#0)N_+gx7Vyqi@EjR=IDNhNqR2vcPMCuycG<2%#vId|25dq!__eyEwQv~dv zX+kg$GSHu@2?4sKPok;Y9{iY5395$6a(#xo!D7P@5gh`N1anL&ZW??0xr`Ox`x&*m z&o85!l|mykPl8B-aL{7Ikl%1MRt=ZsrX|2X?b^Dmz&a=dT0qE41jYS&+$asmQ1jKb zuczjo(Ta!S0U11lIG2KPE1BOs64dM{$bR9|J=;vr0@C>vq;Mpn!+S6v)nus0Oii_% za0EbwPj^<5ppL|A$jfzoI$}Blowo2hX0$T178_9|ohHd=Tfh?TMO2i4(V-aUF6KOb slh!oUWbo`lM{RP7)+~NV{%Zk005qBi^N*#tZvX%Q07*qoM6N<$g285I8~^|S literal 0 HcmV?d00001 diff --git a/cinelerra-5.1/plugins/theme_pinklady/data/proxy_up.png b/cinelerra-5.1/plugins/theme_pinklady/data/proxy_up.png new file mode 100644 index 0000000000000000000000000000000000000000..042fdde97d8e5f12a42518458ec4d37c56d3b4ba GIT binary patch literal 589 zcmV-T0WFU8GbZ8()Nlj2>E@cM*00FT{L_t(Y$L&_pO58vc zokTVTt9`Xq+ET@b>OTne7b>>@(%q%~ffhxuv|mu@n^pP~`>c|eeNYI?Wm-dDx()jh{U0wWUu@PU-AIF4tl zg2!<@OUh>ejZzDfBv~M#oueah3ShIW2u0*AiIWT?Nz?Sj*cAwZU|A`3rj$~i=gs@R z_k+Z5W6aV`$s1!{kvN!|@_%}sw~!5=)oQinQdQ`5I*&>DNaAAnrzBDUjW7&@Vg$%FrQ4~!BsFOG^v|+Q|Za*5)hV?=lo&#t^Q8ZnOd@vZS4P7h;cEyNBIiWFT zk;Fk^?Wu^o89RYAO`jL6_+14n-pE;TYK(bVstVa*wB76Vo>aY%WQWlg0L@AG!NZN{ b|485uaJh>^#RDoR00000NkvXXu0mjfgP8a6 literal 0 HcmV?d00001 diff --git a/cinelerra-5.1/plugins/theme_pinklady/data/proxy_uphi.png b/cinelerra-5.1/plugins/theme_pinklady/data/proxy_uphi.png new file mode 100644 index 0000000000000000000000000000000000000000..5022c2574aa6a20ec157bfc8896536c8af2e4746 GIT binary patch literal 537 zcmV+!0_OdRP)WFU8GbZ8()Nlj2>E@cM*00DhTL_t(Y$L-eNN)=HQ z2JoLsC(!IxOEN0DDBmH-S4gsV$s_dwMiLbD1VMMD^b%fYc+-V~L<*wkPsf=xT{s7( zp+j>fEeIFP#hyL;Ti;&$Ti2haDItP8%!WU!Lb z9BN^knV^-C1v@DZhZSMMgJ3(yXm^;cT!99+aR4J+9p!ECvCFOBk?(RNSRdov2s8QX zg9|5^)#ED@!IR*qztfYV9!>to4%&dV;kcb7$5z3G>0mFA{Gg%>NA^$ZF30S$yYC@V>$keCToa z)DpLt3SO2(__=}zU$vO3op_h=l%?RX)P~DnxHzBWFU8GbZ8()Nlj2>E@cM*00MqVL_t(Y$L*F&NK{c6 z$G`8~JGZ%mE~dp831Q?wk{IT_vka<5W$k+4x=n2gS|pTB(G&#+QHa#8wcs{;KoQYy zW-=s+t*oPP^%6jIJ3BM8s#y#C+s{LgnDL{%2wZ#xLs0BlIv)={mF zpnqIe0e%Z0rQM~Jb)!&7)K)8AC?sl?vad;LB`X4$n@iL)(-~$y5shM4O6zbHNqQg} zRd1N-Br}~Z7F#!z4PY2DPDHarM9j2a2<}tLy63vBn@R?8)QTLZZJlXyiinOdvla-yCBg${J|5J2iD(xyZCl1(daF{D1W;sV zjhT*`CXGsICG+`~NJRh(3)c2n%oq`ZE;3V1u?j++_wkO1qk+Ajl|qLQnLXj~;8-b3!{O|>5b1U))gb_% z0*}`EzBgVrfN5qw0(2Qb&&-T!(zHxprP;0P+5YKi(FD+SfUbnY&p)i_GrIaC`fmWf Y0W;1lZcDcIDF6Tf07*qoM6N<$f-Xi>#Q*>R literal 0 HcmV?d00001 diff --git a/cinelerra-5.1/plugins/theme_suv/data/proxy_chkdhi.png b/cinelerra-5.1/plugins/theme_suv/data/proxy_chkdhi.png new file mode 100644 index 0000000000000000000000000000000000000000..cecf4168a472a32ca262e30e6718f733b5b21257 GIT binary patch literal 787 zcmV+u1MK{XP)WFU8GbZ8()Nlj2>E@cM*00MVOL_t(Y$L&_lOH@%5 z|DAX5yylIxcnK8=LB&846!ZtQs6{00k|4-U(3j2=3=%5MG%B!-_(o|Fw2LISNd|oo zty^VZqeccbfjU}^^BnKJr-d^heT;9$q86Ur{W|COJLhnImr$W4l&ZIcxC;Pm%n@IR zJC*pc@Q-a3fc)Kor}YIQTF;qGn_pf1wG!vv)YMwIZYP*Cz7Ur~XTY1At0AKEAZjMp zeVx$yaM{6?It15!MMNziI@grTZ4M29Y&*`t?BaqpS(Y{68FRle2(~R3_;e6#X*Onv zgcu~E8UP?*)`~>pp#k(t`9x1n#+kX3nX`*HXuq`W7oOJbUMgk(#5k3*J*_WD+a3YY z0RUj;ESS5#O;5*tDIfll>~f4wWV0LBI8GM<$3P?sj^6-yKtx_)-ABMa5N*fehGyUv z2f@W;EcU6Ce+paE=6rq!OW93Cb*1hx^AIW3+H2b*Vf<3L&DE&XUSV0+iD>r^fuCz* z&h|_B=&#NJ3*bu5R-6HEe!dowNH-B3MClsb(@M4W+4jpn0-!OQ-5?z25&_4HO$g?< z3=EfQLI5{aF4xgtRrR@|5;UaKv4qxb(s4$K=oE+qm;+->$CrtToovk0C9I$E*w`*( zOgl5@KqNqPQaaA4r*(TnIvp!31Kz^I9td%}I7kXChjl*R)E|wGm6BsG2)2@KCyTS7 z@c5%K=4evN$Dy={XE)7O>#5j&?agGu_5EPbGmY-UJAiF1B#Zfaf$kjuc}T$Gwv zlA5AWo>`Ki;O^-gkfN8$&cMKE>*?Yc;&J@#HD7I)L=pB6@j|VU)!d5QHS9;j4Ib{6 zICLmzqLN+Xrq4q1N!KE{vJ=nbEW2Uz>ZRG@o#kmkvx1kuE1q9{?&tjN_0!)>Iv##u z>l(jZe>Rpd{9#Lw{e8mpp?$k;&Jt6Zqv;YG#Mh)q97?rm|7~>aa!3MO{=-U^^c@FF zm>;MY_I{qw@gQ3*SM=A$)}Sews#7*EcVn$`x_#>6Z=r357tYM#dB}40#7A4cMV}Sl zEh-jWE|K^2z`4g-TtWWp4{gt#tSXYtqSv;2+vfw}$96AE6%*&(@<6C~Esssd;v)if zCI&6X51MWMvaq55h*aL9?dPP#gtC7KUfZUh`=PbtXq}0t%hwqNS^|MNznhMlFdP#K z*)yxL>vN!xsLvIyE3xbcgv*@yxhu|JI8=NmiG6)V&eyP#e;xnW8}gR~*B^TMmb)Dk N!k(^vF6*2UngF=_zx@CJ literal 0 HcmV?d00001 diff --git a/cinelerra-5.1/plugins/theme_suv/data/proxy_hi.png b/cinelerra-5.1/plugins/theme_suv/data/proxy_hi.png new file mode 100644 index 0000000000000000000000000000000000000000..8c00e10b63d133d1696ecb537d7bab08e69d436f GIT binary patch literal 814 zcmV+}1JV46P)WFU8GbZ8()Nlj2>E@cM*00NRpL_t(Y$L&^2NR&|& z{?5JQ=r~4AiA6$WA!LbR^H>JePNGc`v~Uyjnq~weg;KM$jFdq9M`;n&GD+HH*`h_X zYG$fU56z|*ltndan&bHY_q3RiL~{CPENbD|UGBNx_npVR=MpkBpYE&_Qd|cBR%)*% z!`Cvw5%|ZpD8Mq`hTm}46LA4YMT55D!M9An{a-vw;Na6>j%qU0Vmbr<@18;;oB&ZZ zIrzEHaP3K(TzBqux4G71NOqQ=PEr6^>F$1HC1y&0|J$~i7?TwYM{~ht+n5(E- zx%)_pULqLvf%?ITDw9zi}?X>`o5y1`sV2&}P6_JtiT(or8>}!a~=nbrM z)PlI4h-?XWOb~Ek{Oefz<@|y1v;@r9feGiTY#TKbun$Bs2|NJs9U}54*Ifkc0AWK? zsKLM$ju|HdxsN`i!Y8vet&Y1kv4z@*P?5@y8GWR4U8gnl#0)N_+gx7Vyqi@EjR=IDNhNqR2vcPMCuycG<2%#vId|25dq!__eyEwQv~dv zX+kg$GSHu@2?4sKPok;Y9{iY5395$6a(#xo!D7P@5gh`N1anL&ZW??0xr`Ox`x&*m z&o85!l|mykPl8B-aL{7Ikl%1MRt=ZsrX|2X?b^Dmz&a=dT0qE41jYS&+$asmQ1jKb zuczjo(Ta!S0U11lIG2KPE1BOs64dM{$bR9|J=;vr0@C>vq;Mpn!+S6v)nus0Oii_% za0EbwPj^<5ppL|A$jfzoI$}Blowo2hX0$T178_9|ohHd=Tfh?TMO2i4(V-aUF6KOb slh!oUWbo`lM{RP7)+~NV{%Zk005qBi^N*#tZvX%Q07*qoM6N<$g285I8~^|S literal 0 HcmV?d00001 diff --git a/cinelerra-5.1/plugins/theme_suv/data/proxy_up.png b/cinelerra-5.1/plugins/theme_suv/data/proxy_up.png new file mode 100644 index 0000000000000000000000000000000000000000..042fdde97d8e5f12a42518458ec4d37c56d3b4ba GIT binary patch literal 589 zcmV-T0WFU8GbZ8()Nlj2>E@cM*00FT{L_t(Y$L&_pO58vc zokTVTt9`Xq+ET@b>OTne7b>>@(%q%~ffhxuv|mu@n^pP~`>c|eeNYI?Wm-dDx()jh{U0wWUu@PU-AIF4tl zg2!<@OUh>ejZzDfBv~M#oueah3ShIW2u0*AiIWT?Nz?Sj*cAwZU|A`3rj$~i=gs@R z_k+Z5W6aV`$s1!{kvN!|@_%}sw~!5=)oQinQdQ`5I*&>DNaAAnrzBDUjW7&@Vg$%FrQ4~!BsFOG^v|+Q|Za*5)hV?=lo&#t^Q8ZnOd@vZS4P7h;cEyNBIiWFT zk;Fk^?Wu^o89RYAO`jL6_+14n-pE;TYK(bVstVa*wB76Vo>aY%WQWlg0L@AG!NZN{ b|485uaJh>^#RDoR00000NkvXXu0mjfgP8a6 literal 0 HcmV?d00001 diff --git a/cinelerra-5.1/plugins/theme_suv/data/proxy_uphi.png b/cinelerra-5.1/plugins/theme_suv/data/proxy_uphi.png new file mode 100644 index 0000000000000000000000000000000000000000..5022c2574aa6a20ec157bfc8896536c8af2e4746 GIT binary patch literal 537 zcmV+!0_OdRP)WFU8GbZ8()Nlj2>E@cM*00DhTL_t(Y$L-eNN)=HQ z2JoLsC(!IxOEN0DDBmH-S4gsV$s_dwMiLbD1VMMD^b%fYc+-V~L<*wkPsf=xT{s7( zp+j>fEeIFP#hyL;Ti;&$Ti2haDItP8%!WU!Lb z9BN^knV^-C1v@DZhZSMMgJ3(yXm^;cT!99+aR4J+9p!ECvCFOBk?(RNSRdov2s8QX zg9|5^)#ED@!IR*qztfYV9!>to4%&dV;kcb7$5z3G>0mFA{Gg%>NA^$ZF30S$yYC@V>$keCToa z)DpLt3SO2(__=}zU$vO3op_h=l%?RX)P~DnxHzBWFU8GbZ8()Nlj2>E@cM*00MqVL_t(Y$L*F&NK{c6 z$G`8~JGZ%mE~dp831Q?wk{IT_vka<5W$k+4x=n2gS|pTB(G&#+QHa#8wcs{;KoQYy zW-=s+t*oPP^%6jIJ3BM8s#y#C+s{LgnDL{%2wZ#xLs0BlIv)={mF zpnqIe0e%Z0rQM~Jb)!&7)K)8AC?sl?vad;LB`X4$n@iL)(-~$y5shM4O6zbHNqQg} zRd1N-Br}~Z7F#!z4PY2DPDHarM9j2a2<}tLy63vBn@R?8)QTLZZJlXyiinOdvla-yCBg${J|5J2iD(xyZCl1(daF{D1W;sV zjhT*`CXGsICG+`~NJRh(3)c2n%oq`ZE;3V1u?j++_wkO1qk+Ajl|qLQnLXj~;8-b3!{O|>5b1U))gb_% z0*}`EzBgVrfN5qw0(2Qb&&-T!(zHxprP;0P+5YKi(FD+SfUbnY&p)i_GrIaC`fmWf Y0W;1lZcDcIDF6Tf07*qoM6N<$f-Xi>#Q*>R literal 0 HcmV?d00001 diff --git a/cinelerra-5.1/plugins/theme_unflat/data/proxy_chkdhi.png b/cinelerra-5.1/plugins/theme_unflat/data/proxy_chkdhi.png new file mode 100644 index 0000000000000000000000000000000000000000..cecf4168a472a32ca262e30e6718f733b5b21257 GIT binary patch literal 787 zcmV+u1MK{XP)WFU8GbZ8()Nlj2>E@cM*00MVOL_t(Y$L&_lOH@%5 z|DAX5yylIxcnK8=LB&846!ZtQs6{00k|4-U(3j2=3=%5MG%B!-_(o|Fw2LISNd|oo zty^VZqeccbfjU}^^BnKJr-d^heT;9$q86Ur{W|COJLhnImr$W4l&ZIcxC;Pm%n@IR zJC*pc@Q-a3fc)Kor}YIQTF;qGn_pf1wG!vv)YMwIZYP*Cz7Ur~XTY1At0AKEAZjMp zeVx$yaM{6?It15!MMNziI@grTZ4M29Y&*`t?BaqpS(Y{68FRle2(~R3_;e6#X*Onv zgcu~E8UP?*)`~>pp#k(t`9x1n#+kX3nX`*HXuq`W7oOJbUMgk(#5k3*J*_WD+a3YY z0RUj;ESS5#O;5*tDIfll>~f4wWV0LBI8GM<$3P?sj^6-yKtx_)-ABMa5N*fehGyUv z2f@W;EcU6Ce+paE=6rq!OW93Cb*1hx^AIW3+H2b*Vf<3L&DE&XUSV0+iD>r^fuCz* z&h|_B=&#NJ3*bu5R-6HEe!dowNH-B3MClsb(@M4W+4jpn0-!OQ-5?z25&_4HO$g?< z3=EfQLI5{aF4xgtRrR@|5;UaKv4qxb(s4$K=oE+qm;+->$CrtToovk0C9I$E*w`*( zOgl5@KqNqPQaaA4r*(TnIvp!31Kz^I9td%}I7kXChjl*R)E|wGm6BsG2)2@KCyTS7 z@c5%K=4evN$Dy={XE)7O>#5j&?agGu_5EPbGmY-UJAiF1B#Zfaf$kjuc}T$Gwv zlA5AWo>`Ki;O^-gkfN8$&cMKE>*?Yc;&J@#HD7I)L=pB6@j|VU)!d5QHS9;j4Ib{6 zICLmzqLN+Xrq4q1N!KE{vJ=nbEW2Uz>ZRG@o#kmkvx1kuE1q9{?&tjN_0!)>Iv##u z>l(jZe>Rpd{9#Lw{e8mpp?$k;&Jt6Zqv;YG#Mh)q97?rm|7~>aa!3MO{=-U^^c@FF zm>;MY_I{qw@gQ3*SM=A$)}Sews#7*EcVn$`x_#>6Z=r357tYM#dB}40#7A4cMV}Sl zEh-jWE|K^2z`4g-TtWWp4{gt#tSXYtqSv;2+vfw}$96AE6%*&(@<6C~Esssd;v)if zCI&6X51MWMvaq55h*aL9?dPP#gtC7KUfZUh`=PbtXq}0t%hwqNS^|MNznhMlFdP#K z*)yxL>vN!xsLvIyE3xbcgv*@yxhu|JI8=NmiG6)V&eyP#e;xnW8}gR~*B^TMmb)Dk N!k(^vF6*2UngF=_zx@CJ literal 0 HcmV?d00001 diff --git a/cinelerra-5.1/plugins/theme_unflat/data/proxy_hi.png b/cinelerra-5.1/plugins/theme_unflat/data/proxy_hi.png new file mode 100644 index 0000000000000000000000000000000000000000..8c00e10b63d133d1696ecb537d7bab08e69d436f GIT binary patch literal 814 zcmV+}1JV46P)WFU8GbZ8()Nlj2>E@cM*00NRpL_t(Y$L&^2NR&|& z{?5JQ=r~4AiA6$WA!LbR^H>JePNGc`v~Uyjnq~weg;KM$jFdq9M`;n&GD+HH*`h_X zYG$fU56z|*ltndan&bHY_q3RiL~{CPENbD|UGBNx_npVR=MpkBpYE&_Qd|cBR%)*% z!`Cvw5%|ZpD8Mq`hTm}46LA4YMT55D!M9An{a-vw;Na6>j%qU0Vmbr<@18;;oB&ZZ zIrzEHaP3K(TzBqux4G71NOqQ=PEr6^>F$1HC1y&0|J$~i7?TwYM{~ht+n5(E- zx%)_pULqLvf%?ITDw9zi}?X>`o5y1`sV2&}P6_JtiT(or8>}!a~=nbrM z)PlI4h-?XWOb~Ek{Oefz<@|y1v;@r9feGiTY#TKbun$Bs2|NJs9U}54*Ifkc0AWK? zsKLM$ju|HdxsN`i!Y8vet&Y1kv4z@*P?5@y8GWR4U8gnl#0)N_+gx7Vyqi@EjR=IDNhNqR2vcPMCuycG<2%#vId|25dq!__eyEwQv~dv zX+kg$GSHu@2?4sKPok;Y9{iY5395$6a(#xo!D7P@5gh`N1anL&ZW??0xr`Ox`x&*m z&o85!l|mykPl8B-aL{7Ikl%1MRt=ZsrX|2X?b^Dmz&a=dT0qE41jYS&+$asmQ1jKb zuczjo(Ta!S0U11lIG2KPE1BOs64dM{$bR9|J=;vr0@C>vq;Mpn!+S6v)nus0Oii_% za0EbwPj^<5ppL|A$jfzoI$}Blowo2hX0$T178_9|ohHd=Tfh?TMO2i4(V-aUF6KOb slh!oUWbo`lM{RP7)+~NV{%Zk005qBi^N*#tZvX%Q07*qoM6N<$g285I8~^|S literal 0 HcmV?d00001 diff --git a/cinelerra-5.1/plugins/theme_unflat/data/proxy_up.png b/cinelerra-5.1/plugins/theme_unflat/data/proxy_up.png new file mode 100644 index 0000000000000000000000000000000000000000..042fdde97d8e5f12a42518458ec4d37c56d3b4ba GIT binary patch literal 589 zcmV-T0WFU8GbZ8()Nlj2>E@cM*00FT{L_t(Y$L&_pO58vc zokTVTt9`Xq+ET@b>OTne7b>>@(%q%~ffhxuv|mu@n^pP~`>c|eeNYI?Wm-dDx()jh{U0wWUu@PU-AIF4tl zg2!<@OUh>ejZzDfBv~M#oueah3ShIW2u0*AiIWT?Nz?Sj*cAwZU|A`3rj$~i=gs@R z_k+Z5W6aV`$s1!{kvN!|@_%}sw~!5=)oQinQdQ`5I*&>DNaAAnrzBDUjW7&@Vg$%FrQ4~!BsFOG^v|+Q|Za*5)hV?=lo&#t^Q8ZnOd@vZS4P7h;cEyNBIiWFT zk;Fk^?Wu^o89RYAO`jL6_+14n-pE;TYK(bVstVa*wB76Vo>aY%WQWlg0L@AG!NZN{ b|485uaJh>^#RDoR00000NkvXXu0mjfgP8a6 literal 0 HcmV?d00001 diff --git a/cinelerra-5.1/plugins/theme_unflat/data/proxy_uphi.png b/cinelerra-5.1/plugins/theme_unflat/data/proxy_uphi.png new file mode 100644 index 0000000000000000000000000000000000000000..5022c2574aa6a20ec157bfc8896536c8af2e4746 GIT binary patch literal 537 zcmV+!0_OdRP)WFU8GbZ8()Nlj2>E@cM*00DhTL_t(Y$L-eNN)=HQ z2JoLsC(!IxOEN0DDBmH-S4gsV$s_dwMiLbD1VMMD^b%fYc+-V~L<*wkPsf=xT{s7( zp+j>fEeIFP#hyL;Ti;&$Ti2haDItP8%!WU!Lb z9BN^knV^-C1v@DZhZSMMgJ3(yXm^;cT!99+aR4J+9p!ECvCFOBk?(RNSRdov2s8QX zg9|5^)#ED@!IR*qztfYV9!>to4%&dV;kcb7$5z3G>0mFA{Gg%>NA^$ZF30S$yYC@V>$keCToa z)DpLt3SO2(__=}zU$vO3op_h=l%?RX)P~DnxHzB