X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;ds=sidebyside;f=cinelerra-5.0%2Fcinelerra%2Fmwindow.C;h=a53bd4c8c898c1bf18e8c9b17d67f5edd239e540;hb=5aad2133f228b736f033d6c48e1629078b858286;hp=f29b98e61fb2d4d57d5c726d5d6ffd7c52b2d1c2;hpb=8bbd1679c5811ba26608d5fc9ed60cedeb2bc103;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.0/cinelerra/mwindow.C b/cinelerra-5.0/cinelerra/mwindow.C index f29b98e6..a53bd4c8 100644 --- a/cinelerra-5.0/cinelerra/mwindow.C +++ b/cinelerra-5.0/cinelerra/mwindow.C @@ -27,13 +27,14 @@ #include "bcdisplayinfo.h" #include "bcsignals.h" #include "bctimer.h" +#include "bdcreate.h" #include "brender.h" #include "cache.h" #include "channel.h" #include "channeldb.h" #include "channelinfo.h" #include "clip.h" -#include "colormodels.h" +#include "bccmodels.h" #include "commercials.h" #include "cplayback.h" #include "ctimebar.h" @@ -41,6 +42,7 @@ #include "cwindow.h" #include "bchash.h" #include "devicedvbinput.inc" +#include "dvdcreate.h" #include "editpanel.h" #include "edl.h" #include "edlsession.h" @@ -192,6 +194,7 @@ MWindow::MWindow() plugin_guis = 0; dead_plugins = 0; keyframe_threads = 0; + create_bd = 0; create_dvd = 0; batch_render = 0; render = 0; @@ -222,6 +225,7 @@ MWindow::~MWindow() brender_lock->lock("MWindow::quit"); delete brender; brender = 0; brender_lock->unlock(); + delete create_bd; create_bd = 0; delete create_dvd; create_dvd = 0; delete batch_render; batch_render = 0; commit_commercial(); @@ -467,8 +471,8 @@ int MWindow::init_plugins(MWindow *mwindow, Preferences *preferences) if( !load_plugin_index(mwindow, index_path) ) return 1; FILE *fp = fopen(index_path,"w"); if( !fp ) { - fprintf(stderr," MWindow::init_plugins: " - "can't create plugin index: %s\n", index_path); + fprintf(stderr,_("MWindow::init_plugins: " + "can't create plugin index: %s\n"), index_path); return 1; } fprintf(fp, "%d\n", PLUGIN_FILE_VERSION); @@ -800,25 +804,25 @@ void MWindow::init_channeldb() void MWindow::init_menus() { char string[BCTEXTLEN]; - cmodel_to_text(string, BC_RGB888); + BC_CModels::to_text(string, BC_RGB888); colormodels.append(new ColormodelItem(string, BC_RGB888)); - cmodel_to_text(string, BC_RGBA8888); + BC_CModels::to_text(string, BC_RGBA8888); colormodels.append(new ColormodelItem(string, BC_RGBA8888)); -// cmodel_to_text(string, BC_RGB161616); +// BC_CModels::to_text(string, BC_RGB161616); // colormodels.append(new ColormodelItem(string, BC_RGB161616)); -// cmodel_to_text(string, BC_RGBA16161616); +// BC_CModels::to_text(string, BC_RGBA16161616); // colormodels.append(new ColormodelItem(string, BC_RGBA16161616)); - cmodel_to_text(string, BC_RGB_FLOAT); + BC_CModels::to_text(string, BC_RGB_FLOAT); colormodels.append(new ColormodelItem(string, BC_RGB_FLOAT)); - cmodel_to_text(string, BC_RGBA_FLOAT); + BC_CModels::to_text(string, BC_RGBA_FLOAT); colormodels.append(new ColormodelItem(string, BC_RGBA_FLOAT)); - cmodel_to_text(string, BC_YUV888); + BC_CModels::to_text(string, BC_YUV888); colormodels.append(new ColormodelItem(string, BC_YUV888)); - cmodel_to_text(string, BC_YUVA8888); + BC_CModels::to_text(string, BC_YUVA8888); colormodels.append(new ColormodelItem(string, BC_YUVA8888)); -// cmodel_to_text(string, BC_YUV161616); +// BC_CModels::to_text(string, BC_YUV161616); // colormodels.append(new ColormodelItem(string, BC_YUV161616)); -// cmodel_to_text(string, BC_YUVA16161616); +// BC_CModels::to_text(string, BC_YUVA16161616); // colormodels.append(new ColormodelItem(string, BC_YUVA16161616)); } @@ -847,6 +851,7 @@ ENABLE_BUFFER void MWindow::init_render() { render = new Render(this); + create_bd = new CreateBD_Thread(this); create_dvd = new CreateDVD_Thread(this); batch_render = new BatchRenderThread(this); } @@ -960,7 +965,7 @@ int MWindow::put_commercial() for(Track *track=tracks->first; track && !errmsg; track=track->next) { if( track->data_type != TRACK_VIDEO ) continue; if( !track->record ) continue; - if( count > 0 ) { errmsg = "multiple video tracks"; break; } + if( count > 0 ) { errmsg = _("multiple video tracks"); break; } ++count; int64_t units_start = track->to_units(start,0); int64_t units_end = track->to_units(end,0); @@ -972,9 +977,9 @@ int MWindow::put_commercial() edit2 = edits->last; units_end = edits->length(); } - if(edit1 != edit2) { errmsg = "crosses edits"; break; } + if(edit1 != edit2) { errmsg = _("crosses edits"); break; } Indexable *indexable = edit1->get_source(); - if( !indexable->is_asset ) { errmsg = "not asset"; break; } + if( !indexable->is_asset ) { errmsg = _("not asset"); break; } } //run it for(Track *track=tracks->first; track && !errmsg; track=track->next) { @@ -993,17 +998,17 @@ int MWindow::put_commercial() Indexable *indexable = edit1->get_source(); Asset *asset = (Asset *)indexable; File *file = video_cache->check_out(asset, edl); - if( !file ) { errmsg = "no file"; break; } + if( !file ) { errmsg = _("no file"); break; } int64_t edit_length = units_end - units_start; int64_t edit_start = units_start - edit1->startproject + edit1->startsource; result = commercials->put_clip(file, edit1->channel, track->from_units(edit_start), track->from_units(edit_length)); video_cache->check_in(asset); - if( result ) { errmsg = "db failed"; break; } + if( result ) { errmsg = _("db failed"); break; } } if( errmsg ) { char string[BCTEXTLEN]; - sprintf(string, "put_commercial: %s", errmsg); + sprintf(string, _("put_commercial: %s"), errmsg); MainError::show_error(string); undo_commercial(); result = 1; @@ -1073,7 +1078,7 @@ if(debug) printf("MWindow::load_filenames %d\n", __LINE__); new_edl->copy_session(edl); new_file->set_program(edl->session->program_no); - sprintf(string, "Loading %s", new_asset->path); + sprintf(string, _("Loading %s"), new_asset->path); gui->show_message(string); if(debug) printf("MWindow::load_filenames %d\n", __LINE__); @@ -1091,7 +1096,7 @@ if(debug) printf("MWindow::load_filenames %d\n", __LINE__); (new_asset->height % 2))) { char string[BCTEXTLEN]; - sprintf(string, "%s's resolution is %dx%d.\nImages with odd dimensions may not decode properly.", + sprintf(string, _("%s's resolution is %dx%d.\nImages with odd dimensions may not decode properly."), new_asset->path, new_asset->width, new_asset->height); @@ -1102,8 +1107,8 @@ if(debug) printf("MWindow::load_filenames %d\n", __LINE__); edl->session->program_no != new_asset->program) { char string[BCTEXTLEN]; - sprintf(string, "%s's index was built for program number %d\n" - "Playback preference is %d.\n Using program %d.", + sprintf(string, _("%s's index was built for program number %d\n" + "Playback preference is %d.\n Using program %d."), new_asset->path, new_asset->program, edl->session->program_no, new_asset->program); MainError::show_error(string); @@ -1520,9 +1525,9 @@ void MWindow::test_plugins(EDL *new_edl, char *path) if (!plugin_found) { sprintf(string, - "The effect '%s' in file '%s' is not part of your installation of Cinelerra.\n" - "The project won't be rendered as it was meant and Cinelerra might crash.\n", - plugin->title, + _("The %s '%s' in file '%s' is not part of your installation of Cinelerra.\n" + "The project won't be rendered as it was meant and Cinelerra might crash.\n"), + "effect", plugin->title, path); MainError::show_error(string); } @@ -1553,9 +1558,9 @@ void MWindow::test_plugins(EDL *new_edl, char *path) if (!transition_found) { sprintf(string, - "The transition '%s' in file '%s' is not part of your installation of Cinelerra.\n" - "The project won't be rendered as it was meant and Cinelerra might crash.\n", - edit->transition->title, + _("The %s '%s' in file '%s' is not part of your installation of Cinelerra.\n" + "The project won't be rendered as it was meant and Cinelerra might crash.\n"), + "transition", edit->transition->title, path); MainError::show_error(string); } @@ -1587,11 +1592,11 @@ void MWindow::init_shm() fd = 0; if(result < 0x7fffffff) { char string[BCTEXTLEN]; - sprintf(string, "MWindow::init_shm: /proc/sys/kernel/shmmax is 0x" _LX ".\n" + sprintf(string, _("MWindow::init_shm: /proc/sys/kernel/shmmax is 0x" _LX ".\n" "you probably need to be root, or:\n" "as root, run: echo 0x7fffffff > /proc/sys/kernel/shmmax\n" "before trying to start cinelerra.\n" - "It should be at least 0x7fffffff for Cinelerra.\n", result); + "It should be at least 0x7fffffff for Cinelerra.\n"), result); MainError::show_error(string); } } @@ -1990,6 +1995,7 @@ int MWindow::set_editing_mode(int new_editing_mode, int lock_mwindow, int lock_c void MWindow::sync_parameters(int change_type) { + if( in_destructor ) return; // Sync engines which are playing back if(cwindow->playback_engine->is_playing_back)