dblclk label folder item is goto, fix no-drag trns if not drawn, amp up pane divider...
[goodguy/cinelerra.git] / cinelerra-5.1 / cinelerra / edlsession.C
index 91b53d227276f553f22273ab27aaa28ea072b72a..35cd197768836e867c14aac60a955654468e1224 100644 (file)
@@ -44,8 +44,9 @@ EDLSession::EDLSession(EDL *edl)
        for(int i = 0; i < MAXCHANNELS; i++)
                achannel_positions[i] = 0;
        assetlist_format = ASSETS_ICONS;
+       int xs100 = xS(100);
        for(int i = 0; i < ASSET_COLUMNS; i++)
-               asset_columns[i] = 100;
+               asset_columns[i] = xs100;
        auto_conf = new AutoConf;
        awindow_folder = AW_MEDIA_FOLDER;
        aspect_w = 4;  aspect_h = 3;
@@ -58,8 +59,8 @@ EDLSession::EDLSession(EDL *edl)
        clipboard_length = 0; // unused
        color_model = BC_RGBA8888;
        interlace_mode = ILACE_MODE_UNDETECTED;
-       crop_x1 = 0; crop_x2 = 320;
-       crop_y1 = 0; crop_y2 = 240;
+       crop_x1 = 0; crop_x2 = xS(320);
+       crop_y1 = 0; crop_y2 = yS(240);
        eyedrop_radius = 0;
        ruler_x1 = ruler_y1 = 0.0;
        ruler_x2 = ruler_y2 = 0.0;
@@ -73,6 +74,7 @@ EDLSession::EDLSession(EDL *edl)
        cwindow_xscroll = cwindow_yscroll = 0;
        cwindow_zoom = 1.0;
        cwindow_click2play = 0;
+       cwindow_clear_color = BLACK;
        strcpy(default_atransition, INIT_ATRANSITION);
        strcpy(default_vtransition, INIT_VTRANSITION);
        default_transition_length = 1.0;
@@ -130,6 +132,7 @@ EDLSession::EDLSession(EDL *edl)
        si_duration = 3;
        test_playback_edits = 1;
        time_format = TIME_HMSF;
+       timecode_offset = 0;
        nudge_format = 1;
        tool_window = 0;
        for(int i = 0; i < MAXCHANNELS; i++) {
@@ -178,7 +181,8 @@ int EDLSession::need_rerender(EDLSession *ptr)
                (white_balance_raw != ptr->white_balance_raw) ||
                (proxy_disabled_scale != ptr->proxy_disabled_scale) ||
                (proxy_scale != ptr->proxy_scale) ||
-               (proxy_use_scaler != ptr->proxy_use_scaler));
+               (proxy_use_scaler != ptr->proxy_use_scaler) ||
+               (cwindow_clear_color != ptr->cwindow_clear_color));
 }
 
 void EDLSession::equivalent_output(EDLSession *session, double *result)
@@ -254,6 +258,7 @@ int EDLSession::load_defaults(BC_Hash *defaults)
        cwindow_yscroll = defaults->get("CWINDOW_YSCROLL", 0);
        cwindow_zoom = defaults->get("CWINDOW_ZOOM", (float)1);
        cwindow_click2play = defaults->get("CWINDOW_CLICK2PLAY", 0);
+       cwindow_clear_color = defaults->get("CWINDOW_CLEAR_COLOR", BLACK);
        sprintf(default_atransition, INIT_ATRANSITION);
        defaults->get("DEFAULT_ATRANSITION", default_atransition);
        sprintf(default_vtransition, INIT_VTRANSITION);
@@ -319,6 +324,7 @@ int EDLSession::load_defaults(BC_Hash *defaults)
        show_titles = defaults->get("SHOW_TITLES", 1);
 //     test_playback_edits = defaults->get("TEST_PLAYBACK_EDITS", 1);
        time_format = defaults->get("TIME_FORMAT", TIME_HMSF);
+       timecode_offset = defaults->get("TIMECODE_OFFSET", timecode_offset);
        nudge_format = defaults->get("NUDGE_FORMAT", 1);
        tool_window = defaults->get("TOOL_WINDOW", 0);
        vconfig_in->load_defaults(defaults);
@@ -401,6 +407,7 @@ int EDLSession::save_defaults(BC_Hash *defaults)
        defaults->update("CWINDOW_YSCROLL", cwindow_yscroll);
        defaults->update("CWINDOW_ZOOM", cwindow_zoom);
        defaults->update("CWINDOW_CLICK2PLAY", cwindow_click2play);
+       defaults->update("CWINDOW_CLEAR_COLOR", cwindow_clear_color);
        defaults->update("DEFAULT_ATRANSITION", default_atransition);
        defaults->update("DEFAULT_VTRANSITION", default_vtransition);
        defaults->update("DEFAULT_TRANSITION_LENGTH", default_transition_length);
@@ -455,6 +462,7 @@ int EDLSession::save_defaults(BC_Hash *defaults)
        defaults->update("SHOW_TITLES", show_titles);
 //     defaults->update("TEST_PLAYBACK_EDITS", test_playback_edits);
        defaults->update("TIME_FORMAT", time_format);
+       defaults->update("TIMECODE_OFFSET", timecode_offset);
        defaults->update("NUDGE_FORMAT", nudge_format);
        defaults->update("TOOL_WINDOW", tool_window);
        vconfig_in->save_defaults(defaults);
@@ -492,7 +500,7 @@ int EDLSession::save_defaults(BC_Hash *defaults)
 void EDLSession::boundaries()
 {
        Workarounds::clamp(audio_tracks, 0, (int)BC_INFINITY);
-       Workarounds::clamp(audio_channels, 1, MAXCHANNELS - 1);
+       Workarounds::clamp(audio_channels, 0, MAXCHANNELS - 1);
        Workarounds::clamp(sample_rate, 1, 1000000);
        Workarounds::clamp(video_tracks, 0, (int)BC_INFINITY);
        Workarounds::clamp(video_channels, 1, MAXCHANNELS - 1);
@@ -625,6 +633,7 @@ int EDLSession::load_xml(FileXML *file,
                cwindow_yscroll = file->tag.get_property("CWINDOW_YSCROLL", cwindow_yscroll);
                cwindow_zoom = file->tag.get_property("CWINDOW_ZOOM", cwindow_zoom);
                cwindow_click2play = file->tag.get_property("CWINDOW_CLICK2PLAY", cwindow_click2play);
+               cwindow_clear_color = file->tag.get_property("CWINDOW_CLEAR_COLOR", cwindow_clear_color);
                editing_mode = file->tag.get_property("EDITING_MODE", editing_mode);
                folderlist_format = file->tag.get_property("FOLDERLIST_FORMAT", folderlist_format);
                highlighted_track = file->tag.get_property("HIGHLIGHTED_TRACK", 0);
@@ -637,6 +646,7 @@ int EDLSession::load_xml(FileXML *file,
                show_titles = file->tag.get_property("SHOW_TITLES", 1);
 //             test_playback_edits = file->tag.get_property("TEST_PLAYBACK_EDITS", test_playback_edits);
                time_format = file->tag.get_property("TIME_FORMAT", time_format);
+               timecode_offset = file->tag.get_property("TIMECODE_OFFSET", timecode_offset);
                nudge_format = file->tag.get_property("NUDGE_FORMAT", nudge_format);
                tool_window = file->tag.get_property("TOOL_WINDOW", tool_window);
                vwindow_meter = file->tag.get_property("VWINDOW_METER", vwindow_meter);
@@ -692,6 +702,7 @@ int EDLSession::save_xml(FileXML *file)
        file->tag.set_property("CWINDOW_YSCROLL", cwindow_yscroll);
        file->tag.set_property("CWINDOW_ZOOM", cwindow_zoom);
        file->tag.set_property("CWINDOW_CLICK2PLAY", cwindow_click2play);
+       file->tag.set_property("CWINDOW_CLEAR_COLOR", cwindow_clear_color);
        file->tag.set_property("EDITING_MODE", editing_mode);
        file->tag.set_property("FOLDERLIST_FORMAT", folderlist_format);
        file->tag.set_property("HIGHLIGHTED_TRACK", highlighted_track);
@@ -704,6 +715,7 @@ int EDLSession::save_xml(FileXML *file)
        file->tag.set_property("SHOW_TITLES", show_titles);
        file->tag.set_property("TEST_PLAYBACK_EDITS", test_playback_edits);
        file->tag.set_property("TIME_FORMAT", time_format);
+       file->tag.set_property("TIMECODE_OFFSET", timecode_offset);
        file->tag.set_property("NUDGE_FORMAT", nudge_format);
        file->tag.set_property("TOOL_WINDOW", tool_window);
        file->tag.set_property("VWINDOW_METER", vwindow_meter);
@@ -827,6 +839,7 @@ int EDLSession::copy(EDLSession *session)
        cwindow_yscroll = session->cwindow_yscroll;
        cwindow_zoom = session->cwindow_zoom;
        cwindow_click2play = session->cwindow_click2play;
+       cwindow_clear_color = session->cwindow_clear_color;
        strcpy(default_atransition, session->default_atransition);
        strcpy(default_vtransition, session->default_vtransition);
        default_transition_length = session->default_transition_length;
@@ -878,6 +891,7 @@ int EDLSession::copy(EDLSession *session)
        show_titles = session->show_titles;
        test_playback_edits = session->test_playback_edits;
        time_format = session->time_format;
+       timecode_offset = session->timecode_offset;
        nudge_format = session->nudge_format;
        tool_window = session->tool_window;
        for(int i = 0; i < MAXCHANNELS; i++) {
@@ -916,7 +930,7 @@ void EDLSession::dump()
                "    video_tracks=%d frame_rate=%f output_w=%d output_h=%d aspect_w=%f aspect_h=%f\n"
                "    decode subtitles=%d subtitle_number=%d label_cells=%d program_no=%d\n"
                "    proxy scale=%d\n disabled_scale=%d, use_scaler=%d, auto_scale=%d\n"
-               "    proxy_beep=%d render_beep=%d\n",
+               "    proxy_beep=%f render_beep=%f\n",
                audio_tracks, audio_channels, sample_rate, video_tracks,
                frame_rate, output_w, output_h, aspect_w, aspect_h,
                decode_subtitles, subtitle_number, label_cells, program_no,