add proxy quick switch, folder lock, shortcuts update, bsd GL tweak
authorGood Guy <good1.2guy@gmail.com>
Tue, 10 Jul 2018 00:48:52 +0000 (18:48 -0600)
committerGood Guy <good1.2guy@gmail.com>
Tue, 10 Jul 2018 00:48:52 +0000 (18:48 -0600)
81 files changed:
cinelerra-5.1/blds/bsd.bld
cinelerra-5.1/cinelerra/awindowgui.C
cinelerra-5.1/cinelerra/awindowgui.h
cinelerra-5.1/cinelerra/edl.C
cinelerra-5.1/cinelerra/edl.h
cinelerra-5.1/cinelerra/edlsession.C
cinelerra-5.1/cinelerra/edlsession.h
cinelerra-5.1/cinelerra/mwindow.C
cinelerra-5.1/cinelerra/mwindow.h
cinelerra-5.1/cinelerra/mwindowedit.C
cinelerra-5.1/cinelerra/mwindowgui.C
cinelerra-5.1/cinelerra/mwindowgui.h
cinelerra-5.1/cinelerra/pluginlv2config.C
cinelerra-5.1/cinelerra/proxy.C
cinelerra-5.1/cinelerra/proxy.h
cinelerra-5.1/cinelerra/theme.C
cinelerra-5.1/cinelerra/theme.h
cinelerra-5.1/doc/shortcuts.html
cinelerra-5.1/plugins/theme_blond/blondtheme.C
cinelerra-5.1/plugins/theme_blond/data/proxy_chkd.png [new file with mode: 0644]
cinelerra-5.1/plugins/theme_blond/data/proxy_chkdhi.png [new file with mode: 0644]
cinelerra-5.1/plugins/theme_blond/data/proxy_down.png [new file with mode: 0644]
cinelerra-5.1/plugins/theme_blond/data/proxy_hi.png [new file with mode: 0644]
cinelerra-5.1/plugins/theme_blond/data/proxy_up.png [new file with mode: 0644]
cinelerra-5.1/plugins/theme_blond/data/proxy_uphi.png [new file with mode: 0644]
cinelerra-5.1/plugins/theme_blond_cv/blondcvtheme.C
cinelerra-5.1/plugins/theme_blond_cv/data/proxy_chkd.png [new file with mode: 0644]
cinelerra-5.1/plugins/theme_blond_cv/data/proxy_chkdhi.png [new file with mode: 0644]
cinelerra-5.1/plugins/theme_blond_cv/data/proxy_down.png [new file with mode: 0644]
cinelerra-5.1/plugins/theme_blond_cv/data/proxy_hi.png [new file with mode: 0644]
cinelerra-5.1/plugins/theme_blond_cv/data/proxy_up.png [new file with mode: 0644]
cinelerra-5.1/plugins/theme_blond_cv/data/proxy_uphi.png [new file with mode: 0644]
cinelerra-5.1/plugins/theme_blue/bluetheme.C
cinelerra-5.1/plugins/theme_blue/data/proxy_chkd.png [new file with mode: 0644]
cinelerra-5.1/plugins/theme_blue/data/proxy_chkdhi.png [new file with mode: 0644]
cinelerra-5.1/plugins/theme_blue/data/proxy_down.png [new file with mode: 0644]
cinelerra-5.1/plugins/theme_blue/data/proxy_hi.png [new file with mode: 0644]
cinelerra-5.1/plugins/theme_blue/data/proxy_up.png [new file with mode: 0644]
cinelerra-5.1/plugins/theme_blue/data/proxy_uphi.png [new file with mode: 0644]
cinelerra-5.1/plugins/theme_blue_dot/bluedottheme.C
cinelerra-5.1/plugins/theme_blue_dot/data/proxy_chkd.png [new file with mode: 0644]
cinelerra-5.1/plugins/theme_blue_dot/data/proxy_chkdhi.png [new file with mode: 0644]
cinelerra-5.1/plugins/theme_blue_dot/data/proxy_down.png [new file with mode: 0644]
cinelerra-5.1/plugins/theme_blue_dot/data/proxy_hi.png [new file with mode: 0644]
cinelerra-5.1/plugins/theme_blue_dot/data/proxy_up.png [new file with mode: 0644]
cinelerra-5.1/plugins/theme_blue_dot/data/proxy_uphi.png [new file with mode: 0644]
cinelerra-5.1/plugins/theme_bright/brighttheme.C
cinelerra-5.1/plugins/theme_bright/data/proxy_chkd.png [new file with mode: 0644]
cinelerra-5.1/plugins/theme_bright/data/proxy_chkdhi.png [new file with mode: 0644]
cinelerra-5.1/plugins/theme_bright/data/proxy_down.png [new file with mode: 0644]
cinelerra-5.1/plugins/theme_bright/data/proxy_hi.png [new file with mode: 0644]
cinelerra-5.1/plugins/theme_bright/data/proxy_up.png [new file with mode: 0644]
cinelerra-5.1/plugins/theme_bright/data/proxy_uphi.png [new file with mode: 0644]
cinelerra-5.1/plugins/theme_hulk/data/proxy_chkd.png [new file with mode: 0644]
cinelerra-5.1/plugins/theme_hulk/data/proxy_chkdhi.png [new file with mode: 0644]
cinelerra-5.1/plugins/theme_hulk/data/proxy_down.png [new file with mode: 0644]
cinelerra-5.1/plugins/theme_hulk/data/proxy_hi.png [new file with mode: 0644]
cinelerra-5.1/plugins/theme_hulk/data/proxy_up.png [new file with mode: 0644]
cinelerra-5.1/plugins/theme_hulk/data/proxy_uphi.png [new file with mode: 0644]
cinelerra-5.1/plugins/theme_hulk/hulktheme.C
cinelerra-5.1/plugins/theme_pinklady/data/proxy_chkd.png [new file with mode: 0644]
cinelerra-5.1/plugins/theme_pinklady/data/proxy_chkdhi.png [new file with mode: 0644]
cinelerra-5.1/plugins/theme_pinklady/data/proxy_down.png [new file with mode: 0644]
cinelerra-5.1/plugins/theme_pinklady/data/proxy_hi.png [new file with mode: 0644]
cinelerra-5.1/plugins/theme_pinklady/data/proxy_up.png [new file with mode: 0644]
cinelerra-5.1/plugins/theme_pinklady/data/proxy_uphi.png [new file with mode: 0644]
cinelerra-5.1/plugins/theme_pinklady/pinkladytheme.C
cinelerra-5.1/plugins/theme_suv/data/proxy_chkd.png [new file with mode: 0644]
cinelerra-5.1/plugins/theme_suv/data/proxy_chkdhi.png [new file with mode: 0644]
cinelerra-5.1/plugins/theme_suv/data/proxy_down.png [new file with mode: 0644]
cinelerra-5.1/plugins/theme_suv/data/proxy_hi.png [new file with mode: 0644]
cinelerra-5.1/plugins/theme_suv/data/proxy_up.png [new file with mode: 0644]
cinelerra-5.1/plugins/theme_suv/data/proxy_uphi.png [new file with mode: 0644]
cinelerra-5.1/plugins/theme_suv/suv.C
cinelerra-5.1/plugins/theme_unflat/data/proxy_chkd.png [new file with mode: 0644]
cinelerra-5.1/plugins/theme_unflat/data/proxy_chkdhi.png [new file with mode: 0644]
cinelerra-5.1/plugins/theme_unflat/data/proxy_down.png [new file with mode: 0644]
cinelerra-5.1/plugins/theme_unflat/data/proxy_hi.png [new file with mode: 0644]
cinelerra-5.1/plugins/theme_unflat/data/proxy_up.png [new file with mode: 0644]
cinelerra-5.1/plugins/theme_unflat/data/proxy_uphi.png [new file with mode: 0644]
cinelerra-5.1/plugins/theme_unflat/unflattheme.C

index 3707579c1cda9a2824f3da1e20fbb585b2e99b2e..6795b2309dc11878387a33d15b785c102e699848 100755 (executable)
@@ -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
index 186dcc5b5b0efdb94c4b291de371d334c716ee55..bffaa2d1268d9a1ebdc933ef5822a31fe2cf1b5c 100644 (file)
@@ -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);
index 440b4019c41df7bf804b2a891c8a15f1db741fd6..b941e18da58d0428605c8edc8b1f0cefa9f25eaf 100644 (file)
@@ -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
index d3f19b2353652f04390b1fcbc6be766afb550f0e..cfed55d6c59adb89c24bd61b008d256ca660b003 100644 (file)
@@ -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<Indexable*> *orig_assets, ArrayList<Indexable*> *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; i<proxy_assets->size(); ++i ) {
index 44802e3118a99d222be218a6aa714c8fb406e2a2..bc22b29067182d4fdd0063acd4fdb4adaea46ea9 100644 (file)
@@ -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<Indexable*> *orig_assets, ArrayList<Indexable*> *proxy_assets);
        void add_proxy(int use_scaler,
                ArrayList<Indexable*> *orig_assets, ArrayList<Indexable*> *proxy_assets);
index e0d5f7016b733dd2c705656ce1f3ad7b28d4ab6c..9bdb6458192f00ed7811f44f43ef9db688fc8d45 100644 (file)
@@ -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);
 }
 
index c1da8908afb24dc8c3ed4a0b199d8ff63d247c54..44d09974c908be3e0277c5bc8e733444432192fe 100644 (file)
@@ -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
index 034b1bd6b04b03b1bffd1a84aa603bf8cb02ce61..565f33283a705a29902585f131badf72817a3f0a 100644 (file)
@@ -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<Indexable *> &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<Indexable*> orig_idxbls;
+       ArrayList<Indexable*> 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 && i<proxy_assets.size(); ++i )
+                               got_it = !strcmp(proxy_assets[i]->path, 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(); i<n; ++i ) {
+                       EDL *orig_nested = edl->nested_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 && i<proxy_assets.size(); ++i )
+                               got_it = !strcmp(proxy_assets[i]->path, 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; i<proxy_assets.size(); ++i ) {
+                       Asset *proxy = (Asset *) proxy_assets[i];
+                       proxy->width = 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<char *> 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(); i<n; ++i ) {
+                       EDL *orig_nested = edl->nested_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];
index fb3513a2b6cbf04f6ec4a4cdf8c9b4e3685fe247..b974486145b5667148ee6521b37f69c6e09f47cc 100644 (file)
@@ -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<Indexable*> *orig_assets,
-               ArrayList<Indexable*> *proxy_assets);
        void add_proxy(int use_scaler,
                ArrayList<Indexable*> *orig_assets,
                ArrayList<Indexable*> *proxy_assets);
        int render_proxy(ArrayList<Indexable *> &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);
index ced86c1aeab90c720202f67f80ed9a6ea7e9c182..e5d90c6b52e23ef8cef4f96cadacee22f5f4cb5a 100644 (file)
@@ -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<Indexable*> *orig_assets, ArrayList<Indexable*> *proxy_assets)
-{
-       edl->set_proxy(use_scaler, new_scale, auto_scale, beep, orig_assets, proxy_assets);
-}
-
 void MWindow::add_proxy(int use_scaler,
        ArrayList<Indexable*> *orig_assets, ArrayList<Indexable*> *proxy_assets)
 {
index 9259dde163549c657a431c26b7a20304cdaf7ab2..f27896434edf87f15a9e511f2d98937690bb1093 100644 (file)
@@ -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;
+}
+
index a40e44460cafbf5ea1bfb5bc76c595bddac60f05..5ca693e05a3760c3404e70062b8d4663cf29a876 100644 (file)
@@ -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];
index f104be00a1312abd29ec5a60c9e567363fc2edba..32721c523dc7a638103ec49d7c598135ff5b488d 100644 (file)
@@ -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;
index aa9c834300225aebf9843178ec40cbf83008d5c1..3acfa42247b0a12118d0d53d065d45dfe8efb10f 100644 (file)
@@ -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; i<MAX_SIZES; ++i ) delete [] size_text[i];
        asset->remove_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<Indexable*> orig_idxbls;
-       ArrayList<Indexable*> 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 && i<proxy_assets.size(); ++i )
-                               got_it = !strcmp(proxy_assets[i]->path, 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(); i<n; ++i ) {
-                       EDL *orig_nested = edl->nested_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 && i<proxy_assets.size(); ++i )
-                               got_it = !strcmp(proxy_assets[i]->path, 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; i<proxy_assets.size(); ++i ) {
-                       Asset *proxy = (Asset *) proxy_assets[i];
-                       proxy->width = 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<char *> 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(); i<n; ++i ) {
-                       EDL *orig_nested = edl->nested_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();
index b11212546b930fd9b8f8448388d9631c8b4cd852..c98f2e04a5cea9168e947c39a2c4815919c4c3e5 100644 (file)
@@ -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;
index 9ed3195991fb09a96043696ffe6067ae683d9b3f..b1deeb0963a722d4097670d6a2fb80661585344f 100644 (file)
@@ -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;
index 009f396f5574ce2cd6a2f449a156b2a75052e468..35dad586dd097fc51730d89c49a79486fdeb30af 100644 (file)
@@ -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;
index d360db50392da84d4fdeae0672b4054f791fd318..59b5663813a8230958aae72600a8b2f238030d2b 100644 (file)
                <td align="left"><font face="Liberation Serif" size=4>'o'</font></td>
                <td align="left"><font face="Liberation Serif" size=4>Load file(s)</font></td>
        </tr>
+       <tr>
+               <td height="26" align="left"><font face="Liberation Serif" size=4><br></font></td>
+               <td align="left"><font face="Liberation Serif" size=4>  - load tool</font></td>
+               <td align="left"><font face="Liberation Serif" size=4>'Alt-a'</font></td>
+               <td align="left"><font face="Liberation Serif" size=4>Selects all files</font></td>
+       </tr>
+       <tr>
+               <td height="26" align="left"><font face="Liberation Serif" size=4><br></font></td>
+               <td align="left"><font face="Liberation Serif" size=4>  - load tool</font></td>
+               <td align="left"><font face="Liberation Serif" size=4>'Alt-z'</font></td>
+               <td align="left"><font face="Liberation Serif" size=4>Deselects any selected files</font></td>
+       </tr>
        <tr>
                <td height="26" align="left"><font face="Liberation Serif" size=4><br></font></td>
                <td align="left"><font face="Liberation Serif" size=4>Save</font></td>
                <td align="left"><font face="Liberation Serif" size=4><br></font></td>
                <td align="left"><font face="Liberation Serif" size=4>Lock labels from moving</font></td>
        </tr>
+       <tr>
+               <td height="26" align="left"><font face="Liberation Serif" size=4><br></font></td>
+               <td align="left"><font face="Liberation Serif" size=4>Editing choice</font></td>
+               <td align="left"><font face="Liberation Serif" size=4><br></font></td>
+               <td align="left"><font face="Liberation Serif" size=4>Drag and drop editing mode</font></td>
+       </tr>
+       <tr>
+               <td height="26" align="left"><font face="Liberation Serif" size=4><br></font></td>
+               <td align="left"><font face="Liberation Serif" size=4>Editing choice</font></td>
+               <td align="left"><font face="Liberation Serif" size=4><br></font></td>
+               <td align="left"><font face="Liberation Serif" size=4>Cut and paste editing mode</font></td>
+       </tr>
        <tr>
                <td height="26" align="left"><font face="Liberation Serif" size=4><br></font></td>
                <td align="left"><font face="Liberation Serif" size=4><br></font></td>
                <td align="left"><font face="Liberation Serif" size=4><br></font></td>
                <td align="left"><font face="Liberation Serif" size=4>Paste the last Audio transition</font></td>
        </tr>
+       <tr>
+               <td height="26" align="left"><font face="Liberation Serif" size=4><br></font></td>
+               <td align="left"><font face="Liberation Serif" size=4>'r'</font></td>
+               <td align="left"><font face="Liberation Serif" size=4>'Ctrl'</font></td>
+               <td align="left"><font face="Liberation Serif" size=4>Proxy quick switch</font></td>
+       </tr>
        <tr>
                <td height="26" align="left"><font face="Liberation Serif" size=4><br></font></td>
                <td align="left"><font face="Liberation Serif" size=4><br></font></td>
                <td align="left"><font face="Liberation Serif" size=4>F7</font></td>
                <td align="left"><font face="Liberation Serif" size=4>Crop a layer or output</font></td>
        </tr>
+       <tr>
+               <td height="26" align="left"><font face="Liberation Serif" size=4><br></font></td>
+               <td align="left"><font face="Liberation Serif" size=4>+ crop tool</font></td>
+               <td align="left"><font face="Liberation Serif" size=4>Click-drag</font></td>
+               <td align="left"><font face="Liberation Serif" size=4>In video, starts a new rectangle</font></td>
+       </tr>
+       <tr>
+               <td height="26" align="left"><font face="Liberation Serif" size=4><br></font></td>
+               <td align="left"><font face="Liberation Serif" size=4>+ crop tool</font></td>
+               <td align="left"><font face="Liberation Serif" size=4>Click-drag</font></td>
+               <td align="left"><font face="Liberation Serif" size=4>Over rectangle corner to reposition</font></td>
+       </tr>
+       <tr>
+               <td height="26" align="left"><font face="Liberation Serif" size=4><br></font></td>
+               <td align="left"><font face="Liberation Serif" size=4>+ crop tool</font></td>
+               <td align="left"><font face="Liberation Serif" size=4>Alt-click</font></td>
+               <td align="left"><font face="Liberation Serif" size=4>In cropping rectangle to translate</font></td>
+       </tr>
        <tr>
                <td height="26" align="left"><font face="Liberation Serif" size=4><br></font></td>
                <td align="left"><font face="Liberation Serif" size=4>Get color</font></td>
                <td align="left"><font face="Liberation Serif,Times New Roman" size=4>'g'</font></td>
                <td align="left"><font face="Liberation Serif,Times New Roman" size=4>Jump to time selected by popup</font></td>
        </tr>
+       <tr>
+               <td height="26" align="left"><font face="Liberation Serif" size=4><br></font></td>
+               <td align="left"><font face="Liberation Serif" size=4><br></font></td>
+               <td align="left"><font face="Liberation Serif" size=4><br></font></td>
+               <td align="left"><font face="Liberation Serif" size=4><br></font></td>
+       </tr>
+       <tr>
+               <td height="26" align="left"><font face="Liberation Serif" size=4>    Keypresses</font></td>
+               <td align="left"><b><u><font face="Liberation Serif" size=4>Key</font></u></b></td>
+               <td align="left"><b><u><font face="Liberation Serif" size=4>Qualifier</font></u></b></td>
+               <td align="left"><b><u><font face="Liberation Serif" size=4>Description</font></u></b></td>
+       </tr>
+       <tr>
+               <td height="26" align="left"><font face="Liberation Serif" size=4><br></font></td>
+               <td align="left"><font face="Liberation Serif" size=4>Right click</font></td>
+               <td align="left"><font face="Liberation Serif" size=4><br></font></td>
+               <td align="left"><font face="Liberation Serif" size=4>Brings up fullscreen/zoom/close menu</font></td>
+       </tr>
        <tr>
                <td height="26" align="left"><font face="Liberation Serif,Times New Roman" size=4><br></font></td>
                <td align="left"><font face="Liberation Serif,Times New Roman" size=4><br></font></td>
                <td align="left"><font face="Liberation Serif,Times New Roman" size=4></font></td>
                <td align="left"><font face="Liberation Serif,Times New Roman" size=4>Opens Load files... menu</font></td>
        </tr>
+       <tr>
+               <td height="26" align="left"><font face="Liberation Serif,Times New Roman" size=4><br></font></td>
+               <td align="left"><font face="Liberation Serif,Times New Roman" size=4>  - load tool</font></td>
+               <td align="left"><font face="Liberation Serif,Times New Roman" size=4>Ctrl-a</font></td>
+               <td align="left"><font face="Liberation Serif,Times New Roman" size=4>Selects all files</font></td>
+       </tr>
+       <tr>
+               <td height="26" align="left"><font face="Liberation Serif,Times New Roman" size=4><br></font></td>
+               <td align="left"><font face="Liberation Serif,Times New Roman" size=4>  - load tool</font></td>
+               <td align="left"><font face="Liberation Serif,Times New Roman" size=4>Ctrl-z</font></td>
+               <td align="left"><font face="Liberation Serif,Times New Roman" size=4>Deselects any selected files</font></td>
+       </tr>
        <tr>
                <td height="26" align="left"><font face="Liberation Serif,Times New Roman" size=4><br></font></td>
                <td align="left"><font face="Liberation Serif,Times New Roman" size=4><br></font></td>
                <td height="26" align="left"><font face="Liberation Serif" size=4><br></font></td>
                <td align="left"><font face="Liberation Serif" size=4><br></font></td>
                <td align="left"><font face="Liberation Serif" size=4>Double click</font></td>
-               <td align="left"><font face="Liberation Serif" size=4>In Find window,centers there & turns yellow</font></td>
+               <td align="left"><font face="Liberation Serif" size=4>In Find window, cursor moves to hilite program</font></td>
        </tr>
        <tr>
                <td height="26" align="left"><font face="Liberation Serif" size=4><br></font></td>
                <td align="left"><font face="Liberation Serif,Times New Roman" size=4><br></font></td>
        </tr>
        <tr>
-               <td height="26" align="left"><font face="Liberation Serif,Times New Roman" size=4>Android Remote</font></td>
+               <td height="26" align="left"><font face="Liberation Serif,Times New Roman" size=4>Remote Control</font></td>
                <td align="left"><font face="Liberation Serif,Times New Roman" size=4>MENU</font></td>
                <td align="left"><font face="Liberation Serif,Times New Roman" size=4><br></font></td>
-               <td align="left"><font face="Liberation Serif,Times New Roman" size=4>Toggle Android remote state (grabs/ungrabs keys)</font></td>
+               <td align="left"><font face="Liberation Serif,Times New Roman" size=4>Toggle remote control state (grabs/ungrabs keys)</font></td>
        </tr>
        <tr>
                <td height="26" align="left"><font face="Liberation Serif,Times New Roman" size=4><br></font></td>
                <td align="left"><font face="Liberation Serif,Times New Roman" size=4>KPTV</font></td>
                <td align="left"><font face="Liberation Serif,Times New Roman" size=4><br></font></td>
-               <td align="left"><font face="Liberation Serif,Times New Roman" size=4>Start/stop record window</font></td>
+               <td align="left"><font face="Liberation Serif,Times New Roman" size=4>Open or close the record window</font></td>
        </tr>
        <tr>
                <td height="26" align="left"><font face="Liberation Serif,Times New Roman" size=4><br></font></td>
index 93f4da0bd50de178b6595ff103bdfcdf219def40..c6bbc6e67bec24c3d61d5f4709fc14ae761a0a99 100644 (file)
@@ -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 (file)
index 0000000..98430bc
Binary files /dev/null and b/cinelerra-5.1/plugins/theme_blond/data/proxy_chkd.png differ
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 (file)
index 0000000..cecf416
Binary files /dev/null and b/cinelerra-5.1/plugins/theme_blond/data/proxy_chkdhi.png differ
diff --git a/cinelerra-5.1/plugins/theme_blond/data/proxy_down.png b/cinelerra-5.1/plugins/theme_blond/data/proxy_down.png
new file mode 100644 (file)
index 0000000..e909005
Binary files /dev/null and b/cinelerra-5.1/plugins/theme_blond/data/proxy_down.png differ
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 (file)
index 0000000..8c00e10
Binary files /dev/null and b/cinelerra-5.1/plugins/theme_blond/data/proxy_hi.png differ
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 (file)
index 0000000..042fdde
Binary files /dev/null and b/cinelerra-5.1/plugins/theme_blond/data/proxy_up.png differ
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 (file)
index 0000000..5022c25
Binary files /dev/null and b/cinelerra-5.1/plugins/theme_blond/data/proxy_uphi.png differ
index fdbffc8a0bae091f86f79a6dd768073f0bbb821c..cf41fdff63d28ab68323b85770f3fe6621fc75f0 100644 (file)
@@ -642,6 +642,13 @@ void BlondCVTheme::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_cv/data/proxy_chkd.png b/cinelerra-5.1/plugins/theme_blond_cv/data/proxy_chkd.png
new file mode 100644 (file)
index 0000000..98430bc
Binary files /dev/null and b/cinelerra-5.1/plugins/theme_blond_cv/data/proxy_chkd.png differ
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 (file)
index 0000000..cecf416
Binary files /dev/null and b/cinelerra-5.1/plugins/theme_blond_cv/data/proxy_chkdhi.png differ
diff --git a/cinelerra-5.1/plugins/theme_blond_cv/data/proxy_down.png b/cinelerra-5.1/plugins/theme_blond_cv/data/proxy_down.png
new file mode 100644 (file)
index 0000000..e909005
Binary files /dev/null and b/cinelerra-5.1/plugins/theme_blond_cv/data/proxy_down.png differ
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 (file)
index 0000000..8c00e10
Binary files /dev/null and b/cinelerra-5.1/plugins/theme_blond_cv/data/proxy_hi.png differ
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 (file)
index 0000000..042fdde
Binary files /dev/null and b/cinelerra-5.1/plugins/theme_blond_cv/data/proxy_up.png differ
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 (file)
index 0000000..5022c25
Binary files /dev/null and b/cinelerra-5.1/plugins/theme_blond_cv/data/proxy_uphi.png differ
index fd8d270fec7e3433565e41aed3b825404053a4c2..6bad18b8c9552c7fa0a23d7ef70608ac41dad2b7 100644 (file)
@@ -622,6 +622,13 @@ void BlueDotTheme::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_blue/data/proxy_chkd.png b/cinelerra-5.1/plugins/theme_blue/data/proxy_chkd.png
new file mode 100644 (file)
index 0000000..98430bc
Binary files /dev/null and b/cinelerra-5.1/plugins/theme_blue/data/proxy_chkd.png differ
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 (file)
index 0000000..cecf416
Binary files /dev/null and b/cinelerra-5.1/plugins/theme_blue/data/proxy_chkdhi.png differ
diff --git a/cinelerra-5.1/plugins/theme_blue/data/proxy_down.png b/cinelerra-5.1/plugins/theme_blue/data/proxy_down.png
new file mode 100644 (file)
index 0000000..e909005
Binary files /dev/null and b/cinelerra-5.1/plugins/theme_blue/data/proxy_down.png differ
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 (file)
index 0000000..8c00e10
Binary files /dev/null and b/cinelerra-5.1/plugins/theme_blue/data/proxy_hi.png differ
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 (file)
index 0000000..042fdde
Binary files /dev/null and b/cinelerra-5.1/plugins/theme_blue/data/proxy_up.png differ
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 (file)
index 0000000..5022c25
Binary files /dev/null and b/cinelerra-5.1/plugins/theme_blue/data/proxy_uphi.png differ
index 64c29f78e624a15f0ec20ec7970d33354e067014..e53f8c9c6bcae2932ade91a8a59d83ed46fd6ec0 100644 (file)
@@ -667,6 +667,13 @@ void BlueDotTheme::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_blue_dot/data/proxy_chkd.png b/cinelerra-5.1/plugins/theme_blue_dot/data/proxy_chkd.png
new file mode 100644 (file)
index 0000000..98430bc
Binary files /dev/null and b/cinelerra-5.1/plugins/theme_blue_dot/data/proxy_chkd.png differ
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 (file)
index 0000000..cecf416
Binary files /dev/null and b/cinelerra-5.1/plugins/theme_blue_dot/data/proxy_chkdhi.png differ
diff --git a/cinelerra-5.1/plugins/theme_blue_dot/data/proxy_down.png b/cinelerra-5.1/plugins/theme_blue_dot/data/proxy_down.png
new file mode 100644 (file)
index 0000000..e909005
Binary files /dev/null and b/cinelerra-5.1/plugins/theme_blue_dot/data/proxy_down.png differ
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 (file)
index 0000000..8c00e10
Binary files /dev/null and b/cinelerra-5.1/plugins/theme_blue_dot/data/proxy_hi.png differ
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 (file)
index 0000000..042fdde
Binary files /dev/null and b/cinelerra-5.1/plugins/theme_blue_dot/data/proxy_up.png differ
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 (file)
index 0000000..5022c25
Binary files /dev/null and b/cinelerra-5.1/plugins/theme_blue_dot/data/proxy_uphi.png differ
index 30a6be942b3c3d1c7bcf70fff22d7cdadcc141de..5d34edff596437d470d9c435f1367374404ca7d8 100644 (file)
@@ -628,6 +628,13 @@ void BrightTheme::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_bright/data/proxy_chkd.png b/cinelerra-5.1/plugins/theme_bright/data/proxy_chkd.png
new file mode 100644 (file)
index 0000000..98430bc
Binary files /dev/null and b/cinelerra-5.1/plugins/theme_bright/data/proxy_chkd.png differ
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 (file)
index 0000000..cecf416
Binary files /dev/null and b/cinelerra-5.1/plugins/theme_bright/data/proxy_chkdhi.png differ
diff --git a/cinelerra-5.1/plugins/theme_bright/data/proxy_down.png b/cinelerra-5.1/plugins/theme_bright/data/proxy_down.png
new file mode 100644 (file)
index 0000000..e909005
Binary files /dev/null and b/cinelerra-5.1/plugins/theme_bright/data/proxy_down.png differ
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 (file)
index 0000000..8c00e10
Binary files /dev/null and b/cinelerra-5.1/plugins/theme_bright/data/proxy_hi.png differ
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 (file)
index 0000000..042fdde
Binary files /dev/null and b/cinelerra-5.1/plugins/theme_bright/data/proxy_up.png differ
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 (file)
index 0000000..5022c25
Binary files /dev/null and b/cinelerra-5.1/plugins/theme_bright/data/proxy_uphi.png differ
diff --git a/cinelerra-5.1/plugins/theme_hulk/data/proxy_chkd.png b/cinelerra-5.1/plugins/theme_hulk/data/proxy_chkd.png
new file mode 100644 (file)
index 0000000..98430bc
Binary files /dev/null and b/cinelerra-5.1/plugins/theme_hulk/data/proxy_chkd.png differ
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 (file)
index 0000000..cecf416
Binary files /dev/null and b/cinelerra-5.1/plugins/theme_hulk/data/proxy_chkdhi.png differ
diff --git a/cinelerra-5.1/plugins/theme_hulk/data/proxy_down.png b/cinelerra-5.1/plugins/theme_hulk/data/proxy_down.png
new file mode 100644 (file)
index 0000000..e909005
Binary files /dev/null and b/cinelerra-5.1/plugins/theme_hulk/data/proxy_down.png differ
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 (file)
index 0000000..8c00e10
Binary files /dev/null and b/cinelerra-5.1/plugins/theme_hulk/data/proxy_hi.png differ
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 (file)
index 0000000..042fdde
Binary files /dev/null and b/cinelerra-5.1/plugins/theme_hulk/data/proxy_up.png differ
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 (file)
index 0000000..5022c25
Binary files /dev/null and b/cinelerra-5.1/plugins/theme_hulk/data/proxy_uphi.png differ
index de88591f5c1b26dd816847a008a7d0cfd19a0bea..fffc6b45de013392095957244ddf4bd1e88bb420 100644 (file)
@@ -623,6 +623,13 @@ void HULKTHEME::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_pinklady/data/proxy_chkd.png b/cinelerra-5.1/plugins/theme_pinklady/data/proxy_chkd.png
new file mode 100644 (file)
index 0000000..98430bc
Binary files /dev/null and b/cinelerra-5.1/plugins/theme_pinklady/data/proxy_chkd.png differ
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 (file)
index 0000000..cecf416
Binary files /dev/null and b/cinelerra-5.1/plugins/theme_pinklady/data/proxy_chkdhi.png differ
diff --git a/cinelerra-5.1/plugins/theme_pinklady/data/proxy_down.png b/cinelerra-5.1/plugins/theme_pinklady/data/proxy_down.png
new file mode 100644 (file)
index 0000000..e909005
Binary files /dev/null and b/cinelerra-5.1/plugins/theme_pinklady/data/proxy_down.png differ
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 (file)
index 0000000..8c00e10
Binary files /dev/null and b/cinelerra-5.1/plugins/theme_pinklady/data/proxy_hi.png differ
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 (file)
index 0000000..042fdde
Binary files /dev/null and b/cinelerra-5.1/plugins/theme_pinklady/data/proxy_up.png differ
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 (file)
index 0000000..5022c25
Binary files /dev/null and b/cinelerra-5.1/plugins/theme_pinklady/data/proxy_uphi.png differ
index f46efad7063d74d703193b3ef21811c0477b93ef..73adc37b64c1d95df653af269e9261f102891a3a 100644 (file)
@@ -608,6 +608,13 @@ void PINKLADY::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_suv/data/proxy_chkd.png b/cinelerra-5.1/plugins/theme_suv/data/proxy_chkd.png
new file mode 100644 (file)
index 0000000..98430bc
Binary files /dev/null and b/cinelerra-5.1/plugins/theme_suv/data/proxy_chkd.png differ
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 (file)
index 0000000..cecf416
Binary files /dev/null and b/cinelerra-5.1/plugins/theme_suv/data/proxy_chkdhi.png differ
diff --git a/cinelerra-5.1/plugins/theme_suv/data/proxy_down.png b/cinelerra-5.1/plugins/theme_suv/data/proxy_down.png
new file mode 100644 (file)
index 0000000..e909005
Binary files /dev/null and b/cinelerra-5.1/plugins/theme_suv/data/proxy_down.png differ
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 (file)
index 0000000..8c00e10
Binary files /dev/null and b/cinelerra-5.1/plugins/theme_suv/data/proxy_hi.png differ
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 (file)
index 0000000..042fdde
Binary files /dev/null and b/cinelerra-5.1/plugins/theme_suv/data/proxy_up.png differ
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 (file)
index 0000000..5022c25
Binary files /dev/null and b/cinelerra-5.1/plugins/theme_suv/data/proxy_uphi.png differ
index 15a95b4ca0bd73115bb64bf8f849a4de5e6f9651..876e3ab296bde2b3661f95f930d88d8526d89b2c 100644 (file)
@@ -609,6 +609,13 @@ void SUV::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_unflat/data/proxy_chkd.png b/cinelerra-5.1/plugins/theme_unflat/data/proxy_chkd.png
new file mode 100644 (file)
index 0000000..98430bc
Binary files /dev/null and b/cinelerra-5.1/plugins/theme_unflat/data/proxy_chkd.png differ
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 (file)
index 0000000..cecf416
Binary files /dev/null and b/cinelerra-5.1/plugins/theme_unflat/data/proxy_chkdhi.png differ
diff --git a/cinelerra-5.1/plugins/theme_unflat/data/proxy_down.png b/cinelerra-5.1/plugins/theme_unflat/data/proxy_down.png
new file mode 100644 (file)
index 0000000..e909005
Binary files /dev/null and b/cinelerra-5.1/plugins/theme_unflat/data/proxy_down.png differ
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 (file)
index 0000000..8c00e10
Binary files /dev/null and b/cinelerra-5.1/plugins/theme_unflat/data/proxy_hi.png differ
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 (file)
index 0000000..042fdde
Binary files /dev/null and b/cinelerra-5.1/plugins/theme_unflat/data/proxy_up.png differ
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 (file)
index 0000000..5022c25
Binary files /dev/null and b/cinelerra-5.1/plugins/theme_unflat/data/proxy_uphi.png differ
index 81c593ae4c1145722a894cca734144a64d41b358..7ef924e91d9ab8c76c73dcccf6bf4b1c56547cbb 100644 (file)
@@ -617,6 +617,13 @@ void UNFLATTHEME::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",