X-Git-Url: https://cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fmwindow.C;h=14d06c93d7ce38e60a5ec28eb9f4cb9384071367;hb=a70cf593410cada9f0ca8bc515534c635a9cb495;hp=979d7e87e88a823b5f212e059772df3fbc71e475;hpb=0495d0555cc8e2526b7e3677fb7ef4d802f5ebe2;p=goodguy%2Fcinelerra.git diff --git a/cinelerra-5.1/cinelerra/mwindow.C b/cinelerra-5.1/cinelerra/mwindow.C index 979d7e87..14d06c93 100644 --- a/cinelerra-5.1/cinelerra/mwindow.C +++ b/cinelerra-5.1/cinelerra/mwindow.C @@ -80,6 +80,7 @@ #include "mainsession.h" #include "mainundo.h" #include "mbuttons.h" +#include "mixersalign.h" #include "mutex.h" #include "mwindowgui.h" #include "mwindow.h" @@ -240,6 +241,7 @@ MWindow::MWindow() speed_edl = 0; proxy_beep = 0; shuttle = 0; + mixers_align = 0; } @@ -264,6 +266,7 @@ MWindow::~MWindow() delete shuttle; shuttle = 0; delete batch_render; batch_render = 0; delete render; render = 0; + delete mixers_align; mixers_align = 0; commit_commercial(); if( commercials && !commercials->remove_user() ) commercials = 0; close_mixers(); @@ -936,14 +939,7 @@ void MWindow::init_preferences() { preferences = new Preferences; preferences->load_defaults(defaults); - const char *lv2_path = getenv("LV2_PATH"); - if( lv2_path && strcmp(lv2_path, preferences->lv2_path) ) { - strncpy(preferences->lv2_path, lv2_path, sizeof(preferences->lv2_path)); - remove_plugin_index(); - } - else if( !lv2_path && preferences->lv2_path[0] ) { - File::setenv_path("LV2_PATH",preferences->lv2_path, 0); - } + File::setenv_path("LV2_PATH",preferences->lv2_path, 0); session = new MainSession(this); session->load_defaults(defaults); // set x11_host, screens, window_config @@ -1331,12 +1327,12 @@ void MWindow::close_mixers(int destroy) } } -ZWindow *MWindow::create_mixer(Indexable *indexable) +ZWindow *MWindow::create_mixer(Indexable *indexable, double position) { ArrayList new_assets; new_assets.append(indexable); Track *track = edl->tracks->last; - load_assets(&new_assets, 0, LOADMODE_NEW_TRACKS, 0, 0, 0, 0, 0, 0); + load_assets(&new_assets, position, LOADMODE_NEW_TRACKS, 0, 0, 0, 0, 0, 0); track = !track ? edl->tracks->first : track->next; Mixer *mixer = 0; ZWindow *zwindow = get_mixer(mixer); @@ -1361,7 +1357,7 @@ ZWindow *MWindow::create_mixer(Indexable *indexable) return zwindow; } -void MWindow::create_mixers() +void MWindow::create_mixers(double position) { if( !session->drag_assets->size() && !session->drag_clips->size() ) return; @@ -1373,13 +1369,13 @@ void MWindow::create_mixers() for( int i=0; idrag_assets->size(); ++i ) { Indexable *indexable = session->drag_assets->get(i); if( !indexable->have_video() ) continue; - ZWindow *zwindow = create_mixer(indexable); + ZWindow *zwindow = create_mixer(indexable, position); new_mixers.append(zwindow); } for( int i=0; idrag_clips->size(); ++i ) { Indexable *indexable = (Indexable*)session->drag_clips->get(i); if( !indexable->have_video() ) continue; - ZWindow *zwindow = create_mixer(indexable); + ZWindow *zwindow = create_mixer(indexable, position); new_mixers.append(zwindow); } @@ -1549,6 +1545,8 @@ void MWindow::init_menus() ILACEFIXMETHODLISTADD(ILACE_FIXMETHOD_NONE); ILACEFIXMETHODLISTADD(ILACE_FIXMETHOD_UPONE); ILACEFIXMETHODLISTADD(ILACE_FIXMETHOD_DOWNONE); + + mixers_align = new MixersAlign(this); } void MWindow::init_indexes() @@ -2920,25 +2918,30 @@ void MWindow::restore_windows() gui->focus(); } -void MWindow::save_layout(int no) -{ - char layout_path[BCTEXTLEN]; - snprintf(layout_path, sizeof(layout_path), "%s/" LAYOUT_FILE, - File::get_config_path(), no); - session->save_file(layout_path); -} - -void MWindow::load_layout(int no) +void MWindow::load_layout(const char *layout) { - char layout_path[BCTEXTLEN]; - snprintf(layout_path, sizeof(layout_path), "%s/" LAYOUT_FILE, - File::get_config_path(), no); - session->load_file(layout_path); + char path[BCTEXTLEN]; + snprintf(path, sizeof(path), "%s/%s", File::get_config_path(), layout); + session->load_file(path); restore_windows(); gui->default_positions(); save_defaults(); } +void MWindow::save_layout(const char *layout) +{ + char path[BCTEXTLEN]; + snprintf(path, sizeof(path), "%s/%s", File::get_config_path(), layout); + session->save_file(path); +} + +void MWindow::delete_layout(const char *layout) +{ + char path[BCTEXTLEN]; + snprintf(path, sizeof(path), "%s/%s", File::get_config_path(), layout); + unlink(path); +} + int MWindow::tile_windows(int window_config) { int need_reload = 0;