X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fexportedl.C;h=73e51cf16167bc165afb9e6af5cca1df6dca459c;hb=c279e21fc2394a7908bbd1ba8c79b116fe9fb14a;hp=bce96d15e96faeff4f1967f70bcaaf9ebeec7ef0;hpb=21c2e6b36d6a96c2f662a89459d607b5a387f4eb;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/cinelerra/exportedl.C b/cinelerra-5.1/cinelerra/exportedl.C index bce96d15..73e51cf1 100644 --- a/cinelerra-5.1/cinelerra/exportedl.C +++ b/cinelerra-5.1/cinelerra/exportedl.C @@ -26,12 +26,12 @@ #include "edits.h" #include "edl.h" #include "edlsession.h" -#include "errorbox.h" #include "file.h" #include "filesystem.h" #include "filexml.h" #include "language.h" #include "localsession.h" +#include "mainerror.h" #include "mainsession.h" #include "mutex.h" #include "mwindowgui.h" @@ -40,13 +40,6 @@ #include "tracks.h" #include "transition.h" -#include -#define _(String) gettext(String) -#define gettext_noop(String) String -#define N_(String) gettext_noop (String) - - - #include #include @@ -87,9 +80,11 @@ void ExportEDLAsset::double_to_CMX3600(double seconds, double frame_rate, char * //sprintf(str, "%02d:%02d:%02d:%02d", hour, minute, second, hundredths); } -int ExportEDLAsset::edit_to_timecodes(Edit *edit, char *sourceinpoint, char *sourceoutpoint, char *destinpoint, char *destoutpoint, char *reel_name) +int ExportEDLAsset::edit_to_timecodes(Edit *edit, + char *sourceinpoint, char *sourceoutpoint, + char *destinpoint, char *destoutpoint, + char *reel_name) { - Asset *asset = edit->asset; Track *track = edit->track; double frame_rate = edit->track->edl->session->frame_rate; @@ -98,30 +93,9 @@ int ExportEDLAsset::edit_to_timecodes(Edit *edit, char *sourceinpoint, char *sou double edit_deststart; double edit_destend; - if (asset) - { - // reelname should be 8 chars long - - strncpy(reel_name, asset->reel_name, 9); - if (strlen(asset->reel_name) > 8) - { - printf(_("Warning: chopping the reel name to eight characters!\n")); - }; - reel_name[8] = 0; - for (int i = strlen(reel_name); i<8; i++) - reel_name[i] = ' '; - - edit_sourcestart = (double)asset->tcstart / asset->frame_rate - + track->from_units(edit->startsource); - edit_sourceend = (double)asset->tcstart / asset->frame_rate - + track->from_units(edit->startsource + edit->length); - - } else - { - strcpy(reel_name, " BL "); - edit_sourcestart = 0; - edit_sourceend = track->from_units(edit->length); - } + strcpy(reel_name, " BL "); + edit_sourcestart = 0; + edit_sourceend = track->from_units(edit->length); edit_deststart = track->from_units(edit->startproject); edit_destend = track->from_units(edit->startproject + edit->length); @@ -139,6 +113,10 @@ void ExportEDLAsset::export_it() { FILE *fh; fh = fopen(path, "w+"); + if( !fh ) { + eprintf("unable to open file: %s", path); + return; + } // We currently only support exporting one track at a time // Find the track... @@ -208,7 +186,7 @@ void ExportEDLAsset::export_it() last_dissolve = 1; } else { - edit_to_timecodes(edit, sourceinpoint, sourceoutpoint, destinpoint, destoutpoint, reel_name); + edit_to_timecodes(edit, sourceinpoint, sourceoutpoint, destinpoint, destoutpoint, reel_name); fprintf(fh, "%03d %8s %s %4s %3s", colnum, reel_name, avselect, edittype, cutinfo); fprintf(fh, " %s %s", sourceinpoint, sourceoutpoint); fprintf(fh, " %s %s", destinpoint, destoutpoint); @@ -351,33 +329,31 @@ void ExportEDL::run() #define WIDTH 410 #define HEIGHT 400 -static const char *list_titles[] = +static const char *default_list_titles[] = { N_("No."), N_("Track name") }; - -static int list_widths[] = +static int default_list_widths[] = { 40, 200 }; + ExportEDLWindow::ExportEDLWindow(MWindow *mwindow, ExportEDL *exportedl, ExportEDLAsset *exportasset) : BC_Window(_(PROGRAM_NAME ": Export EDL"), mwindow->gui->get_screen_w(1, 0) / 2 - WIDTH / 2, mwindow->gui->get_root_h(1) / 2 - HEIGHT / 2, - WIDTH, - HEIGHT, - (int)BC_INFINITY, - (int)BC_INFINITY, - 0, - 0, - 1) + WIDTH, HEIGHT, (int)BC_INFINITY, (int)BC_INFINITY, 0, 0, 1) { this->mwindow = mwindow; this->exportasset = exportasset; + for( int i=0; i<2; ++i ) { + list_titles[i] = _(default_list_titles[i]); + list_widths[i] = default_list_widths[i]; + } } ExportEDLWindow::~ExportEDLWindow() @@ -390,9 +366,9 @@ ExportEDLWindow::~ExportEDLWindow() void ExportEDLWindow::create_objects() { + lock_window("ExportEDLWindow::create_objects"); int x = 5, y = 5; - add_subwindow(new BC_Title(x, - y, + add_subwindow(new BC_Title(x, y, _("Select a file to export to:"))); y += 25; @@ -425,7 +401,7 @@ void ExportEDLWindow::create_objects() track = track->next) { - char tmp[10]; + char tmp[16]; sprintf(tmp, "%i\n", serial+1); BC_ListBoxItem *listitem = new BC_ListBoxItem(tmp); @@ -438,7 +414,7 @@ void ExportEDLWindow::create_objects() } - add_subwindow(track_list = new ExportEDLWindowTrackList(this, x, y, 400, 200, items_tracks)); + add_subwindow(track_list = new ExportEDLWindowTrackList(this, x, y, 400, 200)); y += 5 + track_list->get_h(); add_subwindow(new BC_Title(x, y, _("Currently only CMX 3600 format is supported"))); @@ -447,6 +423,7 @@ void ExportEDLWindow::create_objects() add_subwindow(new BC_OKButton(this)); add_subwindow(new BC_CancelButton(this)); show_window(); + unlock_window(); } @@ -466,19 +443,11 @@ int ExportEDLPathText::handle_event() } ExportEDLWindowTrackList::ExportEDLWindowTrackList(ExportEDLWindow *window, - int x, - int y, - int w, - int h, - ArrayList *track_list) - : BC_ListBox(x, - y, - w, - h, - LISTBOX_TEXT, - track_list, - list_titles, - list_widths, + int x, int y, int w, int h) + : BC_ListBox(x, y, w, h, LISTBOX_TEXT, + window->items_tracks, + window->list_titles, + window->list_widths, 2) { this->window = window;