bsd lang segv fix, enable bsd lv2, lv2 gui enable fix, proxy/ffmpeg toggle resize...
[goodguy/history.git] / cinelerra-5.1 / cinelerra / exportedl.C
index 6e34caaad9c689ba32e7430d006b790cc0fe9433..8cbbbf3f238ae3950197d2cb57ff71e8f226bf22 100644 (file)
@@ -80,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;
 
@@ -91,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);
@@ -201,7 +182,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);
@@ -344,33 +325,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()
@@ -384,8 +363,7 @@ ExportEDLWindow::~ExportEDLWindow()
 void 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;
 
@@ -418,7 +396,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);
@@ -431,7 +409,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")));
@@ -459,19 +437,11 @@ int ExportEDLPathText::handle_event()
 }
 
 ExportEDLWindowTrackList::ExportEDLWindowTrackList(ExportEDLWindow *window,
-       int x,
-       int y,
-       int w,
-       int h,
-       ArrayList<BC_ListBoxItem*> *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;