X-Git-Url: http://git.cinelerra-gg.org/git/?p=goodguy%2Fhistory.git;a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fpreferences.C;h=5f9d40ea241dc280b8181a5a357ec0b2248fd937;hp=edeee836eb0be3cde6a579c29398eadc35a9458c;hb=502b6f3b6fd04f6b01c6d70dcb81aa304dd0db1c;hpb=74afbc29ac4ce9d94d53e10342979f2c59f1f193 diff --git a/cinelerra-5.1/cinelerra/preferences.C b/cinelerra-5.1/cinelerra/preferences.C index edeee836..5f9d40ea 100644 --- a/cinelerra-5.1/cinelerra/preferences.C +++ b/cinelerra-5.1/cinelerra/preferences.C @@ -40,32 +40,32 @@ #include "videoconfig.h" #include "videodevice.inc" +#include #include #include #include #include -//#define CLAMP(x, y, z) (x) = ((x) < (y) ? (y) : ((x) > (z) ? (z) : (x))) - Preferences::Preferences() { // Set defaults FileSystem fs; - preferences_lock = new Mutex("Preferences::preferences_lock"); - // initial plugin path from build -DPLUGIN_DIR="..." sprintf(plugin_dir, "%s/", File::get_plugin_path()); sprintf(index_directory, "%s/", File::get_config_path()); - if(strlen(index_directory)) + if( strlen(index_directory) ) fs.complete_path(index_directory); cache_size = 0x10000000; index_size = 0x400000; index_count = 500; use_thumbnails = 1; keyframe_reticle = HAIRLINE_DRAGGING; + perpetual_session = 0; + strcpy(lv2_path, DEFAULT_LV2_PATH); + autostart_lv2ui = 0; trap_sigsegv = 1; trap_sigintr = 1; theme[0] = 0; @@ -79,6 +79,7 @@ Preferences::Preferences() renderfarm_mountpoint[0] = 0; renderfarm_vfs = 0; renderfarm_job_count = 20; + renderfarm_watchdog_timeout = 60; project_smp = processors = calculate_processors(0); real_processors = calculate_processors(1); ffmpeg_marker_indexes = 1; @@ -91,8 +92,8 @@ Preferences::Preferences() forward_render_displacement = 0; dvd_yuv420p_interlace = 0; highlight_inverse = 0xffffff; - yuv_color_space = 0; // bt601 - yuv_color_range = 0; // jpeg + yuv_color_space = BC_COLORS_BT601; + yuv_color_range = BC_COLORS_JPEG; // Default brender asset brender_asset = new Asset; @@ -138,26 +139,19 @@ void Preferences::copy_rates_from(Preferences *preferences) // one of the nodes in the source is the master node. local_rate = preferences->local_rate; - for(int j = 0; - j < preferences->renderfarm_nodes.total; - j++) - { + for( int j=0; jrenderfarm_nodes.total; ++j ) { double new_rate = preferences->renderfarm_rate.values[j]; // Put in the master node - if(preferences->renderfarm_nodes.values[j][0] == '/') - { - if(!EQUIV(new_rate, 0.0)) + if( preferences->renderfarm_nodes.values[j][0] == '/' ) { + if( !EQUIV(new_rate, 0.0) ) local_rate = new_rate; } else // Search for local node and copy it to that node - if(!EQUIV(new_rate, 0.0)) - { - for(int i = 0; i < renderfarm_nodes.total; i++) - { - if(!strcmp(preferences->renderfarm_nodes.values[j], renderfarm_nodes.values[i]) && - preferences->renderfarm_ports.values[j] == renderfarm_ports.values[i]) - { + if( !EQUIV(new_rate, 0.0) ) { + for( int i=0; irenderfarm_nodes.values[j], renderfarm_nodes.values[i]) && + preferences->renderfarm_ports.values[j] == renderfarm_ports.values[i] ) { renderfarm_rate.values[i] = new_rate; break; } @@ -177,6 +171,7 @@ void Preferences::copy_from(Preferences *that) index_count = that->index_count; use_thumbnails = that->use_thumbnails; keyframe_reticle = that->keyframe_reticle; + perpetual_session = that->perpetual_session; strcpy(theme, that->theme); strcpy(plugin_icons, that->plugin_icons); strcpy(snapshot_path, that->snapshot_path); @@ -195,6 +190,8 @@ void Preferences::copy_from(Preferences *that) cache_size = that->cache_size; project_smp = that->project_smp; force_uniprocessor = that->force_uniprocessor; + strcpy(lv2_path, that->lv2_path); + autostart_lv2ui = that->autostart_lv2ui; trap_sigsegv = that->trap_sigsegv; trap_sigintr = that->trap_sigintr; processors = that->processors; @@ -216,8 +213,7 @@ void Preferences::copy_from(Preferences *that) renderfarm_enabled.remove_all(); renderfarm_rate.remove_all(); local_rate = that->local_rate; - for(int i = 0; i < that->renderfarm_nodes.size(); i++) - { + for( int i=0; irenderfarm_nodes.size(); ++i ) { add_node(that->renderfarm_nodes.get(i), that->renderfarm_ports.get(i), that->renderfarm_enabled.get(i), @@ -228,6 +224,7 @@ void Preferences::copy_from(Preferences *that) render_preroll = that->render_preroll; brender_preroll = that->brender_preroll; renderfarm_job_count = that->renderfarm_job_count; + renderfarm_watchdog_timeout = that->renderfarm_watchdog_timeout; renderfarm_vfs = that->renderfarm_vfs; strcpy(renderfarm_mountpoint, that->renderfarm_mountpoint); renderfarm_consolidate = that->renderfarm_consolidate; @@ -238,13 +235,12 @@ void Preferences::copy_from(Preferences *that) // Check boundaries FileSystem fs; - if(strlen(index_directory)) - { + if( strlen(index_directory) ) { fs.complete_path(index_directory); fs.add_end_slash(index_directory); } -// if(strlen(global_plugin_dir)) +// if( strlen(global_plugin_dir) ) // { // fs.complete_path(global_plugin_dir); // fs.add_end_slash(global_plugin_dir); @@ -269,42 +265,31 @@ printf("Preferences::operator=\n"); return *this; } -void Preferences::print_channels(char *string, - int *channel_positions, - int channels) +void Preferences::print_channels(char *string, int *channel_positions, int channels) { - char string3[BCTEXTLEN]; - string[0] = 0; - for(int j = 0; j < channels; j++) - { - sprintf(string3, "%d", channel_positions[j]); - strcat(string, string3); - if(j < channels - 1) - strcat(string, ","); + char *cp = string, *ep = cp+BCTEXTLEN-1; + for( int i=0; i= channels) break; + for(;;) { + while( isspace(*cp) ) ++cp; + if( !cp ) break; + channel_positions[current_channel++] = strtol(cp, &cp, 0); + if( current_channel >= channels ) break; + while( isspace(*cp) ) ++cp; + if( *cp == ',' ) ++cp; + } + while( current_channel < channels ) { + int pos = default_audio_channel_position(current_channel, channels); + channel_positions[current_channel++] = pos; } } @@ -320,8 +305,11 @@ int Preferences::load_defaults(BC_Hash *defaults) defaults->get("INDEX_DIRECTORY", index_directory); index_size = defaults->get("INDEX_SIZE", index_size); index_count = defaults->get("INDEX_COUNT", index_count); - use_thumbnails = defaults->get("USE_THUMBNAILS", use_thumbnails); keyframe_reticle = defaults->get("KEYFRAME_RETICLE", keyframe_reticle); + perpetual_session = defaults->get("PERPETUAL_SESSION", perpetual_session); + strcpy(lv2_path, DEFAULT_LV2_PATH); + defaults->get("LV2_PATH", lv2_path); + autostart_lv2ui = defaults->get("AUTOSTART_LV2UI", autostart_lv2ui); trap_sigsegv = defaults->get("TRAP_SIGSEGV", trap_sigsegv); trap_sigintr = defaults->get("TRAP_SIGINTR", trap_sigintr); @@ -364,13 +352,13 @@ int Preferences::load_defaults(BC_Hash *defaults) render_preroll = defaults->get("RENDERFARM_PREROLL", render_preroll); brender_preroll = defaults->get("BRENDER_PREROLL", brender_preroll); renderfarm_job_count = defaults->get("RENDERFARM_JOBS_COUNT", renderfarm_job_count); + renderfarm_watchdog_timeout = defaults->get("RENDERFARM_WATCHDOG_TIMEOUT", renderfarm_watchdog_timeout); renderfarm_consolidate = defaults->get("RENDERFARM_CONSOLIDATE", renderfarm_consolidate); // renderfarm_vfs = defaults->get("RENDERFARM_VFS", renderfarm_vfs); defaults->get("RENDERFARM_MOUNTPOINT", renderfarm_mountpoint); int renderfarm_total = defaults->get("RENDERFARM_TOTAL", 0); - for(int i = 0; i < renderfarm_total; i++) - { + for( int i = 0; i < renderfarm_total; i++ ) { sprintf(string, "RENDERFARM_NODE%d", i); char result[BCTEXTLEN]; int result_port = 0; @@ -389,8 +377,7 @@ int Preferences::load_defaults(BC_Hash *defaults) sprintf(string, "RENDERFARM_RATE%d", i); result_rate = defaults->get(string, result_rate); - if(result[0] != 0) - { + if( result[0] != 0 ) { add_node(result, result_port, result_enabled, result_rate); } } @@ -462,14 +449,16 @@ int Preferences::save_defaults(BC_Hash *defaults) defaults->update("INDEX_COUNT", index_count); defaults->update("USE_THUMBNAILS", use_thumbnails); defaults->update("KEYFRAME_RETICLE", keyframe_reticle); + defaults->update("PERPETUAL_SESSION", perpetual_session); + defaults->update("LV2_PATH", lv2_path); + defaults->update("AUTOSTART_LV2UI", autostart_lv2ui); defaults->update("TRAP_SIGSEGV", trap_sigsegv); defaults->update("TRAP_SIGINTR", trap_sigintr); defaults->update("THEME", theme); defaults->update("PLUGIN_ICONS", plugin_icons); defaults->update("SNAPSHOT_PATH", snapshot_path); - for(int i = 0; i < MAXCHANNELS; i++) - { + for( int i = 0; i < MAXCHANNELS; i++ ) { char string2[BCTEXTLEN]; sprintf(string, "CHANNEL_POSITIONS%d", i); print_channels(string2, &channel_positions[i][0], i + 1); @@ -501,10 +490,10 @@ int Preferences::save_defaults(BC_Hash *defaults) // defaults->update("RENDERFARM_VFS", renderfarm_vfs); defaults->update("RENDERFARM_MOUNTPOINT", renderfarm_mountpoint); defaults->update("RENDERFARM_JOBS_COUNT", renderfarm_job_count); + defaults->update("RENDERFARM_WATCHDOG_TIMEOUT", renderfarm_watchdog_timeout); defaults->update("RENDERFARM_CONSOLIDATE", renderfarm_consolidate); defaults->update("RENDERFARM_TOTAL", (int64_t)renderfarm_nodes.total); - for(int i = 0; i < renderfarm_nodes.total; i++) - { + for( int i = 0; i < renderfarm_nodes.total; i++ ) { sprintf(string, "RENDERFARM_NODE%d", i); defaults->update(string, renderfarm_nodes.values[i]); sprintf(string, "RENDERFARM_PORT%d", i); @@ -538,7 +527,7 @@ int Preferences::save_defaults(BC_Hash *defaults) void Preferences::add_node(const char *text, int port, int enabled, float rate) { - if(text[0] == 0) return; + if( text[0] == 0 ) return; preferences_lock->lock("Preferences::add_node"); char *new_item = new char[strlen(text) + 1]; @@ -554,8 +543,7 @@ void Preferences::add_node(const char *text, int port, int enabled, float rate) void Preferences::delete_node(int number) { preferences_lock->lock("Preferences::delete_node"); - if(number < renderfarm_nodes.total && number >= 0) - { + if( number < renderfarm_nodes.total && number >= 0 ) { delete [] renderfarm_nodes.values[number]; renderfarm_nodes.remove_number(number); renderfarm_ports.remove_number(number); @@ -568,7 +556,7 @@ void Preferences::delete_node(int number) void Preferences::delete_nodes() { preferences_lock->lock("Preferences::delete_nodes"); - for(int i = 0; i < renderfarm_nodes.total; i++) + for( int i = 0; i < renderfarm_nodes.total; i++ ) delete [] renderfarm_nodes.values[i]; renderfarm_nodes.remove_all(); renderfarm_ports.remove_all(); @@ -579,8 +567,7 @@ void Preferences::delete_nodes() void Preferences::reset_rates() { - for(int i = 0; i < renderfarm_nodes.total; i++) - { + for( int i = 0; i < renderfarm_nodes.total; i++ ) { renderfarm_rate.values[i] = 0.0; } local_rate = 0.0; @@ -588,18 +575,14 @@ void Preferences::reset_rates() float Preferences::get_rate(int node) { - if(node < 0) - { + if( node < 0 ) { return local_rate; } - else - { + else { int total = 0; - for(int i = 0; i < renderfarm_nodes.size(); i++) - { - if(renderfarm_enabled.get(i)) total++; - if(total == node + 1) - { + for( int i = 0; i < renderfarm_nodes.size(); i++ ) { + if( renderfarm_enabled.get(i) ) total++; + if( total == node + 1 ) { return renderfarm_rate.get(i); } } @@ -611,18 +594,14 @@ float Preferences::get_rate(int node) void Preferences::set_rate(float rate, int node) { //printf("Preferences::set_rate %f %d\n", rate, node); - if(node < 0) - { + if( node < 0 ) { local_rate = rate; } - else - { + else { int total = 0; - for(int i = 0; i < renderfarm_nodes.size(); i++) - { - if(renderfarm_enabled.get(i)) total++; - if(total == node + 1) - { + for( int i = 0; i < renderfarm_nodes.size(); i++ ) { + if( renderfarm_enabled.get(i) ) total++; + if( total == node + 1 ) { renderfarm_rate.set(i, rate); return; } @@ -634,38 +613,31 @@ float Preferences::get_avg_rate(int use_master_node) { preferences_lock->lock("Preferences::get_avg_rate"); float total = 0.0; - if(renderfarm_rate.total) - { + if( renderfarm_rate.total ) { int enabled = 0; - if(use_master_node) - { - if(EQUIV(local_rate, 0.0)) - { + if( use_master_node ) { + if( EQUIV(local_rate, 0.0) ) { preferences_lock->unlock(); return 0.0; } - else - { + else { enabled++; total += local_rate; } } - for(int i = 0; i < renderfarm_rate.total; i++) - { - if(renderfarm_enabled.values[i]) - { + for( int i = 0; i < renderfarm_rate.total; i++ ) { + if( renderfarm_enabled.values[i] ) { enabled++; total += renderfarm_rate.values[i]; - if(EQUIV(renderfarm_rate.values[i], 0.0)) - { + if( EQUIV(renderfarm_rate.values[i], 0.0) ) { preferences_lock->unlock(); return 0.0; } } } - if(enabled) + if( enabled ) total /= enabled; else total = 0.0; @@ -682,10 +654,8 @@ void Preferences::sort_nodes() while(!done) { done = 1; - for(int i = 0; i < renderfarm_nodes.total - 1; i++) - { - if(strcmp(renderfarm_nodes.values[i], renderfarm_nodes.values[i + 1]) > 0) - { + for( int i = 0; i < renderfarm_nodes.total - 1; i++ ) { + if( strcmp(renderfarm_nodes.values[i], renderfarm_nodes.values[i + 1]) > 0 ) { char *temp = renderfarm_nodes.values[i]; int temp_port = renderfarm_ports.values[i]; @@ -723,19 +693,17 @@ void Preferences::edit_node(int number, int Preferences::get_enabled_nodes() { int result = 0; - for(int i = 0; i < renderfarm_enabled.total; i++) - if(renderfarm_enabled.values[i]) result++; + for( int i = 0; i < renderfarm_enabled.total; i++ ) + if( renderfarm_enabled.values[i] ) result++; return result; } const char* Preferences::get_node_hostname(int number) { int total = 0; - for(int i = 0; i < renderfarm_nodes.total; i++) - { - if(renderfarm_enabled.values[i]) - { - if(total == number) + for( int i = 0; i < renderfarm_nodes.total; i++ ) { + if( renderfarm_enabled.values[i] ) { + if( total == number ) return renderfarm_nodes.values[i]; else total++; @@ -747,11 +715,9 @@ const char* Preferences::get_node_hostname(int number) int Preferences::get_node_port(int number) { int total = 0; - for(int i = 0; i < renderfarm_ports.total; i++) - { - if(renderfarm_enabled.values[i]) - { - if(total == number) + for( int i = 0; i < renderfarm_ports.total; i++ ) { + if( renderfarm_enabled.values[i] ) { + if( total == number ) return renderfarm_ports.values[i]; else total++; @@ -780,7 +746,7 @@ int Preferences::get_asset_file_path(Asset *asset, char *path) int Preferences::calculate_processors(int interactive) { - if(force_uniprocessor && !interactive) return 1; + if( force_uniprocessor && !interactive ) return 1; return BC_WindowBase::get_resources()->machine_cpus; }