X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fassetpopup.C;h=175494b5a3535c0f9e94825a2f5b7d1531115af3;hb=ad2996ab94e6e12c9c14a5b9f14792f76111dff7;hp=75c1bfa2d1efeaf663ae9d355ad4830e978d52ec;hpb=9d832a1fff11b11aaa1108c460690ed05e2bdc05;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/cinelerra/assetpopup.C b/cinelerra-5.1/cinelerra/assetpopup.C index 75c1bfa2..175494b5 100644 --- a/cinelerra-5.1/cinelerra/assetpopup.C +++ b/cinelerra-5.1/cinelerra/assetpopup.C @@ -44,6 +44,7 @@ #include "tracks.h" #include "vwindow.h" #include "vwindowgui.h" +#include "zwindow.h" AssetPopup::AssetPopup(MWindow *mwindow, AWindowGUI *gui) @@ -67,6 +68,7 @@ void AssetPopup::create_objects() add_item(index = new AssetPopupBuildIndex(mwindow, this)); add_item(view = new AssetPopupView(mwindow, this)); add_item(view_window = new AssetPopupViewWindow(mwindow, this)); + add_item(mixer = new AssetPopupMixer(mwindow, this)); add_item(new AssetPopupPaste(mwindow, this)); add_item(menu_item = new BC_MenuItem(_("Match..."))); menu_item->add_submenu(submenu = new BC_SubMenu()); @@ -145,7 +147,7 @@ AssetPopupInfo::~AssetPopupInfo() int AssetPopupInfo::handle_event() { int cur_x, cur_y; - popup->gui->get_abs_cursor_xy(cur_x, cur_y); + popup->gui->get_abs_cursor(cur_x, cur_y); if( mwindow->session->drag_assets->size() ) { AssetEdit *asset_edit = mwindow->awindow->get_asset_editor(); asset_edit->edit_asset( @@ -256,6 +258,47 @@ int AssetPopupViewWindow::handle_event() return 1; } +AssetPopupMixer::AssetPopupMixer(MWindow *mwindow, AssetPopup *popup) + : BC_MenuItem(_("Open Mixers")) +{ + this->mwindow = mwindow; + this->popup = popup; +} + +AssetPopupMixer::~AssetPopupMixer() +{ +} + +int AssetPopupMixer::handle_event() +{ + mwindow->select_zwindow(0); + for( int i=0; isession->drag_assets->total; ++i ) { + Indexable *indexable = mwindow->session->drag_assets->values[i]; + ArrayList new_assets; + new_assets.append(indexable); + Track *track = mwindow->edl->tracks->last; + mwindow->load_assets(&new_assets, -1, LOADMODE_NEW_TRACKS, 0, 0, 0, 0, 0, 0); + track = !track ? mwindow->edl->tracks->first : track->next; + Mixer *mixer = 0; + ZWindow *zwindow = mwindow->get_mixer(mixer); + while( track ) { + track->play = track->record = 0; + if( track->data_type == TRACK_VIDEO ) { + sprintf(track->title, _("Mixer %d"), zwindow->idx); + } + mixer->mixer_ids.append(track->get_mixer_id()); + track = track->next; + } + char *path = indexable->path; + char *tp = strrchr(path, '/'); + if( !tp ) tp = path; else ++tp; + zwindow->set_title(tp); + zwindow->start(); + } + mwindow->queue_mixers(mwindow->edl,CURRENT_FRAME,0,0,1,0); + mwindow->resync_guis(); + return 1; +} AssetPopupPaste::AssetPopupPaste(MWindow *mwindow, AssetPopup *popup) : BC_MenuItem(_("Paste")) @@ -413,7 +456,7 @@ int AssetListCopy::handle_event() } *cp = 0; int cur_x, cur_y; - gui->get_abs_cursor_xy(cur_x, cur_y, 0); + gui->get_abs_cursor(cur_x, cur_y, 0); gui->unlock_window(); if( n ) { @@ -527,7 +570,7 @@ int AssetListPaste::handle_event() else paste_dialog->close_window(); int cur_x, cur_y; - gui->get_abs_cursor_xy(cur_x, cur_y, 0); + gui->get_abs_cursor(cur_x, cur_y, 0); paste_dialog->start(cur_x, cur_y); return 1; }