tracks->first->edits->first->asset : 0;
}
+Track *EDL::add_new_track(int data_type)
+{
+ Track *new_track = 0;
+ switch( data_type ) {
+ case TRACK_VIDEO:
+ ++session->video_tracks;
+ new_track = tracks->add_video_track(0, 0);
+ break;
+ case TRACK_AUDIO:
+ ++session->audio_tracks;
+ new_track = tracks->add_audio_track(0, 0);
+ break;
+ case TRACK_SUBTITLE:
+ new_track = tracks->add_subttl_track(0, 0);
+ break;
+ }
+ return new_track;
+}
+
double EDL::get_cursor_position(int cursor_x, int pane_no)
{
return (double)cursor_x * local_session->zoom_sample / session->sample_rate +
local_session->zoom_sample / session->sample_rate;
}
+int EDL::in_use(Indexable *indexable)
+{
+ for( Track *track=tracks->first; track; track=track->next ) {
+ for( Edit *edit=track->edits->first; edit; edit=edit->next ) {
+ Indexable *idxbl = (Indexable *)edit->asset;
+ if( !idxbl ) idxbl = (Indexable *)edit->nested_edl;
+ if( !idxbl ) continue;
+ if( idxbl->id == indexable->id ) return 1;
+ if( !indexable->is_asset != !idxbl->is_asset ) continue;
+ if( !strcmp(idxbl->path, indexable->path) ) return 1;
+ }
+ }
+ for( int i=0; i<clips.size(); ++i )
+ if( clips[i]->in_use(indexable) ) return 1;
+ for( int i=0; i<nested_edls.size(); ++i )
+ if( nested_edls[i]->in_use(indexable) ) return 1;
+ return 0;
+}
+