}
}
-void Tracks::select_affected_edits(double position, Track *start_track)
+void Tracks::select_affected_edits(double position, Track *start_track, int sense)
{
for( Track *track=start_track; track; track=track->next ) {
if( !track->record ) continue;
for( Edit *edit=track->edits->first; edit; edit=edit->next ) {
+ if( edit->silence() ) continue;
double startproject = track->from_units(edit->startproject);
if( edl->equivalent(startproject, position) ) {
- edit->is_selected = 1;
+ edit->is_selected = sense >= 0 ? sense :
+ edit->is_selected ? 0 : 1;
break;
}
}
{
drag_edits->remove_all();
for( Track *track=first; track; track=track->next ) {
+ if( !track->record ) continue;
for( Edit *edit=track->edits->first; edit; edit=edit->next ) {
if( !edit->is_selected ) continue;
drag_edits->append(edit);
return 0;
}
+int Tracks::new_group(int id)
+{
+ int count = 0;
+ for( Track *track=first; track; track=track->next ) {
+ if( !track->record ) continue;
+ for( Edit *edit=track->edits->first; edit; edit=edit->next ) {
+ if( edit->group_id > 0 ) continue;
+ if( !edit->is_selected ) continue;
+ edit->group_id = id;
+ ++count;
+ }
+ }
+ return count;
+}
+
+int Tracks::set_group_selected(int id, int v)
+{
+ int count = 0;
+ for( Track *track=first; track; track=track->next ) {
+ for( Edit *edit=track->edits->first; edit; edit=edit->next ) {
+ if( edit->group_id != id ) continue;
+ edit->is_selected = v >= 0 ? v : !edit->is_selected ? 1 : 0;
+ ++count;
+ }
+ }
+ return count;
+}
+
+int Tracks::del_group(int id)
+{
+ int count = 0;
+ for( Track *track=first; track; track=track->next ) {
+ for( Edit *edit=track->edits->first; edit; edit=edit->next ) {
+ if( edit->group_id != id ) continue;
+ edit->is_selected = 1;
+ edit->group_id = 0;
+ ++count;
+ }
+ }
+ return count;
+}
Track *Tracks::get(int idx, int data_type)
{
return 0;
}
-