for(int i = 0; i < clips.size(); i++)
clips.get(i)->Garbage::remove_user();
clips.remove_all();
+ mixers.remove_all_objects();
}
if(load_flags & LOAD_TIMEBAR)
new_folder(folder);
}
else
+ if(file->tag.title_is("MIXERS"))
+ {
+ if((load_flags & LOAD_SESSION))
+ mixers.load(file);
+ else
+ result = file->skip_tag();
+ }
+ else
if(file->tag.title_is("ASSETS"))
{
if(load_flags & LOAD_ASSETS)
copy_session(edl);
copy_assets(edl);
copy_clips(edl);
+ copy_mixers(edl);
tracks->copy_from(edl->tracks);
labels->copy_from(edl->labels);
return 0;
}
}
+void EDL::copy_mixers(EDL *edl)
+{
+ if(this == edl) return;
+ mixers.copy_from(edl->mixers);
+}
+
void EDL::copy_session(EDL *edl, int session_only)
{
if(this == edl) return;
output_path,
1,
0);
+ mixers.save(file);
}
file->append_newline();
}
}
+void EDL::unset_inoutpoint()
+{
+ local_session->unset_inpoint();
+ local_session->unset_outpoint();
+}
-int EDL::clear(double start,
- double end,
- int clear_labels,
- int clear_plugins,
- int edit_autos)
+int EDL::blade(double position)
+{
+ return tracks->blade(position);
+}
+
+int EDL::clear(double start, double end,
+ int clear_labels, int clear_plugins, int edit_autos)
{
if(start == end)
{
if(new_nested_edl)
{
- length = new_nested_edl->tracks->total_playable_length();
+ length = new_nested_edl->tracks->total_length();
layers = 1;
channels = new_nested_edl->session->audio_channels;
}
}
}
-// Convert position to frames if cursor alignment is enabled
+// aligned frame time
+double EDL::frame_align(double position, int round)
+{
+ double frame_pos = position * session->frame_rate;
+ frame_pos = (int64_t)(frame_pos + (round ? 0.5 : 1e-6));
+ position = frame_pos / session->frame_rate;
+ return position;
+}
+
+// Convert position to frames if alignment is enabled.
double EDL::align_to_frame(double position, int round)
{
- if( session->cursor_on_frames && session->frame_rate > 0 ) {
- double frame_no = position * session->frame_rate;
- int64_t frame_pos = frame_no + (round ? 0.5 : 1e-6);
- double pos = frame_pos / session->frame_rate;
- if( !EQUIV(pos, position) ) position = pos;
- }
+ if( session->cursor_on_frames )
+ position = frame_align(position, round);
return position;
}
int64_t EDL::get_audio_samples()
{
- return (int64_t)(tracks->total_playable_length() *
+ return (int64_t)(tracks->total_length() *
session->sample_rate);
}
int64_t EDL::get_video_frames()
{
- return (int64_t)(tracks->total_playable_length() *
+ return (int64_t)(tracks->total_length() *
session->frame_rate);
}
double EDL::next_edit(double position)
{
Units::fix_double(&position);
- double new_position = INFINITY;
+ double new_position = tracks->total_length();
double max_rate = get_frame_rate();
int sample_rate = get_sample_rate();