- Asset *asset = new Asset(filename);
- switch( mode ) {
- case SNAPSHOT_PNG:
- asset->format = FILE_PNG;
- asset->png_use_alpha = 1;
- break;
- case SNAPSHOT_JPEG:
- asset->format = FILE_JPEG;
- asset->jpeg_quality = 90;
- break;
- case SNAPSHOT_TIFF:
- asset->format = FILE_TIFF;
- asset->tiff_cmodel = 0;
- asset->tiff_compression = 0;
- break;
- }
- asset->width = fw;
- asset->height = fh;
- asset->audio_data = 0;
- asset->video_data = 1;
- asset->video_length = 1;
- asset->layers = 1;
-
- File file;
- int processors = preferences->project_smp + 1;
- if( processors > 8 ) processors = 8;
- file.set_processors(processors);
- int ret = file.open_file(preferences, asset, 0, 1);
- if( !ret ) {
- file.start_video_thread(1, fcolor_model,
- processors > 1 ? 2 : 1, 0);
- VFrame ***frames = file.get_video_buffer();
- VFrame *frame = frames[0][0];
- TransportCommand command;
- //command.command = audio_tracks ? NORMAL_FWD : CURRENT_FRAME;
- command.command = CURRENT_FRAME;
- command.get_edl()->copy_all(edl);
- command.change_type = CHANGE_ALL;
- command.realtime = 0;
-
- RenderEngine render_engine(0, preferences, 0, 0);
- CICache video_cache(preferences);
- render_engine.set_vcache(&video_cache);
- render_engine.arm_command(&command);
-
- double position = edl->local_session->get_selectionstart(1);
- int64_t source_position = (int64_t)(position * edl->get_frame_rate());
- int ret = render_engine.vrender->process_buffer(frame, source_position, 0);
- if( !ret )
- ret = file.write_video_buffer(1);
- file.close_file();
- }
- if( !ret ) {
- asset->awindow_folder = AW_MEDIA_FOLDER;
- mwindow->edl->assets->append(asset);
- mwindow->awindow->gui->async_update_assets();
- }
- else {
- eprintf("snapshot render failed");
- asset->remove_user();
- }
- return 1;
+EditPopupShowWindow::~EditPopupShowWindow()
+{
+}
+
+void EditPopupShowWindow::create_objects()
+{
+ lock_window("EditPopupShowWindow::create_objects");
+ int x = 10, y = 10;
+ BC_Title *title;
+ char text[BCTEXTLEN];
+ Track *track = popup->track;
+ Edit *edit = popup->edit;
+ sprintf(text, _("Track %d:"), mwindow->edl->tracks->number_of(track)+1);
+ add_subwindow(title = new BC_Title(x, y, text));
+ int x1 = x + title->get_w() + 10;
+ int tw = get_w() - x1 - 20;
+ truncate_text(text, track->title, tw);
+ add_subwindow(new BC_Title(x1, y, text));
+ y += title->get_h() + 5;
+ sprintf(text, _("Edit %d:"), track->edits->number_of(edit)+1);
+ add_subwindow(title = new BC_Title(x, y, text));
+ char edit_title[BCTEXTLEN];
+ edit->get_title(edit_title);
+ truncate_text(text, edit_title, tw);
+ add_subwindow(new BC_Title(x1, y, text));
+ y += title->get_h() + 5;
+
+ EDLSession *session = mwindow->edl->session;
+ int time_format = session->time_format;
+ int sample_rate = session->sample_rate;
+ double frame_rate = session->frame_rate;
+ double frames_per_foot = session->frames_per_foot;
+
+ double startsource = track->from_units(edit->startsource);
+ double startproject = track->from_units(edit->startproject);
+ double length = track->from_units(edit->length);
+
+ char text_startsource[BCSTRLEN];
+ char text_startproject[BCSTRLEN];
+ char text_length[BCSTRLEN];
+ sprintf(text, _("StartSource: %s\nStartProject: %s\nLength: %s\n"),
+ Units::totext(text_startsource, startsource,
+ time_format, sample_rate, frame_rate, frames_per_foot),
+ Units::totext(text_startproject, startproject,
+ time_format, sample_rate, frame_rate, frames_per_foot),
+ Units::totext(text_length, length,
+ time_format, sample_rate, frame_rate, frames_per_foot));
+ show_text = new EditPopupShowText(this, mwindow, x+15, y+10, text);
+ add_subwindow(show_text);
+ add_tool(new BC_OKButton(this));
+
+ show_window();
+ flush();
+ unlock_window();
+}
+
+
+EditPopupShowText::EditPopupShowText(EditPopupShowWindow *window,
+ MWindow *mwindow, int x, int y, const char *text)
+ : BC_TextBox(x, y, 250, 4, text)
+{
+ this->window = window;
+ this->mwindow = mwindow;
+}
+
+EditPopupShowText::~EditPopupShowText()
+{