X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;ds=sidebyside;f=cinelerra-5.1%2Fcinelerra%2Fmainsession.C;h=86e5b36d3f92c4c579bbbb973347191f85a6dc2d;hb=a19a685a46ddc630010788707d9e5b9d2342af46;hp=d919c55604d216e87573ce34d1e4cbcb822e57b1;hpb=86bd203ac1fc29d93f63d13e2979468f06bdc3a2;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/cinelerra/mainsession.C b/cinelerra-5.1/cinelerra/mainsession.C index d919c556..86e5b36d 100644 --- a/cinelerra-5.1/cinelerra/mainsession.C +++ b/cinelerra-5.1/cinelerra/mainsession.C @@ -19,18 +19,23 @@ * */ +#include "auto.h" #include "bcdisplayinfo.h" #include "clip.h" #include "bchash.h" +#include "edit.h" +#include "edits.h" #include "edl.h" #include "edlsession.h" #include "guicast.h" #include "indexable.h" +#include "language.h" +#include "localsession.h" #include "mainsession.h" #include "meterpanel.h" #include "mwindow.h" #include "mwindowgui.h" -#include "auto.h" +#include "plugin.h" MainSession::MainSession(MWindow *mwindow) { @@ -49,7 +54,6 @@ MainSession::MainSession(MWindow *mwindow) drag_assets = new ArrayList; drag_auto_gang = new ArrayList; drag_clips = new ArrayList; - drag_proxy = new ArrayList; drag_edits = new ArrayList; drag_edit = 0; clip_number = 1; @@ -85,6 +89,7 @@ MainSession::MainSession(MWindow *mwindow) cwindow_x = cwindow_y = cwindow_w = cwindow_h = 0; ctool_x = ctool_y = 0; awindow_x = awindow_y = awindow_w = awindow_h = 0; + bwindow_w = bwindow_h = 0; rmonitor_x = rmonitor_y = rmonitor_w = rmonitor_h = 0; rwindow_x = rwindow_y = rwindow_w = rwindow_h = 0; gwindow_x = gwindow_y = 0; @@ -114,12 +119,10 @@ MainSession::MainSession(MWindow *mwindow) MainSession::~MainSession() { - clear_drag_proxy(); delete drag_pluginservers; delete drag_assets; delete drag_auto_gang; delete drag_clips; - delete drag_proxy; delete drag_edits; } @@ -144,13 +147,6 @@ void MainSession::boundaries() CLAMP(cwindow_controls, 0, 1); } -void MainSession::clear_drag_proxy() -{ - for( int i=drag_proxy->size(); --i>=0; ) - drag_proxy->get(i)->remove_user(); - drag_proxy->remove_all(); -} - void MainSession::save_x11_host(int play_config, const char *x11_host) { strcpy(!play_config ? a_x11_host : b_x11_host, x11_host); @@ -262,6 +258,9 @@ void MainSession::default_window_positions(int window_config) awindow_w = root_x + root_w - awindow_x - border_left - border_right; awindow_h = mwindow_h; + bwindow_w = 600; + bwindow_h = 360; + ewindow_w = 640; ewindow_h = 240; @@ -398,6 +397,10 @@ int MainSession::load_defaults(BC_Hash *defaults) // Other windows afolders_w = defaults->get("ABINS_W", 200); + + bwindow_w = defaults->get("BWINDOW_W", bwindow_w); + bwindow_h = defaults->get("BWINDOW_H", bwindow_h); + rwindow_x = defaults->get("RWINDOW_X", rwindow_x); rwindow_y = defaults->get("RWINDOW_Y", rwindow_y); rwindow_w = defaults->get("RWINDOW_W", rwindow_w); @@ -489,6 +492,9 @@ int MainSession::save_defaults(BC_Hash *defaults) defaults->update("AWINDOW_W", awindow_w); defaults->update("AWINDOW_H", awindow_h); + defaults->update("BWINDOW_W", bwindow_w); + defaults->update("BWINDOW_H", bwindow_h); + defaults->update("EWINDOW_W", ewindow_w); defaults->update("EWINDOW_H", ewindow_h); @@ -568,3 +574,32 @@ int MainSession::save_defaults(BC_Hash *defaults) return 0; } + +Track *MainSession::drag_handle_track() +{ + Track *track = 0; + switch( current_operation ) { + case DRAG_EDITHANDLE1: + case DRAG_EDITHANDLE2: + track = drag_edit->edits->track; + break; + case DRAG_PLUGINHANDLE1: + case DRAG_PLUGINHANDLE2: + track = drag_plugin->edits->track; + break; + } + return track; +} + +void MainSession::update_clip_number() +{ + int clip_no = 0; + for( int i=mwindow->edl->clips.size(); --i>=0; ) { + EDL *clip_edl = mwindow->edl->clips[i]; + int no = 0; + if( sscanf(clip_edl->local_session->clip_title,_("Clip %d"),&no) == 1 ) + if( no > clip_no ) clip_no = no; + } + clip_number = clip_no+1; +} +