set_fauto_xyz(AUTOMATION_CAMERA_X, x, y, z);
}
+int Track::is_hidden()
+{
+ if( master ) return 0;
+ if( edl->local_session->gang_tracks == GANG_MEDIA ) return 1;
+ if( edl->local_session->gang_tracks == GANG_CHANNELS ) {
+ for( Track *track=previous; track; track=track->previous ) {
+ if( track->data_type == data_type ) return 1;
+ if( track->master ) return 0;
+ }
+ }
+ return 0;
+}
+
Track *Track::gang_master()
{
Track *track = this;
- switch( edl->session->gang_tracks ) {
+ switch( edl->local_session->gang_tracks ) {
case GANG_NONE:
return track;
case GANG_CHANNELS: {
Track *current = track;
int data_type = track->data_type;
- while( current && !track->master ) {
+ while( current && !current->master ) {
if( !(current = current->previous) ) break;
if( current->data_type == data_type ) track = current;
- if( track->master ) break;
}
break; }
case GANG_MEDIA: {
return track;
}
-int Track::is_hidden()
+int Track::in_gang(Track *track)
{
- if( master ) return 0;
- if( edl->session->gang_tracks == GANG_MEDIA ) return 1;
- if( edl->session->gang_tracks == GANG_CHANNELS ) {
- for( Track *track=previous; track; track=track->previous ) {
- if( track->data_type == data_type ) return 1;
- if( track->master ) return 0;
- }
- }
- return 0;
+ if( edl->local_session->gang_tracks == GANG_NONE ) return ganged;
+ Track *current = this;
+ while( current && !current->master ) current = current->previous;
+ while( track && !track->master ) track = track->previous;
+ return current == track ? 1 : 0;
}
+
int Track::is_armed()
{
+// return armed && gang_master()->armed;
return gang_master()->armed;
}
int Track::is_ganged()
{
+// return ganged && gang_master()->ganged;
return gang_master()->ganged;
}
int Track::armed_gang(Track *track)
{
- if( edl->session->gang_tracks == GANG_NONE ) return ganged;
+// if( !track->ganged ) return 0;
+ if( edl->local_session->gang_tracks == GANG_NONE ) return ganged;
Track *current = gang_master();
+// if( !current->ganged ) return 0;
for(;;) {
if( track == current ) return 1;
current = current->next;
return 1;
}
+int Track::plays()
+{
+ return play && gang_master()->play;
+}
int Track::index_in(Mixer *mixer)
{