#include "mainsession.h"
#include "mainundo.h"
#include "mbuttons.h"
+#include "mixersalign.h"
#include "mutex.h"
#include "mwindowgui.h"
#include "mwindow.h"
speed_edl = 0;
proxy_beep = 0;
shuttle = 0;
+ mixers_align = 0;
}
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();
{
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, 1);
session = new MainSession(this);
session->load_defaults(defaults);
// set x11_host, screens, window_config
}
}
-ZWindow *MWindow::create_mixer(Indexable *indexable)
+ZWindow *MWindow::create_mixer(Indexable *indexable, double position)
{
ArrayList<Indexable*> 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);
return zwindow;
}
-void MWindow::create_mixers()
+void MWindow::create_mixers(double position)
{
if( !session->drag_assets->size() &&
!session->drag_clips->size() ) return;
for( int i=0; i<session->drag_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; i<session->drag_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);
}
ILACEFIXMETHODLISTADD(ILACE_FIXMETHOD_NONE);
ILACEFIXMETHODLISTADD(ILACE_FIXMETHOD_UPONE);
ILACEFIXMETHODLISTADD(ILACE_FIXMETHOD_DOWNONE);
+
+ mixers_align = new MixersAlign(this);
}
void MWindow::init_indexes()
BC_WindowBase::get_resources()->vframe_shm = 1;
}
+int MWindow::uses_opengl()
+{
+ if( !playback_3d || !playback_3d->running() ) return 0;
+ PlaybackConfig *playback_config = edl->session->playback_config;
+ return playback_config->vconfig->driver == PLAYBACK_X11_GL ? 1 : 0;
+}
void MWindow::show_splash()
{