#include "renderengine.h"
#include "timelinepane.h"
#include "track.h"
+#include "tracks.h"
#include "transportque.h"
#include "zwindow.h"
#include "zwindowgui.h"
idx = -1;
edl = 0;
highlighted = 0;
- destroy = 1;
+ playable = 1;
title[0] = 0;
zgui = 0;
+ zoom = 0;
}
ZWindow::~ZWindow()
void ZWindow::handle_done_event(int result)
{
- if( destroy )
+ stop_playback(1);
+ if( result )
mwindow->del_mixer(this);
idx = -1;
}
void ZWindow::change_source(EDL *edl)
{
if( this->edl == edl ) return;
- if( !edl || !this->edl || this->edl->equivalent_output(edl) >= 0 )
- zgui->playback_engine->refresh_frame(CHANGE_ALL, edl);
+ zgui->playback_engine->refresh_frame(CHANGE_ALL, edl);
if( this->edl )
this->edl->remove_user();
this->edl = edl;
void ZWindow::handle_mixer(int command, int wait_tracking,
int use_inout, int toggle_audio, int loop_play, float speed)
{
+ if( !playable ) return;
PlaybackEngine *engine = zgui->playback_engine;
engine->next_command->toggle_audio = toggle_audio;
engine->next_command->loop_play = loop_play;
void ZWindow::set_title(const char *tp)
{
+ Track *track = 0;
Mixer *mixer = mwindow->edl->mixers.get_mixer(idx);
- if( mixer ) mixer->set_title(tp);
+ if( mixer ) {
+ mixer->set_title(tp);
+ for( track=mwindow->edl->tracks->first; track; track=track->next ) {
+ if( track->data_type != TRACK_VIDEO ) continue;
+ int mixer_id = track->get_mixer_id();
+ int k = mixer->mixer_ids.size();
+ while( --k >= 0 && mixer_id != mixer->mixer_ids[k] );
+ if( k >= 0 ) break;
+ }
+ }
char *cp = title, *ep = cp + sizeof(title)-1;
- cp += snprintf(title, ep-cp, _("Mixer %d"), idx);
+ cp += snprintf(title, ep-cp, track ? track->title : _("Mixer %d"), idx);
if( tp ) cp += snprintf(cp, ep-cp, ": %s", tp);
*cp = 0;
}