From: Good Guy Date: Sun, 6 Oct 2019 00:17:30 +0000 (-0600) Subject: add new cakewalk icons, add new shapewipe shapes, rework shapewipe plugin, fix 3rd... X-Git-Tag: 2019-10~11 X-Git-Url: https://cinelerra-gg.org/git/?a=commitdiff_plain;h=befe1fe45b4ac2b6430d43c6e6f6d8ecad9795e0;p=goodguy%2Fcinelerra.git add new cakewalk icons, add new shapewipe shapes, rework shapewipe plugin, fix 3rd pty bld for with/out-nv --- diff --git a/cinelerra-5.1/msg/txt b/cinelerra-5.1/msg/txt index 1acf10d3..1541f755 100644 --- a/cinelerra-5.1/msg/txt +++ b/cinelerra-5.1/msg/txt @@ -11,7 +11,7 @@ Cakewalk and Neophyte themes by Olaf Wolff (CC BY 4.0, September 2019 New Features of note: Crop & Position new plugin now available. New "Load recent" in File pulldown, for recently used media. - Libraries x265 and openexr have been upgraded. + Library x265 has been upgraded to 3.1.2. Camera and Projector menu has added Add Keyframe/Reset. August 2019 New Features of note: FFmpeg in use with Cinelerra is now version 4.2. diff --git a/cinelerra-5.1/plugins/shapes/Butterfly.png b/cinelerra-5.1/plugins/shapes/Butterfly.png new file mode 100644 index 00000000..3d36cfef Binary files /dev/null and b/cinelerra-5.1/plugins/shapes/Butterfly.png differ diff --git a/cinelerra-5.1/plugins/shapes/Circle-h_01.png b/cinelerra-5.1/plugins/shapes/Circle-h_01.png new file mode 100644 index 00000000..8db39c96 Binary files /dev/null and b/cinelerra-5.1/plugins/shapes/Circle-h_01.png differ diff --git a/cinelerra-5.1/plugins/shapes/Circle-h_02.png b/cinelerra-5.1/plugins/shapes/Circle-h_02.png new file mode 100644 index 00000000..d273de92 Binary files /dev/null and b/cinelerra-5.1/plugins/shapes/Circle-h_02.png differ diff --git a/cinelerra-5.1/plugins/shapes/Circle-v_01.png b/cinelerra-5.1/plugins/shapes/Circle-v_01.png new file mode 100644 index 00000000..6b53ef8f Binary files /dev/null and b/cinelerra-5.1/plugins/shapes/Circle-v_01.png differ diff --git a/cinelerra-5.1/plugins/shapes/Circle-v_02.png b/cinelerra-5.1/plugins/shapes/Circle-v_02.png new file mode 100644 index 00000000..1b34eefc Binary files /dev/null and b/cinelerra-5.1/plugins/shapes/Circle-v_02.png differ diff --git a/cinelerra-5.1/plugins/shapes/Clouds_01.png b/cinelerra-5.1/plugins/shapes/Clouds_01.png new file mode 100644 index 00000000..9cb95712 Binary files /dev/null and b/cinelerra-5.1/plugins/shapes/Clouds_01.png differ diff --git a/cinelerra-5.1/plugins/shapes/Clouds_02.png b/cinelerra-5.1/plugins/shapes/Clouds_02.png new file mode 100644 index 00000000..5faa0960 Binary files /dev/null and b/cinelerra-5.1/plugins/shapes/Clouds_02.png differ diff --git a/cinelerra-5.1/plugins/shapes/Cross-Iris_01.png b/cinelerra-5.1/plugins/shapes/Cross-Iris_01.png new file mode 100644 index 00000000..f9f8ba2e Binary files /dev/null and b/cinelerra-5.1/plugins/shapes/Cross-Iris_01.png differ diff --git a/cinelerra-5.1/plugins/shapes/Cross_01.png b/cinelerra-5.1/plugins/shapes/Cross_01.png new file mode 100644 index 00000000..d2971b3d Binary files /dev/null and b/cinelerra-5.1/plugins/shapes/Cross_01.png differ diff --git a/cinelerra-5.1/plugins/shapes/Diagonal-Curve.png b/cinelerra-5.1/plugins/shapes/Diagonal-Curve.png new file mode 100644 index 00000000..64e02489 Binary files /dev/null and b/cinelerra-5.1/plugins/shapes/Diagonal-Curve.png differ diff --git a/cinelerra-5.1/plugins/shapes/Diagonal-Linear.png b/cinelerra-5.1/plugins/shapes/Diagonal-Linear.png new file mode 100644 index 00000000..cfa558b2 Binary files /dev/null and b/cinelerra-5.1/plugins/shapes/Diagonal-Linear.png differ diff --git a/cinelerra-5.1/plugins/shapes/Diamond-Iris_01.png b/cinelerra-5.1/plugins/shapes/Diamond-Iris_01.png new file mode 100644 index 00000000..62031ecd Binary files /dev/null and b/cinelerra-5.1/plugins/shapes/Diamond-Iris_01.png differ diff --git a/cinelerra-5.1/plugins/shapes/Diamond_01.png b/cinelerra-5.1/plugins/shapes/Diamond_01.png new file mode 100644 index 00000000..667c246e Binary files /dev/null and b/cinelerra-5.1/plugins/shapes/Diamond_01.png differ diff --git a/cinelerra-5.1/plugins/shapes/Diamond_02.png b/cinelerra-5.1/plugins/shapes/Diamond_02.png new file mode 100644 index 00000000..eb0e799c Binary files /dev/null and b/cinelerra-5.1/plugins/shapes/Diamond_02.png differ diff --git a/cinelerra-5.1/plugins/shapes/Diamond_03.png b/cinelerra-5.1/plugins/shapes/Diamond_03.png new file mode 100644 index 00000000..ad4e8ef4 Binary files /dev/null and b/cinelerra-5.1/plugins/shapes/Diamond_03.png differ diff --git a/cinelerra-5.1/plugins/shapes/Double-Door-h.png b/cinelerra-5.1/plugins/shapes/Double-Door-h.png new file mode 100644 index 00000000..ac1b9027 Binary files /dev/null and b/cinelerra-5.1/plugins/shapes/Double-Door-h.png differ diff --git a/cinelerra-5.1/plugins/shapes/Double-Door-v.png b/cinelerra-5.1/plugins/shapes/Double-Door-v.png new file mode 100644 index 00000000..f809050a Binary files /dev/null and b/cinelerra-5.1/plugins/shapes/Double-Door-v.png differ diff --git a/cinelerra-5.1/plugins/shapes/Gravity.png b/cinelerra-5.1/plugins/shapes/Gravity.png new file mode 100644 index 00000000..2ec38b63 Binary files /dev/null and b/cinelerra-5.1/plugins/shapes/Gravity.png differ diff --git a/cinelerra-5.1/plugins/shapes/Linear-h.png b/cinelerra-5.1/plugins/shapes/Linear-h.png new file mode 100644 index 00000000..fe000425 Binary files /dev/null and b/cinelerra-5.1/plugins/shapes/Linear-h.png differ diff --git a/cinelerra-5.1/plugins/shapes/Linear-v.png b/cinelerra-5.1/plugins/shapes/Linear-v.png new file mode 100644 index 00000000..f456883a Binary files /dev/null and b/cinelerra-5.1/plugins/shapes/Linear-v.png differ diff --git a/cinelerra-5.1/plugins/shapes/Plasma_01.png b/cinelerra-5.1/plugins/shapes/Plasma_01.png new file mode 100644 index 00000000..17257752 Binary files /dev/null and b/cinelerra-5.1/plugins/shapes/Plasma_01.png differ diff --git a/cinelerra-5.1/plugins/shapes/Venetian-Blinds-h-x05.png b/cinelerra-5.1/plugins/shapes/Venetian-Blinds-h-x05.png new file mode 100644 index 00000000..8f615633 Binary files /dev/null and b/cinelerra-5.1/plugins/shapes/Venetian-Blinds-h-x05.png differ diff --git a/cinelerra-5.1/plugins/shapes/Venetian-Blinds-h-x10.png b/cinelerra-5.1/plugins/shapes/Venetian-Blinds-h-x10.png new file mode 100644 index 00000000..58dccf38 Binary files /dev/null and b/cinelerra-5.1/plugins/shapes/Venetian-Blinds-h-x10.png differ diff --git a/cinelerra-5.1/plugins/shapes/Venetian-Blinds-v-x05.png b/cinelerra-5.1/plugins/shapes/Venetian-Blinds-v-x05.png new file mode 100644 index 00000000..a9d61bd6 Binary files /dev/null and b/cinelerra-5.1/plugins/shapes/Venetian-Blinds-v-x05.png differ diff --git a/cinelerra-5.1/plugins/shapes/Venetian-Blinds-v-x10.png b/cinelerra-5.1/plugins/shapes/Venetian-Blinds-v-x10.png new file mode 100644 index 00000000..5d4ab073 Binary files /dev/null and b/cinelerra-5.1/plugins/shapes/Venetian-Blinds-v-x10.png differ diff --git a/cinelerra-5.1/plugins/shapewipe/shapewipe.C b/cinelerra-5.1/plugins/shapewipe/shapewipe.C index 9a38a916..a360fd5e 100644 --- a/cinelerra-5.1/plugins/shapewipe/shapewipe.C +++ b/cinelerra-5.1/plugins/shapewipe/shapewipe.C @@ -38,17 +38,56 @@ #define SHAPE_SEARCHPATH "/shapes" #define DEFAULT_SHAPE "circle" +// feather slider range log2 = -10 .. -1 == 9.8e-4 .. 0.5 +#define SHAPE_FLOG_MIN -10. +#define SHAPE_FLOG_MAX -1. REGISTER_PLUGIN(ShapeWipeMain) +ShapeWipeConfig::ShapeWipeConfig() +{ + direction = 0; + feather = 0; + preserve_aspect = 0; + strcpy(shape_name, DEFAULT_SHAPE); +} +ShapeWipeConfig::~ShapeWipeConfig() +{ +} + +void ShapeWipeConfig::read_xml(KeyFrame *keyframe) +{ + FileXML input; + input.set_shared_input(keyframe->xbuf); + + while( !input.read_tag() ) { + if( input.tag.title_is("SHAPEWIPE") ) { + direction = input.tag.get_property("DIRECTION", direction); + feather = input.tag.get_property("FEATHER", feather); + preserve_aspect = input.tag.get_property("PRESERVE_ASPECT", preserve_aspect); + input.tag.get_property("SHAPE_NAME", shape_name); + } + } +} +void ShapeWipeConfig::save_xml(KeyFrame *keyframe) +{ + FileXML output; + output.set_shared_output(keyframe->xbuf); + output.tag.set_title("SHAPEWIPE"); + output.tag.set_property("DIRECTION", direction); + output.tag.set_property("FEATHER", feather); + output.tag.set_property("PRESERVE_ASPECT", preserve_aspect); + output.tag.set_property("SHAPE_NAME", shape_name); + output.append_tag(); + output.tag.set_title("/SHAPEWIPE"); + output.append_tag(); + output.terminate_string(); +} + + ShapeWipeW2B::ShapeWipeW2B(ShapeWipeMain *plugin, - ShapeWipeWindow *window, - int x, - int y) - : BC_Radial(x, - y, - plugin->direction == 0, - _("White to Black")) + ShapeWipeWindow *window, int x, int y) + : BC_Radial(x, y, plugin->config.direction == 0, _("White to Black")) { this->plugin = plugin; this->window = window; @@ -57,20 +96,15 @@ ShapeWipeW2B::ShapeWipeW2B(ShapeWipeMain *plugin, int ShapeWipeW2B::handle_event() { update(1); - plugin->direction = 0; + plugin->config.direction = 0; window->right->update(0); plugin->send_configure_change(); return 0; } ShapeWipeB2W::ShapeWipeB2W(ShapeWipeMain *plugin, - ShapeWipeWindow *window, - int x, - int y) - : BC_Radial(x, - y, - plugin->direction == 1, - _("Black to White")) + ShapeWipeWindow *window, int x, int y) + : BC_Radial(x, y, plugin->config.direction == 1, _("Black to White")) { this->plugin = plugin; this->window = window; @@ -79,34 +113,16 @@ ShapeWipeB2W::ShapeWipeB2W(ShapeWipeMain *plugin, int ShapeWipeB2W::handle_event() { update(1); - plugin->direction = 1; + plugin->config.direction = 1; window->left->update(0); plugin->send_configure_change(); return 0; } -ShapeWipeAntiAlias::ShapeWipeAntiAlias(ShapeWipeMain *plugin, - ShapeWipeWindow *window, - int x, - int y) - : BC_CheckBox (x,y,plugin->antialias, _("Anti-aliasing")) -{ - this->plugin = plugin; - this->window = window; -} - -int ShapeWipeAntiAlias::handle_event() -{ - plugin->antialias = get_value(); - plugin->send_configure_change(); - return 0; -} ShapeWipePreserveAspectRatio::ShapeWipePreserveAspectRatio(ShapeWipeMain *plugin, - ShapeWipeWindow *window, - int x, - int y) - : BC_CheckBox (x, y, plugin->preserve_aspect, _("Preserve shape aspect ratio")) + ShapeWipeWindow *window, int x, int y) + : BC_CheckBox (x, y, plugin->config.preserve_aspect, _("Preserve shape aspect ratio")) { this->plugin = plugin; this->window = window; @@ -114,24 +130,19 @@ ShapeWipePreserveAspectRatio::ShapeWipePreserveAspectRatio(ShapeWipeMain *plugin int ShapeWipePreserveAspectRatio::handle_event() { - plugin->preserve_aspect = get_value(); + plugin->config.preserve_aspect = get_value(); plugin->send_configure_change(); return 0; } - - - - ShapeWipeTumble::ShapeWipeTumble(ShapeWipeMain *client, - ShapeWipeWindow *window, - int x, - int y) + ShapeWipeWindow *window, int x, int y) : BC_Tumbler(x, y) { this->client = client; this->window = window; + set_increment(0.01); } int ShapeWipeTumble::handle_up_event() @@ -147,24 +158,40 @@ int ShapeWipeTumble::handle_down_event() } +ShapeWipeFeather::ShapeWipeFeather(ShapeWipeMain *client, + ShapeWipeWindow *window, int x, int y) + : BC_FSlider(x, y, 0, 150, 150, SHAPE_FLOG_MIN, SHAPE_FLOG_MAX, + !client->config.feather ? SHAPE_FLOG_MIN : + log(client->config.feather)/M_LN2) +{ + this->client = client; + this->window = window; + set_precision(0.001); + set_pagination(0.01, 0.1); +} +char *ShapeWipeFeather::get_caption() +{ + double v = get_value(); + char *caption = BC_Slider::get_caption(); + sprintf(caption, "%-5.3f", exp(v*M_LN2)); + return caption; +} - +int ShapeWipeFeather::handle_event() +{ + float v = get_value(); + client->config.feather = exp(M_LN2*v); + client->send_configure_change(); + return 1; +} ShapeWipeShape::ShapeWipeShape(ShapeWipeMain *client, - ShapeWipeWindow *window, - int x, - int y, - int text_w, - int list_h) - : BC_PopupTextBox(window, - &window->shapes, - client->shape_name, - x, - y, - text_w, - list_h) + ShapeWipeWindow *window, int x, int y, + int text_w, int list_h) + : BC_PopupTextBox(window, &window->shapes, client->config.shape_name, + x, y, text_w, list_h) { this->client = client; this->window = window; @@ -172,25 +199,14 @@ ShapeWipeShape::ShapeWipeShape(ShapeWipeMain *client, int ShapeWipeShape::handle_event() { - strcpy(client->shape_name, get_text()); + strcpy(client->config.shape_name, get_text()); client->send_configure_change(); return 1; } - - - - - - ShapeWipeWindow::ShapeWipeWindow(ShapeWipeMain *plugin) - : PluginClientWindow(plugin, - 450, - 125, - 450, - 125, - 0) + : PluginClientWindow(plugin, 450, 125, 450, 125, 0) { this->plugin = plugin; } @@ -201,7 +217,6 @@ ShapeWipeWindow::~ShapeWipeWindow() } - void ShapeWipeWindow::create_objects() { BC_Title *title = 0; @@ -211,22 +226,17 @@ void ShapeWipeWindow::create_objects() int x = window_border, y = window_border; plugin->init_shapes(); - for(int i = 0; i < plugin->shape_titles.size(); i++) - { + for( int i=0; ishape_titles.size(); ++i ) { shapes.append(new BC_ListBoxItem(plugin->shape_titles.get(i))); } add_subwindow(title = new BC_Title(x, y, _("Direction:"))); x += title->get_w() + widget_border; add_subwindow(left = new ShapeWipeW2B(plugin, - this, - x, - y)); + this, x, y)); x += left->get_w() + widget_border; add_subwindow(right = new ShapeWipeB2W(plugin, - this, - x, - y)); + this, x, y)); x = window_border; y += right->get_h() + widget_border; @@ -234,48 +244,24 @@ void ShapeWipeWindow::create_objects() add_subwindow(title = new BC_Title(x, y, _("Shape:"))); x += title->get_w() + widget_border; -// add_subwindow(filename_widget = new -// ShapeWipeFilename(plugin, -// this, -// plugin->filename, -// x, -// y)); -// x += 200; -// add_subwindow(new ShapeWipeBrowseButton( -// plugin, -// this, -// filename_widget, -// x, -// y)); - shape_text = new ShapeWipeShape(plugin, - this, - x, - y, - 150, - 200); + this, x, y, 150, 200); shape_text->create_objects(); x += shape_text->get_w() + widget_border; add_subwindow(new ShapeWipeTumble(plugin, - this, - x, - y)); - x = window_border; + this, x, y)); y += shape_text->get_h() + widget_border; - ShapeWipeAntiAlias *anti_alias; - add_subwindow(anti_alias = new ShapeWipeAntiAlias( - plugin, - this, - x, - y)); - y += anti_alias->get_h() + widget_border; + x = window_border; + add_subwindow(title = new BC_Title(x, y, _("Feather:"))); + x += title->get_w() + widget_border; + add_subwindow(shape_feather = new ShapeWipeFeather(plugin, this, x, y)); + y += shape_feather->get_h() + widget_border; + + x = window_border; ShapeWipePreserveAspectRatio *aspect_ratio; add_subwindow(aspect_ratio = new ShapeWipePreserveAspectRatio( - plugin, - this, - x, - y)); + plugin, this, x, y)); y += aspect_ratio->get_h() + widget_border; show_window(); @@ -284,53 +270,44 @@ void ShapeWipeWindow::create_objects() void ShapeWipeWindow::next_shape() { - for(int i = 0; i < plugin->shape_titles.size(); i++) - { - if(!strcmp(plugin->shape_titles.get(i), plugin->shape_name)) - { - i++; - if(i >= plugin->shape_titles.size()) i = 0; - strcpy(plugin->shape_name, plugin->shape_titles.get(i)); - shape_text->update(plugin->shape_name); - break; - } + ShapeWipeConfig &config = plugin->config; + int k = plugin->shape_titles.size(); + while( --k>=0 && strcmp(plugin->shape_titles.get(k),config.shape_name) ); + + if( k >= 0 ) { + if( ++k >= plugin->shape_titles.size() ) k = 0; + strcpy(config.shape_name, plugin->shape_titles.get(k)); + shape_text->update(config.shape_name); } client->send_configure_change(); } void ShapeWipeWindow::prev_shape() { - for(int i = 0; i < plugin->shape_titles.size(); i++) - { - if(!strcmp(plugin->shape_titles.get(i), plugin->shape_name)) - { - i--; - if(i < 0) i = plugin->shape_titles.size() - 1; - strcpy(plugin->shape_name, plugin->shape_titles.get(i)); - shape_text->update(plugin->shape_name); - break; - } + ShapeWipeConfig &config = plugin->config; + int k = plugin->shape_titles.size(); + while( --k>=0 && strcmp(plugin->shape_titles.get(k),config.shape_name) ); + + if( k >= 0 ) { + if( --k < 0 ) k = plugin->shape_titles.size()-1; + strcpy(config.shape_name, plugin->shape_titles.get(k)); + shape_text->update(config.shape_name); } client->send_configure_change(); } - - - ShapeWipeMain::ShapeWipeMain(PluginServer *server) : PluginVClient(server) { - direction = 0; - filename[0] = 0; - last_read_filename[0] = '\0'; - strcpy(shape_name, DEFAULT_SHAPE); + input = 0; + output = 0; + engine = 0; + current_filename[0] = '\0'; current_name[0] = 0; - pattern_image = NULL; - min_value = (unsigned char)255; - max_value = (unsigned char)0; - antialias = 0; - preserve_aspect = 0; + pattern_image = 0; + min_value = 255; + max_value = 0; last_preserve_aspect = 0; shapes_initialized = 0; shape_paths.set_array_delete(); @@ -342,6 +319,7 @@ ShapeWipeMain::~ShapeWipeMain() reset_pattern_image(); shape_paths.remove_all_objects(); shape_titles.remove_all_objects(); + delete engine; } const char* ShapeWipeMain::plugin_title() { return N_("Shape Wipe"); } @@ -350,58 +328,27 @@ int ShapeWipeMain::uses_gui() { return 1; } NEW_WINDOW_MACRO(ShapeWipeMain, ShapeWipeWindow); - - -void ShapeWipeMain::save_data(KeyFrame *keyframe) +void ShapeWipeMain::read_data(KeyFrame *keyframe) { - FileXML output; - output.set_shared_output(keyframe->xbuf); - output.tag.set_title("SHAPEWIPE"); - output.tag.set_property("DIRECTION", direction); - output.tag.set_property("ANTIALIAS", antialias); - output.tag.set_property("PRESERVE_ASPECT", preserve_aspect); - output.tag.set_property("FILENAME", filename); - output.tag.set_property("SHAPE_NAME", shape_name); - output.append_tag(); - output.tag.set_title("/SHAPEWIPE"); - output.append_tag(); - output.terminate_string(); + config.read_xml(keyframe); } - -void ShapeWipeMain::read_data(KeyFrame *keyframe) +void ShapeWipeMain::save_data(KeyFrame *keyframe) { - FileXML input; - - input.set_shared_input(keyframe->xbuf); - - while(!input.read_tag()) - { - if(input.tag.title_is("SHAPEWIPE")) - { - direction = input.tag.get_property("DIRECTION", direction); - antialias = input.tag.get_property("ANTIALIAS", antialias); - preserve_aspect = input.tag.get_property("PRESERVE_ASPECT", preserve_aspect); - input.tag.get_property("FILENAME", filename); - input.tag.get_property("SHAPE_NAME", shape_name); - } - } + config.save_xml(keyframe); } void ShapeWipeMain::init_shapes() { - if(!shapes_initialized) - { + if( !shapes_initialized ) { FileSystem fs; fs.set_filter("*.png"); char shape_path[BCTEXTLEN]; sprintf(shape_path, "%s%s", get_plugin_dir(), SHAPE_SEARCHPATH); fs.update(shape_path); - for(int i = 0; i < fs.total_files(); i++) - { + for( int i=0; iget_is_dir()) - { + if( !file_item->get_is_dir() ) { shape_paths.append(cstrdup(file_item->get_path())); char *ptr = cstrdup(file_item->get_name()); char *ptr2 = strrchr(ptr, '.'); @@ -421,643 +368,309 @@ int ShapeWipeMain::load_configuration() return 1; } -int ShapeWipeMain::read_pattern_image(int new_frame_width, int new_frame_height) +int ShapeWipeMain::read_pattern_image(char *shape_name, + int new_frame_width, int new_frame_height) { png_byte header[8]; int is_png; - int row; - int col; - int scaled_row; - int scaled_col; + int row, col; int pixel_width; unsigned char value; png_uint_32 width; png_uint_32 height; png_byte color_type; png_byte bit_depth; - png_structp png_ptr; - png_infop info_ptr; - png_infop end_info; - png_bytep *image; + png_structp png_ptr = 0; + png_infop info_ptr = 0; + png_infop end_info = 0; + png_bytep *image = 0; + FILE *fp = 0; frame_width = new_frame_width; frame_height = new_frame_height; + int ret = 0; // Convert name to filename - for(int i = 0; i < shape_paths.size(); i++) - { - if(!strcmp(shape_titles.get(i), shape_name)) - { - strcpy(filename, shape_paths.get(i)); - break; - } + int k = shape_paths.size(); + while( --k>=0 && strcmp(shape_titles[k], shape_name) ); + if( k < 0 ) ret = 1; + if( !ret ) { + strcpy(current_filename, shape_paths[k]); + fp = fopen(current_filename, "rb"); + if( !fp ) ret = 1; } - - FILE *fp = fopen(filename, "rb"); - if (!fp) - { - return 1; + if( !ret ) { + fread(header, 1, 8, fp); + is_png = !png_sig_cmp(header, 0, 8); + if( !is_png ) ret = 1; } - - fread(header, 1, 8, fp); - is_png = !png_sig_cmp(header, 0, 8); - - if (!is_png) - { - fclose(fp); - return 1; - } - - png_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING, - NULL, NULL, NULL); - - if (!png_ptr) - { - fclose(fp); - return 1; + if( !ret ) { + png_ptr = png_create_read_struct(PNG_LIBPNG_VER_STRING, 0, 0, 0); + if( !png_ptr ) ret = 1; } - - /* Tell libpng we already checked the first 8 bytes */ - png_set_sig_bytes(png_ptr, 8); - - info_ptr = png_create_info_struct(png_ptr); - if (!info_ptr) - { - png_destroy_read_struct(&png_ptr, NULL, NULL); - fclose(fp); - return 1; - } - - end_info = png_create_info_struct(png_ptr); - if (!end_info) - { - png_destroy_read_struct(&png_ptr, &info_ptr, NULL); - fclose(fp); - return 1; - } - - png_init_io(png_ptr, fp); - png_read_info(png_ptr, info_ptr); - - color_type = png_get_color_type(png_ptr, info_ptr); - bit_depth = png_get_bit_depth(png_ptr, info_ptr); - width = png_get_image_width (png_ptr, info_ptr); - height = png_get_image_height(png_ptr, info_ptr); - - /* Skip the alpha channel if present - * stripping alpha currently doesn't work in conjunction with - * converting to grayscale in libpng */ - if (color_type & PNG_COLOR_MASK_ALPHA) - pixel_width = 2; - else - pixel_width = 1; - - /* Convert 16 bit data to 8 bit */ - if (bit_depth == 16) png_set_strip_16(png_ptr); - - /* Expand to 1 pixel per byte if necessary */ - if (bit_depth < 8) png_set_packing(png_ptr); - - /* Convert to grayscale */ - if (color_type == PNG_COLOR_TYPE_RGB || - color_type == PNG_COLOR_TYPE_RGB_ALPHA) - png_set_rgb_to_gray_fixed(png_ptr, 1, -1, -1); - - /* Allocate memory to hold the original png image */ - image = (png_bytep*)malloc(sizeof(png_bytep)*height); - for (row = 0; row < (int)height; row++) - { - image[row] = (png_byte*)malloc(sizeof(png_byte)*width*pixel_width); - } - - /* Allocate memory for the pattern image that will actually be - * used for the wipe */ - pattern_image = (unsigned char**)malloc(sizeof(unsigned char*)*frame_height); - - - png_read_image(png_ptr, image); - png_read_end(png_ptr, end_info); - - double row_factor, col_factor; - double row_offset = 0.5, col_offset = 0.5; // for rounding - - if (preserve_aspect && aspect_w != 0 && aspect_h != 0) - { - row_factor = (height-1)/aspect_h; - col_factor = (width-1)/aspect_w; - if (row_factor < col_factor) - col_factor = row_factor; - else - row_factor = col_factor; - row_factor *= aspect_h/(double)(frame_height-1); - col_factor *= aspect_w/(double)(frame_width-1); - - // center the pattern over the frame - row_offset += (height-1-(frame_height-1)*row_factor)/2; - col_offset += (width-1-(frame_width-1)*col_factor)/2; + if( !ret ) { + /* Tell libpng we already checked the first 8 bytes */ + png_set_sig_bytes(png_ptr, 8); + info_ptr = png_create_info_struct(png_ptr); + if( !info_ptr ) ret = 1; } - else - { - // Stretch (or shrink) the pattern image to fill the frame - row_factor = (double)(height-1)/(double)(frame_height-1); - col_factor = (double)(width-1)/(double)(frame_width-1); + if( !ret ) { + end_info = png_create_info_struct(png_ptr); + if( !end_info ) ret = 1; } - - for (scaled_row = 0; scaled_row < frame_height; scaled_row++) - { - row = (int)(row_factor*scaled_row + row_offset); - pattern_image[scaled_row] = (unsigned char*)malloc(sizeof(unsigned char)*frame_width); - for (scaled_col = 0; scaled_col < frame_width; scaled_col++) - { - col = (int)(col_factor*scaled_col + col_offset)*pixel_width; - value = image[row][col]; - pattern_image[scaled_row][scaled_col] = value; - if (value < min_value) min_value = value; - if (value > max_value) max_value = value; - + if( !ret ) { + png_init_io(png_ptr, fp); + png_read_info(png_ptr, info_ptr); + + color_type = png_get_color_type(png_ptr, info_ptr); + bit_depth = png_get_bit_depth(png_ptr, info_ptr); + width = png_get_image_width (png_ptr, info_ptr); + height = png_get_image_height(png_ptr, info_ptr); + + /* Skip the alpha channel if present + * stripping alpha currently doesn't work in conjunction with + * converting to grayscale in libpng */ + pixel_width = color_type & PNG_COLOR_MASK_ALPHA ? 2 : 1; + /* Convert 16 bit data to 8 bit */ + if( bit_depth == 16 ) png_set_strip_16(png_ptr); + /* Expand to 1 pixel per byte if necessary */ + if( bit_depth < 8 ) png_set_packing(png_ptr); + + /* Convert to grayscale */ + if( color_type == PNG_COLOR_TYPE_RGB || + color_type == PNG_COLOR_TYPE_RGB_ALPHA ) + png_set_rgb_to_gray_fixed(png_ptr, 1, -1, -1); + + /* Allocate memory to hold the original png image */ + image = (png_bytep*)new png_bytep[height]; + for( row=0; row<(int)height; ++row ) + image[row] = new png_byte[width*pixel_width]; + + /* Allocate memory for the pattern image that will actually be + * used for the wipe */ + pattern_image = new unsigned char*[frame_height]; + + png_read_image(png_ptr, image); + png_read_end(png_ptr, end_info); + + double row_factor, col_factor; + double row_offset = 0.5, col_offset = 0.5; // for rounding + + if( config.preserve_aspect && aspect_w && aspect_h ) { + row_factor = (height-1)/aspect_h; + col_factor = (width-1)/aspect_w; + if( row_factor < col_factor ) + col_factor = row_factor; + else + row_factor = col_factor; + row_factor *= aspect_h/(double)(frame_height-1); + col_factor *= aspect_w/(double)(frame_width-1); + + // center the pattern over the frame + row_offset += (height-1-(frame_height-1)*row_factor)/2; + col_offset += (width-1-(frame_width-1)*col_factor)/2; + } + else { + // Stretch (or shrink) the pattern image to fill the frame + row_factor = (double)(height-1)/(double)(frame_height-1); + col_factor = (double)(width-1)/(double)(frame_width-1); + } + // first, determine range min..max + for( int y=0; y max_value ) max_value = value; + } + } + int range = max_value - min_value; + if( !range ) range = 1; + // scale to fade normalized pattern_image + for( int y=0; yget_rows(); \ - type **out_rows = (type**)outgoing->get_rows(); \ - \ - type *in_row; \ - type *out_row; \ - \ - if( !direction ) { \ - for(j = 0; j < h; j++) { \ - in_row = (type*) in_rows[j]; \ - out_row = (type*)out_rows[j]; \ - pattern_row = pattern_image[j]; \ - \ - col_offset = 0; \ - for(k = 0; k < w; k++, col_offset += components ) { \ - value = pattern_row[k]; \ - if (value < threshold) continue; \ - out_row[col_offset] = in_row[col_offset]; \ - out_row[col_offset + 1] = in_row[col_offset + 1]; \ - out_row[col_offset + 2] = in_row[col_offset + 2]; \ - if(components == 4) \ - out_row[col_offset + 3] = in_row[col_offset + 3]; \ +#define SHAPEBLEND(type, components, tmp_type) { \ + float scale = feather ? 1/feather : 0xff; \ + type **in_rows = (type**)input->get_rows(); \ + type **out_rows = (type**)output->get_rows(); \ + for( int y=y1; y 0xff ) d = 0xff; \ + else if( d < -0xff ) d = -0xff; \ + tmp_type a = (d + 0xff) / 2, b = 0xff - a; \ + for( int i=0; i threshold) continue; \ - out_row[col_offset] = in_row[col_offset]; \ - out_row[col_offset + 1] = in_row[col_offset + 1]; \ - out_row[col_offset + 2] = in_row[col_offset + 2]; \ - if(components == 4) \ - out_row[col_offset + 3] = in_row[col_offset + 3]; \ - } \ - } \ - } \ -} - -#define COMPARE1(x,y) \ -{ \ - if (pattern_image[x][y] <= threshold) opacity++; \ -} - -#define COMPARE2(x,y) \ -{ \ - if (pattern_image[x][y] >= threshold) opacity++; \ -} - -// components is always 4 -#define BLEND_ONLY_4_NORMAL(temp_type, type, max, chroma_offset,x,y) \ -{ \ - const int bits = sizeof(type) * 8; \ - temp_type blend_opacity = (temp_type)(alpha * ((temp_type)1 << bits) + 0.5); \ - temp_type blend_transparency = ((temp_type)1 << bits) - blend_opacity; \ - \ - col = y * 4; \ - type* in_row = (type*)incoming->get_rows()[x]; \ - type* output = (type*)outgoing->get_rows()[x]; \ - \ - output[col] = ((temp_type)in_row[col] * blend_opacity + output[col] * blend_transparency) >> bits; \ - output[col+1] = ((temp_type)in_row[col+1] * blend_opacity + output[col+1] * blend_transparency) >> bits; \ - output[col+2] = ((temp_type)in_row[col+2] * blend_opacity + output[col+2] * blend_transparency) >> bits; \ -} - - -// components is always 3 -#define BLEND_ONLY_3_NORMAL(temp_type, type, max, chroma_offset,x,y) \ -{ \ - const int bits = sizeof(type) * 8; \ - temp_type blend_opacity = (temp_type)(alpha * ((temp_type)1 << bits) + 0.5); \ - temp_type blend_transparency = ((temp_type)1 << bits) - blend_opacity; \ - \ - col = y * 3; \ - type* in_row = (type*)incoming->get_rows()[x]; \ - type* output = (type*)outgoing->get_rows()[x]; \ - \ - output[col] = ((temp_type)in_row[col] * blend_opacity + output[col] * blend_transparency) >> bits; \ - output[col+1] = ((temp_type)in_row[col+1] * blend_opacity + output[col+1] * blend_transparency) >> bits; \ - output[col+2] = ((temp_type)in_row[col+2] * blend_opacity + output[col+2] * blend_transparency) >> bits; \ } -/* opacity is defined as opacity of incoming frame */ -#define BLEND(x,y,total) \ -{ \ - float pixel_opacity = (float)opacity / total; \ - float alpha = pixel_opacity; \ - float pixel_transparency = 1.0 - pixel_opacity; \ - int col; \ - \ - if (pixel_opacity > 0.0) \ - { \ - switch(incoming->get_color_model()) \ - { \ - case BC_RGB_FLOAT: \ - { \ - float *in_row = (float*)incoming->get_rows()[x]; \ - float *out_row = (float*)outgoing->get_rows()[x]; \ - col = y * 3; \ - out_row[col] = in_row[col] * pixel_opacity + \ - out_row[col] * pixel_transparency; \ - out_row[col+1] = in_row[col+1] * pixel_opacity + \ - out_row[col+1] * pixel_transparency; \ - out_row[col+2] = in_row[col+2] * pixel_opacity + \ - out_row[col+2] * pixel_transparency; \ - break; \ - } \ - case BC_RGBA_FLOAT: \ - { \ - float *in_row = (float*)incoming->get_rows()[x]; \ - float *out_row = (float*)outgoing->get_rows()[x]; \ - col = y * 4; \ - out_row[col] = in_row[col] * pixel_opacity + \ - out_row[col] * pixel_transparency; \ - out_row[col+1] = in_row[col+1] * pixel_opacity + \ - out_row[col+1] * pixel_transparency; \ - out_row[col+2] = in_row[col+2] * pixel_opacity + \ - out_row[col+2] * pixel_transparency; \ - break; \ - } \ - case BC_RGB888: \ - BLEND_ONLY_3_NORMAL(uint32_t, unsigned char, 0xff, 0,x,y); \ - break; \ - case BC_YUV888: \ - BLEND_ONLY_3_NORMAL(int32_t, unsigned char, 0xff, 0x80,x,y); \ - break; \ - case BC_RGBA8888: \ - BLEND_ONLY_4_NORMAL(uint32_t, unsigned char, 0xff, 0,x,y); \ - break; \ - case BC_YUVA8888: \ - BLEND_ONLY_4_NORMAL(int32_t, unsigned char, 0xff, 0x80,x,y); \ - break; \ - case BC_RGB161616: \ - BLEND_ONLY_3_NORMAL(uint64_t, uint16_t, 0xffff, 0,x,y); \ - break; \ - case BC_YUV161616: \ - BLEND_ONLY_3_NORMAL(int64_t, uint16_t, 0xffff, 0x8000,x,y); \ - break; \ - case BC_RGBA16161616: \ - BLEND_ONLY_4_NORMAL(uint64_t, uint16_t, 0xffff, 0,x,y); \ - break; \ - case BC_YUVA16161616: \ - BLEND_ONLY_4_NORMAL(int64_t, uint16_t, 0xffff, 0x8000,x,y); \ - break; \ - } \ - } \ -} - -int ShapeWipeMain::process_realtime(VFrame *incoming, VFrame *outgoing) +int ShapeWipeMain::process_realtime(VFrame *input, VFrame *output) { - unsigned char *pattern_row; - int col_offset; - unsigned char threshold; - unsigned char value; - int j, k; - int opacity; - + this->input = input; + this->output = output; + int w = input->get_w(); + int h = input->get_h(); init_shapes(); load_configuration(); - int w = incoming->get_w(); - int h = incoming->get_h(); - - if (strncmp(filename, last_read_filename, BCTEXTLEN) || - strncmp(shape_name, current_name, BCTEXTLEN) || - preserve_aspect != last_preserve_aspect) - { + if( strncmp(config.shape_name, current_name, BCTEXTLEN) || + config.preserve_aspect != last_preserve_aspect ) { reset_pattern_image(); } - - if (!pattern_image) - { - read_pattern_image(w, h); - strncpy(last_read_filename, filename, BCTEXTLEN); - last_preserve_aspect = preserve_aspect; - - if (pattern_image) - { - strncpy(last_read_filename, filename, BCTEXTLEN); - strncpy(current_name, shape_name, BCTEXTLEN); - last_preserve_aspect = preserve_aspect; - } - else { - fprintf(stderr, _("Shape Wipe: cannot load shape %s\n"), filename); - last_read_filename[0] = 0; + if ( !pattern_image ) { + if( read_pattern_image(config.shape_name, w, h) ) { + fprintf(stderr, _("Shape Wipe: cannot load shape %s\n"), + current_filename); + current_filename[0] = 0; return 0; } + strncpy(current_name, config.shape_name, BCTEXTLEN); + last_preserve_aspect = config.preserve_aspect; } - if (direction) - { - threshold = (unsigned char)( - (float)PluginClient::get_source_position() / - (float)PluginClient::get_total_len() * - (float)(max_value - min_value)) - + min_value; - } - else - { - threshold = (unsigned char)((max_value - min_value) - ( - (float)PluginClient::get_source_position() / - (float)PluginClient::get_total_len() * - (float)(max_value - min_value))) - + min_value; + float fade = (float)PluginClient::get_source_position() / + (float)PluginClient::get_total_len(); + if( !config.direction ) fade = 1 - fade; + threshold = fade * 0xff; + + int slices = w*h/0x40000+1; + int max_slices = BC_Resources::machine_cpus/2; + if( slices > max_slices ) slices = max_slices; + if( slices < 1 ) slices = 1; + if( engine && engine->get_total_clients() != slices ) { + delete engine; engine = 0; } + if( !engine ) + engine = new ShapeEngine(this, slices, slices); - if (antialias) - { - if (direction) - { - /* Top left corner */ - opacity = 0; - COMPARE1(0,0); - COMPARE1(0,1); - COMPARE1(1,0); - COMPARE1(1,1); - BLEND(0,0,4.0); - - /* Top edge */ - for (k = 1; k < w-1; k++) - { - opacity = 0; - COMPARE1(0,k-1); - COMPARE1(0,k); - COMPARE1(0,k+1); - COMPARE1(1,k-1); - COMPARE1(1,k); - COMPARE1(1,k+1); - BLEND(0,k,6.0); - } + engine->process_packages(); + return 0; +} - /* Top right corner */ - opacity = 0; - COMPARE1(0,w-1); - COMPARE1(0,w-2); - COMPARE1(1,w-1); - COMPARE1(1,w-2); - BLEND(0,w-1,4.0); - - /* Left edge */ - for (j = 1; j < h-1; j++) - { - opacity = 0; - COMPARE1(j-1,0); - COMPARE1(j,0); - COMPARE1(j+1,0); - COMPARE1(j-1,1); - COMPARE1(j,1); - COMPARE1(j+1,1); - BLEND(j,0,6.0); - } - /* Middle */ - for (j = 1; j < h-1; j++) - { - for (k = 1; k < w-1; k++) - { - opacity = 0; - COMPARE1(j-1,k-1); - COMPARE1(j,k-1); - COMPARE1(j+1,k-1); - COMPARE1(j-1,k); - COMPARE1(j,k); - COMPARE1(j+1,k); - COMPARE1(j-1,k+1); - COMPARE1(j,k+1); - COMPARE1(j+1,k+1); - BLEND(j,k,9.0); - } - } +ShapePackage::ShapePackage() + : LoadPackage() +{ +} - /* Right edge */ - for (j = 1; j < h-1; j++) - { - opacity = 0; - COMPARE1(j-1,w-1); - COMPARE1(j,w-1); - COMPARE1(j+1,w-1); - COMPARE1(j-1,w-2); - COMPARE1(j,w-2); - COMPARE1(j+1,w-2); - BLEND(j,w-1,6.0); - } +ShapeUnit::ShapeUnit(ShapeEngine *server) : LoadClient(server) +{ + this->server = server; +} - /* Bottom left corner */ - opacity = 0; - COMPARE1(h-1,0); - COMPARE1(h-1,1); - COMPARE1(h-2,0); - COMPARE1(h-2,1); - BLEND(h-1,0,4.0); - - /* Bottom edge */ - for (k = 1; k < w-1; k++) - { - opacity = 0; - COMPARE1(h-1,k-1); - COMPARE1(h-1,k); - COMPARE1(h-1,k+1); - COMPARE1(h-2,k-1); - COMPARE1(h-2,k); - COMPARE1(h-2,k+1); - BLEND(h-1,k,6.0); - } +ShapeUnit::~ShapeUnit() +{ +} - /* Bottom right corner */ - opacity = 0; - COMPARE1(h-1,w-1); - COMPARE1(h-1,w-2); - COMPARE1(h-2,w-1); - COMPARE1(h-2,w-2); - BLEND(h-1,w-1,4.0); - } - else - { - /* Top left corner */ - opacity = 0; - COMPARE2(0,0); - COMPARE2(0,1); - COMPARE2(1,0); - COMPARE2(1,1); - BLEND(0,0,4.0); - - /* Top edge */ - for (k = 1; k < w-1; k++) - { - opacity = 0; - COMPARE2(0,k-1); - COMPARE2(0,k); - COMPARE2(0,k+1); - COMPARE2(1,k-1); - COMPARE2(1,k); - COMPARE2(1,k+1); - BLEND(0,k,6.0); - } +void ShapeUnit::process_package(LoadPackage *package) +{ + VFrame *input = server->plugin->input; + VFrame *output = server->plugin->output; + int w = input->get_w(); + + unsigned char **pattern_image = server->plugin->pattern_image; + unsigned char threshold = server->plugin->threshold; + float feather = server->plugin->config.feather; + ShapePackage *pkg = (ShapePackage*)package; + int y1 = pkg->y1, y2 = pkg->y2; + + switch(input->get_color_model()) { + case BC_RGB_FLOAT: + SHAPEBLEND(float, 3, float) + break; + case BC_RGB888: + case BC_YUV888: + SHAPEBLEND(unsigned char, 3, int) + break; + case BC_RGBA_FLOAT: + SHAPEBLEND(float, 4, float) + break; + case BC_RGBA8888: + case BC_YUVA8888: + SHAPEBLEND(unsigned char, 4, int) + break; + case BC_RGB161616: + case BC_YUV161616: + SHAPEBLEND(uint16_t, 3, int64_t) + break; + case BC_RGBA16161616: + case BC_YUVA16161616: + SHAPEBLEND(uint16_t, 4, int64_t) + break; + } +} - /* Top right corner */ - opacity = 0; - COMPARE2(0,w-1); - COMPARE2(0,w-2); - COMPARE2(1,w-1); - COMPARE2(1,w-2); - BLEND(0,w-1,4.0); - - /* Left edge */ - for (j = 1; j < h-1; j++) - { - opacity = 0; - COMPARE2(j-1,0); - COMPARE2(j,0); - COMPARE2(j+1,0); - COMPARE2(j-1,1); - COMPARE2(j,1); - COMPARE2(j+1,1); - BLEND(j,0,6.0); - } - /* Middle */ - for (j = 1; j < h-1; j++) - { - for (k = 1; k < w-1; k++) - { - opacity = 0; - COMPARE2(j-1,k-1); - COMPARE2(j,k-1); - COMPARE2(j+1,k-1); - COMPARE2(j-1,k); - COMPARE2(j,k); - COMPARE2(j+1,k); - COMPARE2(j-1,k+1); - COMPARE2(j,k+1); - COMPARE2(j+1,k+1); - BLEND(j,k,9.0); - } - } +ShapeEngine::ShapeEngine(ShapeWipeMain *plugin, + int total_clients, int total_packages) + : LoadServer(total_clients, total_packages) +{ + this->plugin = plugin; +} - /* Right edge */ - for (j = 1; j < h-1; j++) - { - opacity = 0; - COMPARE2(j-1,w-1); - COMPARE2(j,w-1); - COMPARE2(j+1,w-1); - COMPARE2(j-1,w-2); - COMPARE2(j,w-2); - COMPARE2(j+1,w-2); - BLEND(j,w-1,6.0); - } +ShapeEngine::~ShapeEngine() +{ +} - /* Bottom left corner */ - opacity = 0; - COMPARE2(h-1,0); - COMPARE2(h-1,1); - COMPARE2(h-2,0); - COMPARE2(h-2,1); - BLEND(h-1,0,4.0); - - /* Bottom edge */ - for (k = 1; k < w-1; k++) - { - opacity = 0; - COMPARE2(h-1,k-1); - COMPARE2(h-1,k); - COMPARE2(h-1,k+1); - COMPARE2(h-2,k-1); - COMPARE2(h-2,k); - COMPARE2(h-2,k+1); - BLEND(h-1,k,6.0); - } - /* Bottom right corner */ - opacity = 0; - COMPARE2(h-1,w-1); - COMPARE2(h-1,w-2); - COMPARE2(h-2,w-1); - COMPARE2(h-2,w-2); - BLEND(h-1,w-1,4.0); - } - } - else - { - switch(incoming->get_color_model()) - { - case BC_RGB_FLOAT: - SHAPEWIPE(float, 3) - break; - case BC_RGB888: - case BC_YUV888: - SHAPEWIPE(unsigned char, 3) - break; - case BC_RGBA_FLOAT: - SHAPEWIPE(float, 4) - break; - case BC_RGBA8888: - case BC_YUVA8888: - SHAPEWIPE(unsigned char, 4) - break; - case BC_RGB161616: - case BC_YUV161616: - SHAPEWIPE(uint16_t, 3) - break; - case BC_RGBA16161616: - case BC_YUVA16161616: - SHAPEWIPE(uint16_t, 4) - break; - } +void ShapeEngine::init_packages() +{ + int y = 0, h1 = plugin->input->get_h()-1; + int total_packages = get_total_packages(); + for(int i = 0; iy1 = y; + y = h1 * i / total_packages; + pkg->y2 = y; } - return 0; } + +LoadClient* ShapeEngine::new_client() +{ + return new ShapeUnit(this); +} + +LoadPackage* ShapeEngine::new_package() +{ + return new ShapePackage; +} + diff --git a/cinelerra-5.1/plugins/shapewipe/shapewipe.h b/cinelerra-5.1/plugins/shapewipe/shapewipe.h index 83ac047c..76b6efce 100644 --- a/cinelerra-5.1/plugins/shapewipe/shapewipe.h +++ b/cinelerra-5.1/plugins/shapewipe/shapewipe.h @@ -22,8 +22,18 @@ #ifndef SHAPEWIPE_H #define SHAPEWIPE_H +class ShapeWipeConfig; class ShapeWipeMain; class ShapeWipeWindow; +class ShapeWipeW2B; +class ShapeWipeB2W; +class ShapeWipeTumble; +class ShapeWipeFeather; +class ShapeWipeShape; +class ShapeWipePreserveAspectRatio; +class ShapePackage; +class ShapeUnit; +class ShapeEngine; #include "overlayframe.inc" #include "pluginvclient.h" @@ -69,33 +79,28 @@ public: ShapeWipeWindow *window; }; -class ShapeWipeShape : public BC_PopupTextBox +class ShapeWipeFeather : public BC_FSlider { public: - ShapeWipeShape(ShapeWipeMain *client, - ShapeWipeWindow *window, - int x, - int y, - int text_w, - int list_h); + ShapeWipeFeather(ShapeWipeMain *client, + ShapeWipeWindow *window, int x, int y); + char *get_caption(); int handle_event(); + ShapeWipeMain *client; ShapeWipeWindow *window; }; -class ShapeWipeAntiAlias : public BC_CheckBox +class ShapeWipeShape : public BC_PopupTextBox { public: - ShapeWipeAntiAlias(ShapeWipeMain *plugin, - ShapeWipeWindow *window, - int x, - int y); + ShapeWipeShape(ShapeWipeMain *client, ShapeWipeWindow *window, + int x, int y, int text_w, int list_h); int handle_event(); - ShapeWipeMain *plugin; + ShapeWipeMain *client; ShapeWipeWindow *window; }; - class ShapeWipePreserveAspectRatio : public BC_CheckBox { public: @@ -121,48 +126,91 @@ public: ShapeWipeMain *plugin; ShapeWipeW2B *left; ShapeWipeB2W *right; -// ShapeWipeFilename *filename_widget; ShapeWipeTumble *shape_tumbler; ShapeWipeShape *shape_text; + ShapeWipeFeather *shape_feather; ArrayList shapes; }; +class ShapeWipeConfig +{ +public: + ShapeWipeConfig(); + ~ShapeWipeConfig(); + void read_xml(KeyFrame *keyframe); + void save_xml(KeyFrame *keyframe); + + int direction; + float feather; + int preserve_aspect; + char shape_name[BCTEXTLEN]; +}; + class ShapeWipeMain : public PluginVClient { public: ShapeWipeMain(PluginServer *server); ~ShapeWipeMain(); -// required for all realtime plugins - int load_configuration(); - int process_realtime(VFrame *incoming, VFrame *outgoing); - void save_data(KeyFrame *keyframe); - void read_data(KeyFrame *keyframe); - PluginClientWindow* new_window(); + PLUGIN_CLASS_MEMBERS(ShapeWipeConfig) + int process_realtime(VFrame *input, VFrame *output); int uses_gui(); int is_transition(); - const char* plugin_title(); - int read_pattern_image(int new_frame_width, int new_frame_height); + void read_data(KeyFrame *keyframe); + void save_data(KeyFrame *keyframe); + + int read_pattern_image(char *shape_name, + int new_frame_width, int new_frame_height); void reset_pattern_image(); void init_shapes(); + VFrame *input, *output; + ShapeEngine *engine; ArrayList shape_paths; ArrayList shape_titles; int shapes_initialized; - int direction; - char filename[BCTEXTLEN]; - char last_read_filename[BCTEXTLEN]; - char shape_name[BCTEXTLEN]; + int threshold; + char current_filename[BCTEXTLEN]; char current_name[BCTEXTLEN]; unsigned char **pattern_image; unsigned char min_value; unsigned char max_value; int frame_width; int frame_height; - int antialias; int preserve_aspect; int last_preserve_aspect; }; + +class ShapePackage : public LoadPackage +{ +public: + ShapePackage(); + int y1, y2; +}; + +class ShapeUnit : public LoadClient +{ +public: + ShapeUnit(ShapeEngine *server); + ~ShapeUnit(); + void process_package(LoadPackage *package); + ShapeEngine *server; + unsigned char threshold; +}; + +class ShapeEngine : public LoadServer +{ +public: + ShapeEngine(ShapeWipeMain *plugin, + int total_clients, int total_packages); + ~ShapeEngine(); + + void init_packages(); + LoadClient *new_client(); + LoadPackage *new_package(); + ShapeWipeMain *plugin; +}; + #endif diff --git a/cinelerra-5.1/plugins/theme_cakewalk/cakewalk.C b/cinelerra-5.1/plugins/theme_cakewalk/cakewalk.C index 14ea7b82..72ffee6d 100644 --- a/cinelerra-5.1/plugins/theme_cakewalk/cakewalk.C +++ b/cinelerra-5.1/plugins/theme_cakewalk/cakewalk.C @@ -1,4 +1,4 @@ -/* Part of the Cakewalk theme. */ +/* cakewalk.C (uncommented). Part of the Cakewalk theme. */ #include "bcsignals.h" #include "clip.h" #include "cwindowgui.h" @@ -267,20 +267,23 @@ void CAKEWALKTHEME::initialize() "new_bigbutton_hi.png", "new_bigbutton_dn.png", "new_ok_images"); - new_button( "reset.png", + new_button( + "reset.png", "reset_up.png", "reset_hi.png", "reset_dn.png", "reset_button"); - new_button("unclear.png", + new_button( + "unclear.png", "unclear_up.png", "unclear_hi.png", "unclear_dn.png", "unclear_button"); - new_button("keyframe.png", - "keyframe_up.png", - "keyframe_hi.png", - "keyframe_dn.png", + new_button( + "keyframe.png", + "editpanel_up.png", + "editpanel_hi.png", + "editpanel_dn.png", "keyframe_button"); resources->cancel_images = new_button( "cancel.png", @@ -295,83 +298,80 @@ void CAKEWALKTHEME::initialize() "new_bigbutton_dn.png", "new_cancel_images"); new_button("mask_pnt_linear.png", - "mask_button_up.png", - "mask_button_hi.png", - "mask_button_dn.png", - "mask_pnt_linear_images"); + "mask_button_up.png", + "mask_button_hi.png", + "mask_button_dn.png", + "mask_pnt_linear_images"); new_button("mask_crv_linear.png", - "mask_button_up.png", - "mask_button_hi.png", - "mask_button_dn.png", - "mask_crv_linear_images"); + "mask_button_up.png", + "mask_button_hi.png", + "mask_button_dn.png", + "mask_crv_linear_images"); new_button("mask_all_linear.png", - "mask_button_up.png", - "mask_button_hi.png", - "mask_button_dn.png", - "mask_all_linear_images"); + "mask_button_up.png", + "mask_button_hi.png", + "mask_button_dn.png", + "mask_all_linear_images"); new_button("mask_pnt_smooth.png", - "mask_button_up.png", - "mask_button_hi.png", - "mask_button_dn.png", - "mask_pnt_smooth_images"); + "mask_button_up.png", + "mask_button_hi.png", + "mask_button_dn.png", + "mask_pnt_smooth_images"); new_button("mask_crv_smooth.png", - "mask_button_up.png", - "mask_button_hi.png", - "mask_button_dn.png", - "mask_crv_smooth_images"); + "mask_button_up.png", + "mask_button_hi.png", + "mask_button_dn.png", + "mask_crv_smooth_images"); new_button("mask_all_smooth.png", - "mask_button_up.png", - "mask_button_hi.png", - "mask_button_dn.png", - "mask_all_smooth_images"); + "mask_button_up.png", + "mask_button_hi.png", + "mask_button_dn.png", + "mask_all_smooth_images"); new_button("mask_prst_sqr.png", - "mask_button_up.png", - "mask_button_hi.png", - "mask_button_dn.png", - "mask_prst_sqr_images"); + "mask_button_up.png", + "mask_button_hi.png", + "mask_button_dn.png", + "mask_prst_sqr_images"); new_button("mask_prst_crc.png", - "mask_button_up.png", - "mask_button_hi.png", - "mask_button_dn.png", - "mask_prst_crc_images"); + "mask_button_up.png", + "mask_button_hi.png", + "mask_button_dn.png", + "mask_prst_crc_images"); new_button("mask_prst_tri.png", - "mask_button_up.png", - "mask_button_hi.png", - "mask_button_dn.png", - "mask_prst_tri_images"); + "mask_button_up.png", + "mask_button_hi.png", + "mask_button_dn.png", + "mask_prst_tri_images"); new_button("mask_prst_ovl.png", - "mask_button_up.png", - "mask_button_hi.png", - "mask_button_dn.png", - "mask_prst_ovl_images"); - + "mask_button_up.png", + "mask_button_hi.png", + "mask_button_dn.png", + "mask_prst_ovl_images"); new_button("mask_prst_load.png", - "mask_button_up.png", - "mask_button_hi.png", - "mask_button_dn.png", - "mask_prst_load_images"); + "mask_button_up.png", + "mask_button_hi.png", + "mask_button_dn.png", + "mask_prst_load_images"); new_button("mask_prst_save.png", - "mask_button_up.png", - "mask_button_hi.png", - "mask_button_dn.png", - "mask_prst_save_images"); + "mask_button_up.png", + "mask_button_hi.png", + "mask_button_dn.png", + "mask_prst_save_images"); new_button("mask_prst_trsh.png", - "mask_button_up.png", - "mask_button_hi.png", - "mask_button_dn.png", - "mask_prst_trsh_images"); - + "mask_button_up.png", + "mask_button_hi.png", + "mask_button_dn.png", + "mask_prst_trsh_images"); new_button("mask_pstn_cen.png", - "mask_button_up.png", - "mask_button_hi.png", - "mask_button_dn.png", - "mask_pstn_cen_images"); + "mask_button_up.png", + "mask_button_hi.png", + "mask_button_dn.png", + "mask_pstn_cen_images"); new_button("mask_pstn_nrm.png", - "mask_button_up.png", - "mask_button_hi.png", - "mask_button_dn.png", - "mask_pstn_nrm_images"); - + "mask_button_up.png", + "mask_button_hi.png", + "mask_button_dn.png", + "mask_pstn_nrm_images"); resources->bar_data = new_image("bar", "bar.png"); resources->check = new_image("check", "check.png"); resources->min_menu_w = 96; @@ -713,11 +713,11 @@ void CAKEWALKTHEME::initialize() "proxy_s_down.png", "proxy_s_chkdhi.png"); mask_mode_toggle = new_image_set(5, - "mask_mode_up.png", - "mask_mode_hi.png", - "mask_mode_chkd.png", - "mask_mode_down.png", - "mask_mode_chkdhi.png"); + "mask_mode_up.png", + "mask_mode_hi.png", + "mask_mode_chkd.png", + "mask_mode_down.png", + "mask_mode_chkdhi.png"); shbtn_data = new_image_set( 3, "shbtn_up.png", @@ -946,7 +946,7 @@ void CAKEWALKTHEME::initialize() transport_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "autokeyframe"); -new_toggle("spankeyframe.png", + new_toggle("spankeyframe.png", transport_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "spankeyframe"); @@ -1008,15 +1008,15 @@ new_toggle("spankeyframe.png", editpanel_up, editpanel_hi, editpanel_checked, editpanel_dn, editpanel_checkedhi, "tan_linear"); - new_toggle("mask_scale_x.png", "mask_scale_up.png", "mask_scale_uphi.png", - "mask_scale_chkd.png", "mask_scale_xdown.png", "mask_scale_chkdhi.png", - "mask_scale_x"); - new_toggle("mask_scale_y.png", "mask_scale_up.png", "mask_scale_uphi.png", - "mask_scale_chkd.png", "mask_scale_ydown.png", "mask_scale_chkdhi.png", - "mask_scale_y"); - new_toggle("mask_scale_xy.png", "mask_scale_up.png", "mask_scale_uphi.png", - "mask_scale_chkd.png", "mask_scale_xydown.png", "mask_scale_chkdhi.png", - "mask_scale_xy"); + new_toggle("mask_scale_x.png", "mask_scale_up.png", "mask_scale_uphi.png", + "mask_scale_chkd.png", "mask_scale_xdown.png", "mask_scale_chkdhi.png", + "mask_scale_x"); + new_toggle("mask_scale_y.png", "mask_scale_up.png", "mask_scale_uphi.png", + "mask_scale_chkd.png", "mask_scale_ydown.png", "mask_scale_chkdhi.png", + "mask_scale_y"); + new_toggle("mask_scale_xy.png", "mask_scale_up.png", "mask_scale_uphi.png", + "mask_scale_chkd.png", "mask_scale_xydown.png", "mask_scale_chkdhi.png", + "mask_scale_xy"); flush_images(); } void CAKEWALKTHEME::get_vwindow_sizes(VWindowGUI *gui) @@ -1124,7 +1124,7 @@ void CAKEWALKTHEME::draw_mwindow_bg(MWindowGUI *gui) gui->draw_vframe(get_image("panel_divider"), x - toggle_margin / 2 - pdw / 2 + 2, mbuttons_y - 1); - x += 3 * get_image("autokeyframe")->get_w() + toggle_margin; + x += 2 * get_image("autokeyframe")->get_w() + toggle_margin; gui->draw_vframe(get_image("panel_divider"), x - toggle_margin / 2 - pdw / 2 + 2, mbuttons_y - 1); diff --git a/cinelerra-5.1/plugins/theme_cakewalk/data/autokeyframe.png b/cinelerra-5.1/plugins/theme_cakewalk/data/autokeyframe.png index df219a63..182f25ed 100644 Binary files a/cinelerra-5.1/plugins/theme_cakewalk/data/autokeyframe.png and b/cinelerra-5.1/plugins/theme_cakewalk/data/autokeyframe.png differ diff --git a/cinelerra-5.1/plugins/theme_cakewalk/data/cwindow_focus.png b/cinelerra-5.1/plugins/theme_cakewalk/data/cwindow_focus.png index 8fe07fc1..6f24f91d 100644 Binary files a/cinelerra-5.1/plugins/theme_cakewalk/data/cwindow_focus.png and b/cinelerra-5.1/plugins/theme_cakewalk/data/cwindow_focus.png differ diff --git a/cinelerra-5.1/plugins/theme_cakewalk/data/ecordgui_list.png b/cinelerra-5.1/plugins/theme_cakewalk/data/ecordgui_list.png deleted file mode 100644 index fa1aa410..00000000 Binary files a/cinelerra-5.1/plugins/theme_cakewalk/data/ecordgui_list.png and /dev/null differ diff --git a/cinelerra-5.1/plugins/theme_cakewalk/data/hardedge.png b/cinelerra-5.1/plugins/theme_cakewalk/data/hardedge.png index c3724eb3..6ecbb827 100644 Binary files a/cinelerra-5.1/plugins/theme_cakewalk/data/hardedge.png and b/cinelerra-5.1/plugins/theme_cakewalk/data/hardedge.png differ diff --git a/cinelerra-5.1/plugins/theme_cakewalk/data/ilebox_bigbutton_up.png b/cinelerra-5.1/plugins/theme_cakewalk/data/ilebox_bigbutton_up.png deleted file mode 100644 index a0b122c7..00000000 Binary files a/cinelerra-5.1/plugins/theme_cakewalk/data/ilebox_bigbutton_up.png and /dev/null differ diff --git a/cinelerra-5.1/plugins/theme_cakewalk/data/keyframe.png b/cinelerra-5.1/plugins/theme_cakewalk/data/keyframe.png index 10a18609..5465bf6d 100644 Binary files a/cinelerra-5.1/plugins/theme_cakewalk/data/keyframe.png and b/cinelerra-5.1/plugins/theme_cakewalk/data/keyframe.png differ diff --git a/cinelerra-5.1/plugins/theme_cakewalk/data/keyframe_dn.png b/cinelerra-5.1/plugins/theme_cakewalk/data/keyframe_dn.png deleted file mode 100644 index c559284d..00000000 Binary files a/cinelerra-5.1/plugins/theme_cakewalk/data/keyframe_dn.png and /dev/null differ diff --git a/cinelerra-5.1/plugins/theme_cakewalk/data/keyframe_hi.png b/cinelerra-5.1/plugins/theme_cakewalk/data/keyframe_hi.png deleted file mode 100644 index 8e3999cf..00000000 Binary files a/cinelerra-5.1/plugins/theme_cakewalk/data/keyframe_hi.png and /dev/null differ diff --git a/cinelerra-5.1/plugins/theme_cakewalk/data/keyframe_up.png b/cinelerra-5.1/plugins/theme_cakewalk/data/keyframe_up.png deleted file mode 100644 index f3b94fb7..00000000 Binary files a/cinelerra-5.1/plugins/theme_cakewalk/data/keyframe_up.png and /dev/null differ diff --git a/cinelerra-5.1/plugins/theme_cakewalk/data/mask_all_linear.png b/cinelerra-5.1/plugins/theme_cakewalk/data/mask_all_linear.png index f560cd2a..7999fead 100644 Binary files a/cinelerra-5.1/plugins/theme_cakewalk/data/mask_all_linear.png and b/cinelerra-5.1/plugins/theme_cakewalk/data/mask_all_linear.png differ diff --git a/cinelerra-5.1/plugins/theme_cakewalk/data/mask_all_smooth.png b/cinelerra-5.1/plugins/theme_cakewalk/data/mask_all_smooth.png index 71ad4cda..df2ffb0b 100644 Binary files a/cinelerra-5.1/plugins/theme_cakewalk/data/mask_all_smooth.png and b/cinelerra-5.1/plugins/theme_cakewalk/data/mask_all_smooth.png differ diff --git a/cinelerra-5.1/plugins/theme_cakewalk/data/mask_button_dn.png b/cinelerra-5.1/plugins/theme_cakewalk/data/mask_button_dn.png index 260d66a4..f4717d70 100644 Binary files a/cinelerra-5.1/plugins/theme_cakewalk/data/mask_button_dn.png and b/cinelerra-5.1/plugins/theme_cakewalk/data/mask_button_dn.png differ diff --git a/cinelerra-5.1/plugins/theme_cakewalk/data/mask_button_hi.png b/cinelerra-5.1/plugins/theme_cakewalk/data/mask_button_hi.png index d7a212f2..8fe64f2d 100644 Binary files a/cinelerra-5.1/plugins/theme_cakewalk/data/mask_button_hi.png and b/cinelerra-5.1/plugins/theme_cakewalk/data/mask_button_hi.png differ diff --git a/cinelerra-5.1/plugins/theme_cakewalk/data/mask_button_up.png b/cinelerra-5.1/plugins/theme_cakewalk/data/mask_button_up.png index 260d66a4..f4717d70 100644 Binary files a/cinelerra-5.1/plugins/theme_cakewalk/data/mask_button_up.png and b/cinelerra-5.1/plugins/theme_cakewalk/data/mask_button_up.png differ diff --git a/cinelerra-5.1/plugins/theme_cakewalk/data/mask_crv_linear.png b/cinelerra-5.1/plugins/theme_cakewalk/data/mask_crv_linear.png index 83361d35..b282a03e 100644 Binary files a/cinelerra-5.1/plugins/theme_cakewalk/data/mask_crv_linear.png and b/cinelerra-5.1/plugins/theme_cakewalk/data/mask_crv_linear.png differ diff --git a/cinelerra-5.1/plugins/theme_cakewalk/data/mask_crv_smooth.png b/cinelerra-5.1/plugins/theme_cakewalk/data/mask_crv_smooth.png index 07807051..6b419992 100644 Binary files a/cinelerra-5.1/plugins/theme_cakewalk/data/mask_crv_smooth.png and b/cinelerra-5.1/plugins/theme_cakewalk/data/mask_crv_smooth.png differ diff --git a/cinelerra-5.1/plugins/theme_cakewalk/data/mask_pnt_linear.png b/cinelerra-5.1/plugins/theme_cakewalk/data/mask_pnt_linear.png index 38e03e4c..e9ef2b08 100644 Binary files a/cinelerra-5.1/plugins/theme_cakewalk/data/mask_pnt_linear.png and b/cinelerra-5.1/plugins/theme_cakewalk/data/mask_pnt_linear.png differ diff --git a/cinelerra-5.1/plugins/theme_cakewalk/data/mask_pnt_smooth.png b/cinelerra-5.1/plugins/theme_cakewalk/data/mask_pnt_smooth.png index be94f5dd..7f2596d8 100644 Binary files a/cinelerra-5.1/plugins/theme_cakewalk/data/mask_pnt_smooth.png and b/cinelerra-5.1/plugins/theme_cakewalk/data/mask_pnt_smooth.png differ diff --git a/cinelerra-5.1/plugins/theme_cakewalk/data/mask_prst_crc.png b/cinelerra-5.1/plugins/theme_cakewalk/data/mask_prst_crc.png index 7adb5caf..c1b52c4a 100644 Binary files a/cinelerra-5.1/plugins/theme_cakewalk/data/mask_prst_crc.png and b/cinelerra-5.1/plugins/theme_cakewalk/data/mask_prst_crc.png differ diff --git a/cinelerra-5.1/plugins/theme_cakewalk/data/mask_prst_load.png b/cinelerra-5.1/plugins/theme_cakewalk/data/mask_prst_load.png index 69874df4..d3fe9ae6 100644 Binary files a/cinelerra-5.1/plugins/theme_cakewalk/data/mask_prst_load.png and b/cinelerra-5.1/plugins/theme_cakewalk/data/mask_prst_load.png differ diff --git a/cinelerra-5.1/plugins/theme_cakewalk/data/mask_prst_ovl.png b/cinelerra-5.1/plugins/theme_cakewalk/data/mask_prst_ovl.png index 1ecc4df6..78df3cd2 100644 Binary files a/cinelerra-5.1/plugins/theme_cakewalk/data/mask_prst_ovl.png and b/cinelerra-5.1/plugins/theme_cakewalk/data/mask_prst_ovl.png differ diff --git a/cinelerra-5.1/plugins/theme_cakewalk/data/mask_prst_save.png b/cinelerra-5.1/plugins/theme_cakewalk/data/mask_prst_save.png index ba96a790..290c8536 100644 Binary files a/cinelerra-5.1/plugins/theme_cakewalk/data/mask_prst_save.png and b/cinelerra-5.1/plugins/theme_cakewalk/data/mask_prst_save.png differ diff --git a/cinelerra-5.1/plugins/theme_cakewalk/data/mask_prst_sqr.png b/cinelerra-5.1/plugins/theme_cakewalk/data/mask_prst_sqr.png index f9294d17..9f0e1ea9 100644 Binary files a/cinelerra-5.1/plugins/theme_cakewalk/data/mask_prst_sqr.png and b/cinelerra-5.1/plugins/theme_cakewalk/data/mask_prst_sqr.png differ diff --git a/cinelerra-5.1/plugins/theme_cakewalk/data/mask_prst_trash.png b/cinelerra-5.1/plugins/theme_cakewalk/data/mask_prst_trash.png new file mode 100644 index 00000000..a82b9c09 Binary files /dev/null and b/cinelerra-5.1/plugins/theme_cakewalk/data/mask_prst_trash.png differ diff --git a/cinelerra-5.1/plugins/theme_cakewalk/data/mask_prst_tri.png b/cinelerra-5.1/plugins/theme_cakewalk/data/mask_prst_tri.png index 609c8f4d..1a75105a 100644 Binary files a/cinelerra-5.1/plugins/theme_cakewalk/data/mask_prst_tri.png and b/cinelerra-5.1/plugins/theme_cakewalk/data/mask_prst_tri.png differ diff --git a/cinelerra-5.1/plugins/theme_cakewalk/data/mask_prst_trsh.png b/cinelerra-5.1/plugins/theme_cakewalk/data/mask_prst_trsh.png index a89ec98e..a82b9c09 100644 Binary files a/cinelerra-5.1/plugins/theme_cakewalk/data/mask_prst_trsh.png and b/cinelerra-5.1/plugins/theme_cakewalk/data/mask_prst_trsh.png differ diff --git a/cinelerra-5.1/plugins/theme_cakewalk/data/mask_pstn_cen.png b/cinelerra-5.1/plugins/theme_cakewalk/data/mask_pstn_cen.png index 82146787..5dc9731e 100644 Binary files a/cinelerra-5.1/plugins/theme_cakewalk/data/mask_pstn_cen.png and b/cinelerra-5.1/plugins/theme_cakewalk/data/mask_pstn_cen.png differ diff --git a/cinelerra-5.1/plugins/theme_cakewalk/data/mask_pstn_nrm.png b/cinelerra-5.1/plugins/theme_cakewalk/data/mask_pstn_nrm.png index 4309d4e9..2e8d5062 100644 Binary files a/cinelerra-5.1/plugins/theme_cakewalk/data/mask_pstn_nrm.png and b/cinelerra-5.1/plugins/theme_cakewalk/data/mask_pstn_nrm.png differ diff --git a/cinelerra-5.1/plugins/theme_cakewalk/data/mask_scale_chkd.png b/cinelerra-5.1/plugins/theme_cakewalk/data/mask_scale_chkd.png index ccd5c55f..81b8b508 100644 Binary files a/cinelerra-5.1/plugins/theme_cakewalk/data/mask_scale_chkd.png and b/cinelerra-5.1/plugins/theme_cakewalk/data/mask_scale_chkd.png differ diff --git a/cinelerra-5.1/plugins/theme_cakewalk/data/mask_scale_chkdhi.png b/cinelerra-5.1/plugins/theme_cakewalk/data/mask_scale_chkdhi.png index 20d961a9..2354ab56 100644 Binary files a/cinelerra-5.1/plugins/theme_cakewalk/data/mask_scale_chkdhi.png and b/cinelerra-5.1/plugins/theme_cakewalk/data/mask_scale_chkdhi.png differ diff --git a/cinelerra-5.1/plugins/theme_cakewalk/data/mask_scale_up.png b/cinelerra-5.1/plugins/theme_cakewalk/data/mask_scale_up.png index 260d66a4..f4717d70 100644 Binary files a/cinelerra-5.1/plugins/theme_cakewalk/data/mask_scale_up.png and b/cinelerra-5.1/plugins/theme_cakewalk/data/mask_scale_up.png differ diff --git a/cinelerra-5.1/plugins/theme_cakewalk/data/mask_scale_uphi.png b/cinelerra-5.1/plugins/theme_cakewalk/data/mask_scale_uphi.png index d7a212f2..8fe64f2d 100644 Binary files a/cinelerra-5.1/plugins/theme_cakewalk/data/mask_scale_uphi.png and b/cinelerra-5.1/plugins/theme_cakewalk/data/mask_scale_uphi.png differ diff --git a/cinelerra-5.1/plugins/theme_cakewalk/data/mask_scale_x.png b/cinelerra-5.1/plugins/theme_cakewalk/data/mask_scale_x.png index 04ab49e1..76390344 100644 Binary files a/cinelerra-5.1/plugins/theme_cakewalk/data/mask_scale_x.png and b/cinelerra-5.1/plugins/theme_cakewalk/data/mask_scale_x.png differ diff --git a/cinelerra-5.1/plugins/theme_cakewalk/data/mask_scale_xdown.png b/cinelerra-5.1/plugins/theme_cakewalk/data/mask_scale_xdown.png index bf89bffb..81ee82fc 100644 Binary files a/cinelerra-5.1/plugins/theme_cakewalk/data/mask_scale_xdown.png and b/cinelerra-5.1/plugins/theme_cakewalk/data/mask_scale_xdown.png differ diff --git a/cinelerra-5.1/plugins/theme_cakewalk/data/mask_scale_xy.png b/cinelerra-5.1/plugins/theme_cakewalk/data/mask_scale_xy.png index 57f4405a..3f8c1a97 100644 Binary files a/cinelerra-5.1/plugins/theme_cakewalk/data/mask_scale_xy.png and b/cinelerra-5.1/plugins/theme_cakewalk/data/mask_scale_xy.png differ diff --git a/cinelerra-5.1/plugins/theme_cakewalk/data/mask_scale_xydown.png b/cinelerra-5.1/plugins/theme_cakewalk/data/mask_scale_xydown.png index eaa1cfe8..8e6456d8 100644 Binary files a/cinelerra-5.1/plugins/theme_cakewalk/data/mask_scale_xydown.png and b/cinelerra-5.1/plugins/theme_cakewalk/data/mask_scale_xydown.png differ diff --git a/cinelerra-5.1/plugins/theme_cakewalk/data/mask_scale_y.png b/cinelerra-5.1/plugins/theme_cakewalk/data/mask_scale_y.png index 85f14909..dc7cdd1e 100644 Binary files a/cinelerra-5.1/plugins/theme_cakewalk/data/mask_scale_y.png and b/cinelerra-5.1/plugins/theme_cakewalk/data/mask_scale_y.png differ diff --git a/cinelerra-5.1/plugins/theme_cakewalk/data/mask_scale_ydown.png b/cinelerra-5.1/plugins/theme_cakewalk/data/mask_scale_ydown.png index 7755be41..845b6b3e 100644 Binary files a/cinelerra-5.1/plugins/theme_cakewalk/data/mask_scale_ydown.png and b/cinelerra-5.1/plugins/theme_cakewalk/data/mask_scale_ydown.png differ diff --git a/cinelerra-5.1/plugins/theme_cakewalk/data/rect3597-9-2-4.png b/cinelerra-5.1/plugins/theme_cakewalk/data/rect3597-9-2-4.png deleted file mode 100644 index 458d4c16..00000000 Binary files a/cinelerra-5.1/plugins/theme_cakewalk/data/rect3597-9-2-4.png and /dev/null differ diff --git a/cinelerra-5.1/plugins/theme_cakewalk/data/reset_dn.png b/cinelerra-5.1/plugins/theme_cakewalk/data/reset_dn.png index c559284d..79edcd73 100644 Binary files a/cinelerra-5.1/plugins/theme_cakewalk/data/reset_dn.png and b/cinelerra-5.1/plugins/theme_cakewalk/data/reset_dn.png differ diff --git a/cinelerra-5.1/plugins/theme_cakewalk/data/reset_hi.png b/cinelerra-5.1/plugins/theme_cakewalk/data/reset_hi.png index 8e3999cf..a741760e 100644 Binary files a/cinelerra-5.1/plugins/theme_cakewalk/data/reset_hi.png and b/cinelerra-5.1/plugins/theme_cakewalk/data/reset_hi.png differ diff --git a/cinelerra-5.1/plugins/theme_cakewalk/data/spankeyframe.png b/cinelerra-5.1/plugins/theme_cakewalk/data/spankeyframe.png index 17cdb983..8497e20a 100644 Binary files a/cinelerra-5.1/plugins/theme_cakewalk/data/spankeyframe.png and b/cinelerra-5.1/plugins/theme_cakewalk/data/spankeyframe.png differ diff --git a/cinelerra-5.1/plugins/theme_cakewalk/data/unclear.png b/cinelerra-5.1/plugins/theme_cakewalk/data/unclear.png index e24890da..f3b56873 100644 Binary files a/cinelerra-5.1/plugins/theme_cakewalk/data/unclear.png and b/cinelerra-5.1/plugins/theme_cakewalk/data/unclear.png differ diff --git a/cinelerra-5.1/plugins/theme_cakewalk/data/unclear_dn.png b/cinelerra-5.1/plugins/theme_cakewalk/data/unclear_dn.png index 260d66a4..f4717d70 100644 Binary files a/cinelerra-5.1/plugins/theme_cakewalk/data/unclear_dn.png and b/cinelerra-5.1/plugins/theme_cakewalk/data/unclear_dn.png differ diff --git a/cinelerra-5.1/plugins/theme_cakewalk/data/unclear_hi.png b/cinelerra-5.1/plugins/theme_cakewalk/data/unclear_hi.png index d7a212f2..8fe64f2d 100644 Binary files a/cinelerra-5.1/plugins/theme_cakewalk/data/unclear_hi.png and b/cinelerra-5.1/plugins/theme_cakewalk/data/unclear_hi.png differ diff --git a/cinelerra-5.1/plugins/theme_cakewalk/data/unclear_up.png b/cinelerra-5.1/plugins/theme_cakewalk/data/unclear_up.png index 260d66a4..f4717d70 100644 Binary files a/cinelerra-5.1/plugins/theme_cakewalk/data/unclear_up.png and b/cinelerra-5.1/plugins/theme_cakewalk/data/unclear_up.png differ diff --git a/cinelerra-5.1/plugins/theme_cakewalk/mask_all_linear.png b/cinelerra-5.1/plugins/theme_cakewalk/mask_all_linear.png deleted file mode 100644 index f560cd2a..00000000 Binary files a/cinelerra-5.1/plugins/theme_cakewalk/mask_all_linear.png and /dev/null differ diff --git a/cinelerra-5.1/plugins/theme_cakewalk/mask_all_smooth.png b/cinelerra-5.1/plugins/theme_cakewalk/mask_all_smooth.png deleted file mode 100644 index 71ad4cda..00000000 Binary files a/cinelerra-5.1/plugins/theme_cakewalk/mask_all_smooth.png and /dev/null differ diff --git a/cinelerra-5.1/plugins/theme_cakewalk/mask_button_dn.png b/cinelerra-5.1/plugins/theme_cakewalk/mask_button_dn.png deleted file mode 100644 index 260d66a4..00000000 Binary files a/cinelerra-5.1/plugins/theme_cakewalk/mask_button_dn.png and /dev/null differ diff --git a/cinelerra-5.1/plugins/theme_cakewalk/mask_button_hi.png b/cinelerra-5.1/plugins/theme_cakewalk/mask_button_hi.png deleted file mode 100644 index d7a212f2..00000000 Binary files a/cinelerra-5.1/plugins/theme_cakewalk/mask_button_hi.png and /dev/null differ diff --git a/cinelerra-5.1/plugins/theme_cakewalk/mask_button_up.png b/cinelerra-5.1/plugins/theme_cakewalk/mask_button_up.png deleted file mode 100644 index 260d66a4..00000000 Binary files a/cinelerra-5.1/plugins/theme_cakewalk/mask_button_up.png and /dev/null differ diff --git a/cinelerra-5.1/plugins/theme_cakewalk/mask_crv_linear.png b/cinelerra-5.1/plugins/theme_cakewalk/mask_crv_linear.png deleted file mode 100644 index 83361d35..00000000 Binary files a/cinelerra-5.1/plugins/theme_cakewalk/mask_crv_linear.png and /dev/null differ diff --git a/cinelerra-5.1/plugins/theme_cakewalk/mask_crv_smooth.png b/cinelerra-5.1/plugins/theme_cakewalk/mask_crv_smooth.png deleted file mode 100644 index 07807051..00000000 Binary files a/cinelerra-5.1/plugins/theme_cakewalk/mask_crv_smooth.png and /dev/null differ diff --git a/cinelerra-5.1/plugins/theme_cakewalk/mask_pnt_linear.png b/cinelerra-5.1/plugins/theme_cakewalk/mask_pnt_linear.png deleted file mode 100644 index 38e03e4c..00000000 Binary files a/cinelerra-5.1/plugins/theme_cakewalk/mask_pnt_linear.png and /dev/null differ diff --git a/cinelerra-5.1/plugins/theme_cakewalk/mask_pnt_smooth.png b/cinelerra-5.1/plugins/theme_cakewalk/mask_pnt_smooth.png deleted file mode 100644 index be94f5dd..00000000 Binary files a/cinelerra-5.1/plugins/theme_cakewalk/mask_pnt_smooth.png and /dev/null differ diff --git a/cinelerra-5.1/plugins/theme_cakewalk/mask_prst_crc.png b/cinelerra-5.1/plugins/theme_cakewalk/mask_prst_crc.png deleted file mode 100644 index 7adb5caf..00000000 Binary files a/cinelerra-5.1/plugins/theme_cakewalk/mask_prst_crc.png and /dev/null differ diff --git a/cinelerra-5.1/plugins/theme_cakewalk/mask_prst_load.png b/cinelerra-5.1/plugins/theme_cakewalk/mask_prst_load.png deleted file mode 100644 index 69874df4..00000000 Binary files a/cinelerra-5.1/plugins/theme_cakewalk/mask_prst_load.png and /dev/null differ diff --git a/cinelerra-5.1/plugins/theme_cakewalk/mask_prst_ovl.png b/cinelerra-5.1/plugins/theme_cakewalk/mask_prst_ovl.png deleted file mode 100644 index 1ecc4df6..00000000 Binary files a/cinelerra-5.1/plugins/theme_cakewalk/mask_prst_ovl.png and /dev/null differ diff --git a/cinelerra-5.1/plugins/theme_cakewalk/mask_prst_save.png b/cinelerra-5.1/plugins/theme_cakewalk/mask_prst_save.png deleted file mode 100644 index ba96a790..00000000 Binary files a/cinelerra-5.1/plugins/theme_cakewalk/mask_prst_save.png and /dev/null differ diff --git a/cinelerra-5.1/plugins/theme_cakewalk/mask_prst_sqr.png b/cinelerra-5.1/plugins/theme_cakewalk/mask_prst_sqr.png deleted file mode 100644 index f9294d17..00000000 Binary files a/cinelerra-5.1/plugins/theme_cakewalk/mask_prst_sqr.png and /dev/null differ diff --git a/cinelerra-5.1/plugins/theme_cakewalk/mask_prst_tri.png b/cinelerra-5.1/plugins/theme_cakewalk/mask_prst_tri.png deleted file mode 100644 index 609c8f4d..00000000 Binary files a/cinelerra-5.1/plugins/theme_cakewalk/mask_prst_tri.png and /dev/null differ diff --git a/cinelerra-5.1/plugins/theme_cakewalk/mask_prst_trsh.png b/cinelerra-5.1/plugins/theme_cakewalk/mask_prst_trsh.png deleted file mode 100644 index a89ec98e..00000000 Binary files a/cinelerra-5.1/plugins/theme_cakewalk/mask_prst_trsh.png and /dev/null differ diff --git a/cinelerra-5.1/plugins/theme_cakewalk/mask_pstn_cen.png b/cinelerra-5.1/plugins/theme_cakewalk/mask_pstn_cen.png deleted file mode 100644 index 82146787..00000000 Binary files a/cinelerra-5.1/plugins/theme_cakewalk/mask_pstn_cen.png and /dev/null differ diff --git a/cinelerra-5.1/plugins/theme_cakewalk/mask_pstn_nrm.png b/cinelerra-5.1/plugins/theme_cakewalk/mask_pstn_nrm.png deleted file mode 100644 index 4309d4e9..00000000 Binary files a/cinelerra-5.1/plugins/theme_cakewalk/mask_pstn_nrm.png and /dev/null differ diff --git a/cinelerra-5.1/plugins/theme_cakewalk/mask_scale_chkd.png b/cinelerra-5.1/plugins/theme_cakewalk/mask_scale_chkd.png deleted file mode 100644 index ccd5c55f..00000000 Binary files a/cinelerra-5.1/plugins/theme_cakewalk/mask_scale_chkd.png and /dev/null differ diff --git a/cinelerra-5.1/plugins/theme_cakewalk/mask_scale_chkdhi.png b/cinelerra-5.1/plugins/theme_cakewalk/mask_scale_chkdhi.png deleted file mode 100644 index 20d961a9..00000000 Binary files a/cinelerra-5.1/plugins/theme_cakewalk/mask_scale_chkdhi.png and /dev/null differ diff --git a/cinelerra-5.1/plugins/theme_cakewalk/mask_scale_up.png b/cinelerra-5.1/plugins/theme_cakewalk/mask_scale_up.png deleted file mode 100644 index 260d66a4..00000000 Binary files a/cinelerra-5.1/plugins/theme_cakewalk/mask_scale_up.png and /dev/null differ diff --git a/cinelerra-5.1/plugins/theme_cakewalk/mask_scale_uphi.png b/cinelerra-5.1/plugins/theme_cakewalk/mask_scale_uphi.png deleted file mode 100644 index d7a212f2..00000000 Binary files a/cinelerra-5.1/plugins/theme_cakewalk/mask_scale_uphi.png and /dev/null differ diff --git a/cinelerra-5.1/plugins/theme_cakewalk/mask_scale_x.png b/cinelerra-5.1/plugins/theme_cakewalk/mask_scale_x.png deleted file mode 100644 index 04ab49e1..00000000 Binary files a/cinelerra-5.1/plugins/theme_cakewalk/mask_scale_x.png and /dev/null differ diff --git a/cinelerra-5.1/plugins/theme_cakewalk/mask_scale_xdown.png b/cinelerra-5.1/plugins/theme_cakewalk/mask_scale_xdown.png deleted file mode 100644 index bf89bffb..00000000 Binary files a/cinelerra-5.1/plugins/theme_cakewalk/mask_scale_xdown.png and /dev/null differ diff --git a/cinelerra-5.1/plugins/theme_cakewalk/mask_scale_xy.png b/cinelerra-5.1/plugins/theme_cakewalk/mask_scale_xy.png deleted file mode 100644 index 57f4405a..00000000 Binary files a/cinelerra-5.1/plugins/theme_cakewalk/mask_scale_xy.png and /dev/null differ diff --git a/cinelerra-5.1/plugins/theme_cakewalk/mask_scale_xydown.png b/cinelerra-5.1/plugins/theme_cakewalk/mask_scale_xydown.png deleted file mode 100644 index eaa1cfe8..00000000 Binary files a/cinelerra-5.1/plugins/theme_cakewalk/mask_scale_xydown.png and /dev/null differ diff --git a/cinelerra-5.1/plugins/theme_cakewalk/mask_scale_y.png b/cinelerra-5.1/plugins/theme_cakewalk/mask_scale_y.png deleted file mode 100644 index 85f14909..00000000 Binary files a/cinelerra-5.1/plugins/theme_cakewalk/mask_scale_y.png and /dev/null differ diff --git a/cinelerra-5.1/plugins/theme_cakewalk/mask_scale_ydown.png b/cinelerra-5.1/plugins/theme_cakewalk/mask_scale_ydown.png deleted file mode 100644 index 7755be41..00000000 Binary files a/cinelerra-5.1/plugins/theme_cakewalk/mask_scale_ydown.png and /dev/null differ diff --git a/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/mask_all_linear.svg b/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/mask_all_linear.svg deleted file mode 100644 index 1419d13b..00000000 --- a/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/mask_all_linear.svg +++ /dev/null @@ -1,409 +0,0 @@ - - - - - Buttons for Cinelerra Mask Tool - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - Buttons for Cinelerra Mask Tool - - 2019-07-xx - - - Copyleft - - - - - IgorBeg - - - - - - - - - - - - - - - - - - - - - - - diff --git a/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/mask_all_smooth.svg b/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/mask_all_smooth.svg deleted file mode 100644 index 19acd170..00000000 --- a/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/mask_all_smooth.svg +++ /dev/null @@ -1,457 +0,0 @@ - - - - - Buttons for Cinelerra Mask Tool - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - Buttons for Cinelerra Mask Tool - - 2019-07-xx - - - Copyleft - - - - - IgorBeg - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/mask_button_dn.svg b/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/mask_button_dn.svg deleted file mode 100644 index ca200ff2..00000000 --- a/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/mask_button_dn.svg +++ /dev/null @@ -1,356 +0,0 @@ - - - - - Buttons for Cinelerra Mask Tool - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - Buttons for Cinelerra Mask Tool - - 2019-07-xx - - - Copyleft - - - - - IgorBeg - - - - - - - - - - - - - - diff --git a/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/mask_button_hi.svg b/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/mask_button_hi.svg deleted file mode 100644 index 7ead9619..00000000 --- a/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/mask_button_hi.svg +++ /dev/null @@ -1,356 +0,0 @@ - - - - - Buttons for Cinelerra Mask Tool - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - Buttons for Cinelerra Mask Tool - - 2019-07-xx - - - Copyleft - - - - - IgorBeg - - - - - - - - - - - - - - diff --git a/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/mask_button_up.svg b/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/mask_button_up.svg deleted file mode 100644 index 7d2d83ef..00000000 --- a/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/mask_button_up.svg +++ /dev/null @@ -1,356 +0,0 @@ - - - - - Buttons for Cinelerra Mask Tool - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - Buttons for Cinelerra Mask Tool - - 2019-07-xx - - - Copyleft - - - - - IgorBeg - - - - - - - - - - - - - - diff --git a/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/mask_crv_linear.svg b/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/mask_crv_linear.svg deleted file mode 100644 index 02faedfc..00000000 --- a/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/mask_crv_linear.svg +++ /dev/null @@ -1,343 +0,0 @@ - - - - - Buttons for Cinelerra Mask Tool - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - Buttons for Cinelerra Mask Tool - - 2019-07-xx - - - Copyleft - - - - - IgorBeg - - - - - - - - - - - - - - - - - - - - diff --git a/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/mask_crv_smooth.svg b/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/mask_crv_smooth.svg deleted file mode 100644 index f58449d7..00000000 --- a/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/mask_crv_smooth.svg +++ /dev/null @@ -1,402 +0,0 @@ - - - - - Buttons for Cinelerra Mask Tool - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - Buttons for Cinelerra Mask Tool - - 2019-07-xx - - - Copyleft - - - - - IgorBeg - - - - - - - - - - - - - - - - - - - - - - - diff --git a/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/mask_pnt_linear.svg b/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/mask_pnt_linear.svg deleted file mode 100644 index 1f742087..00000000 --- a/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/mask_pnt_linear.svg +++ /dev/null @@ -1,335 +0,0 @@ - - - - - Buttons for Cinelerra Mask Tool - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - Buttons for Cinelerra Mask Tool - - 2019-07-xx - - - Copyleft - - - - - IgorBeg - - - - - - - - - - - - - - - - - - - diff --git a/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/mask_pnt_smooth.svg b/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/mask_pnt_smooth.svg deleted file mode 100644 index 2d7e2eed..00000000 --- a/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/mask_pnt_smooth.svg +++ /dev/null @@ -1,393 +0,0 @@ - - - - - Buttons for Cinelerra Mask Tool - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - Buttons for Cinelerra Mask Tool - - 2019-07-xx - - - Copyleft - - - - - IgorBeg - - - - - - - - - - - - - - - - - - - - - - diff --git a/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/mask_prst_crc.svg b/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/mask_prst_crc.svg deleted file mode 100644 index 772e9501..00000000 --- a/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/mask_prst_crc.svg +++ /dev/null @@ -1,358 +0,0 @@ - - - - - Buttons for Cinelerra Mask Tool - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - Buttons for Cinelerra Mask Tool - - 2019-07-xx - - - Copyleft - - - - - IgorBeg - - - - - - - - - - - - - - diff --git a/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/mask_prst_load.svg b/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/mask_prst_load.svg deleted file mode 100644 index 7e6608b9..00000000 --- a/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/mask_prst_load.svg +++ /dev/null @@ -1,394 +0,0 @@ - - - - - Buttons for Cinelerra Mask Tool - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - Buttons for Cinelerra Mask Tool - - 2019-07-xx - - - Copyleft - - - - - IgorBeg - - - - - - - - - - - - - - - - - - - - diff --git a/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/mask_prst_ovl.svg b/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/mask_prst_ovl.svg deleted file mode 100644 index d269c0ba..00000000 --- a/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/mask_prst_ovl.svg +++ /dev/null @@ -1,356 +0,0 @@ - - - - - Buttons for Cinelerra Mask Tool - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - Buttons for Cinelerra Mask Tool - - 2019-07-xx - - - Copyleft - - - - - IgorBeg - - - - - - - - - - - - - - diff --git a/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/mask_prst_save.svg b/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/mask_prst_save.svg deleted file mode 100644 index 41cc7866..00000000 --- a/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/mask_prst_save.svg +++ /dev/null @@ -1,394 +0,0 @@ - - - - - Buttons for Cinelerra Mask Tool - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - Buttons for Cinelerra Mask Tool - - 2019-07-xx - - - Copyleft - - - - - IgorBeg - - - - - - - - - - - - - - - - - - - - diff --git a/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/mask_prst_sqr.svg b/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/mask_prst_sqr.svg deleted file mode 100644 index e25db347..00000000 --- a/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/mask_prst_sqr.svg +++ /dev/null @@ -1,356 +0,0 @@ - - - - - Buttons for Cinelerra Mask Tool - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - Buttons for Cinelerra Mask Tool - - 2019-07-xx - - - Copyleft - - - - - IgorBeg - - - - - - - - - - - - - - diff --git a/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/mask_prst_trash.svg b/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/mask_prst_trash.svg deleted file mode 100644 index 8083a0f9..00000000 --- a/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/mask_prst_trash.svg +++ /dev/null @@ -1,394 +0,0 @@ - - - - - Buttons for Cinelerra Mask Tool - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - Buttons for Cinelerra Mask Tool - - 2019-07-xx - - - Copyleft - - - - - IgorBeg - - - - - - - - - - - - - - - - - - - - diff --git a/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/mask_prst_tri.svg b/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/mask_prst_tri.svg deleted file mode 100644 index 6032fcf9..00000000 --- a/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/mask_prst_tri.svg +++ /dev/null @@ -1,354 +0,0 @@ - - - - - Buttons for Cinelerra Mask Tool - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - Buttons for Cinelerra Mask Tool - - 2019-07-xx - - - Copyleft - - - - - IgorBeg - - - - - - - - - - - - - - diff --git a/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/mask_pstn_cen.svg b/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/mask_pstn_cen.svg deleted file mode 100644 index 428239ef..00000000 --- a/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/mask_pstn_cen.svg +++ /dev/null @@ -1,376 +0,0 @@ - - - - - Buttons for Cinelerra Mask Tool - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - Buttons for Cinelerra Mask Tool - - 2019-07-xx - - - Copyleft - - - - - IgorBeg - - - - - - - - - - - - - - - - - - diff --git a/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/mask_pstn_nrm.svg b/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/mask_pstn_nrm.svg deleted file mode 100644 index 2934b2c5..00000000 --- a/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/mask_pstn_nrm.svg +++ /dev/null @@ -1,413 +0,0 @@ - - - - - Buttons for Cinelerra Mask Tool - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - Buttons for Cinelerra Mask Tool - - 2019-07-xx - - - Copyleft - - - - - IgorBeg - - - - - - - - - - - - - - - - - - - - - - diff --git a/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/mask_scale_chkd.svg b/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/mask_scale_chkd.svg deleted file mode 100644 index 4f9922ba..00000000 --- a/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/mask_scale_chkd.svg +++ /dev/null @@ -1,374 +0,0 @@ - - - - - Buttons for Cinelerra Mask Tool - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - Buttons for Cinelerra Mask Tool - - 2019-07-xx - - - Copyleft - - - - - IgorBeg - - - - - - - - - - - - - - - - - diff --git a/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/mask_scale_chkdhi.svg b/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/mask_scale_chkdhi.svg deleted file mode 100644 index eaae9a30..00000000 --- a/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/mask_scale_chkdhi.svg +++ /dev/null @@ -1,356 +0,0 @@ - - - - - Buttons for Cinelerra Mask Tool - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - Buttons for Cinelerra Mask Tool - - 2019-07-xx - - - Copyleft - - - - - IgorBeg - - - - - - - - - - - - - - diff --git a/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/mask_scale_up.svg b/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/mask_scale_up.svg deleted file mode 100644 index 4f47b1b4..00000000 --- a/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/mask_scale_up.svg +++ /dev/null @@ -1,356 +0,0 @@ - - - - - Buttons for Cinelerra Mask Tool - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - Buttons for Cinelerra Mask Tool - - 2019-07-xx - - - Copyleft - - - - - IgorBeg - - - - - - - - - - - - - - diff --git a/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/mask_scale_uphi.svg b/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/mask_scale_uphi.svg deleted file mode 100644 index 3419ba3b..00000000 --- a/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/mask_scale_uphi.svg +++ /dev/null @@ -1,356 +0,0 @@ - - - - - Buttons for Cinelerra Mask Tool - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - Buttons for Cinelerra Mask Tool - - 2019-07-xx - - - Copyleft - - - - - IgorBeg - - - - - - - - - - - - - - diff --git a/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/mask_scale_x.svg b/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/mask_scale_x.svg deleted file mode 100644 index d44cec8d..00000000 --- a/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/mask_scale_x.svg +++ /dev/null @@ -1,367 +0,0 @@ - - - - - Buttons for Cinelerra Mask Tool - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - Buttons for Cinelerra Mask Tool - - 2019-07-xx - - - Copyleft - - - - - IgorBeg - - - - - - - - - - - - - - - - - diff --git a/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/mask_scale_xdown.svg b/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/mask_scale_xdown.svg deleted file mode 100644 index aeff2edc..00000000 --- a/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/mask_scale_xdown.svg +++ /dev/null @@ -1,378 +0,0 @@ - - - - - Buttons for Cinelerra Mask Tool - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - Buttons for Cinelerra Mask Tool - - 2019-07-xx - - - Copyleft - - - - - IgorBeg - - - - - - - - - - - - - - - - - - diff --git a/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/mask_scale_xy.svg b/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/mask_scale_xy.svg deleted file mode 100644 index b935c539..00000000 --- a/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/mask_scale_xy.svg +++ /dev/null @@ -1,387 +0,0 @@ - - - - - Buttons for Cinelerra Mask Tool - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - Buttons for Cinelerra Mask Tool - - 2019-07-xx - - - Copyleft - - - - - IgorBeg - - - - - - - - - - - - - - - - - - - - - diff --git a/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/mask_scale_xydown.svg b/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/mask_scale_xydown.svg deleted file mode 100644 index d853d5c7..00000000 --- a/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/mask_scale_xydown.svg +++ /dev/null @@ -1,398 +0,0 @@ - - - - - Buttons for Cinelerra Mask Tool - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - Buttons for Cinelerra Mask Tool - - 2019-07-xx - - - Copyleft - - - - - IgorBeg - - - - - - - - - - - - - - - - - - - - - - diff --git a/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/mask_scale_y.svg b/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/mask_scale_y.svg deleted file mode 100644 index 54ba78e8..00000000 --- a/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/mask_scale_y.svg +++ /dev/null @@ -1,367 +0,0 @@ - - - - - Buttons for Cinelerra Mask Tool - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - Buttons for Cinelerra Mask Tool - - 2019-07-xx - - - Copyleft - - - - - IgorBeg - - - - - - - - - - - - - - - - - diff --git a/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/mask_scale_ydown.svg b/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/mask_scale_ydown.svg deleted file mode 100644 index e565c58b..00000000 --- a/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/mask_scale_ydown.svg +++ /dev/null @@ -1,378 +0,0 @@ - - - - - Buttons for Cinelerra Mask Tool - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - Buttons for Cinelerra Mask Tool - - 2019-07-xx - - - Copyleft - - - - - IgorBeg - - - - - - - - - - - - - - - - - - diff --git a/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/unclear.svg b/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/unclear.svg deleted file mode 100644 index 3806fd48..00000000 --- a/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/unclear.svg +++ /dev/null @@ -1,366 +0,0 @@ - - - - - Buttons for Cinelerra Mask Tool - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - Buttons for Cinelerra Mask Tool - - 2019-07-xx - - - Copyleft - - - - - IgorBeg - - - - - - - - - - - - - - - - - diff --git a/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/unclear_dn.svg b/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/unclear_dn.svg deleted file mode 100644 index ca200ff2..00000000 --- a/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/unclear_dn.svg +++ /dev/null @@ -1,356 +0,0 @@ - - - - - Buttons for Cinelerra Mask Tool - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - Buttons for Cinelerra Mask Tool - - 2019-07-xx - - - Copyleft - - - - - IgorBeg - - - - - - - - - - - - - - diff --git a/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/unclear_hi.svg b/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/unclear_hi.svg deleted file mode 100644 index 7ead9619..00000000 --- a/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/unclear_hi.svg +++ /dev/null @@ -1,356 +0,0 @@ - - - - - Buttons for Cinelerra Mask Tool - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - Buttons for Cinelerra Mask Tool - - 2019-07-xx - - - Copyleft - - - - - IgorBeg - - - - - - - - - - - - - - diff --git a/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/unclear_up.svg b/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/unclear_up.svg deleted file mode 100644 index 7d2d83ef..00000000 --- a/cinelerra-5.1/plugins/theme_cakewalk/source_SVG/unclear_up.svg +++ /dev/null @@ -1,356 +0,0 @@ - - - - - Buttons for Cinelerra Mask Tool - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - Buttons for Cinelerra Mask Tool - - 2019-07-xx - - - Copyleft - - - - - IgorBeg - - - - - - - - - - - - - - diff --git a/cinelerra-5.1/plugins/theme_cakewalk/unclear.png b/cinelerra-5.1/plugins/theme_cakewalk/unclear.png deleted file mode 100644 index e24890da..00000000 Binary files a/cinelerra-5.1/plugins/theme_cakewalk/unclear.png and /dev/null differ diff --git a/cinelerra-5.1/plugins/theme_cakewalk/unclear_dn.png b/cinelerra-5.1/plugins/theme_cakewalk/unclear_dn.png deleted file mode 100644 index 260d66a4..00000000 Binary files a/cinelerra-5.1/plugins/theme_cakewalk/unclear_dn.png and /dev/null differ diff --git a/cinelerra-5.1/plugins/theme_cakewalk/unclear_hi.png b/cinelerra-5.1/plugins/theme_cakewalk/unclear_hi.png deleted file mode 100644 index d7a212f2..00000000 Binary files a/cinelerra-5.1/plugins/theme_cakewalk/unclear_hi.png and /dev/null differ diff --git a/cinelerra-5.1/plugins/theme_cakewalk/unclear_up.png b/cinelerra-5.1/plugins/theme_cakewalk/unclear_up.png deleted file mode 100644 index 260d66a4..00000000 Binary files a/cinelerra-5.1/plugins/theme_cakewalk/unclear_up.png and /dev/null differ diff --git a/cinelerra-5.1/thirdparty/Makefile b/cinelerra-5.1/thirdparty/Makefile index 846a843f..25d654e4 100644 --- a/cinelerra-5.1/thirdparty/Makefile +++ b/cinelerra-5.1/thirdparty/Makefile @@ -55,12 +55,12 @@ bld_depends=$(if $(ver_$(1)),$(call pkg-built,$(1))) bld_path=$(ver_$(1))/$(2) if_pkg=$(if $(ver_$(1)),$(2),$(3)) if_npkg=$(if $(ver_$(1)),,$(2)) -if_shr=$(if $(findstring $(1),$(shared_pkgs)),$(2),$(3)) +if_shr=$(if $(filter $(1),$(shared_pkgs)),$(2),$(3)) pkg_conf=$(call if_shr,$(1),$(foreach p,$(pc_$(1)), $(shell pkg-config 2> /dev/null $(2) $(p)))) inc_path=$(call if_pkg,$(1),$(inc_$(1)), $(call pkg_conf,$(1),--cflags)) ld_path=$(call if_pkg,$(1),-L$(call bld_path,$(1),$(2)) $(lib_$(1))) -if_ena=$(if $(or $(ver_$(1)),$(findstring $(1),$(shared_pkgs))),$(2)) -if_want=$(if $(findstring x$(WANT_$(1)),xyes),$(2),$(3)) +if_ena=$(if $(or $(ver_$(1)),$(filter $(1),$(shared_pkgs))),$(2)) +if_want=$(if $(filter x$(WANT_$(1)),xyes),$(2),$(3)) #$(eval $(call std-build,pkg,deps...)) #$(pkg.cflags) added as CFLAGS+=$(cflags) to pkg.vars