10 #include "mwindow.inc"
11 #include "recordlabel.inc"
12 #include "stringfile.inc"
13 #include "timebar.inc"
17 class LabelToggle
: public BC_Label
20 LabelToggle(MWindow
*mwindow
, Label
*label
, int x
, int y
, long position
);
28 class Label
: public ListItem
<Label
>
31 Label(EDL
*edl
, Labels
*labels
, double position
);
42 class Labels
: public List
<Label
>
45 Labels(EDL
*edl
, char *xml_tag
);
50 Labels
& operator=(Labels
&that
);
51 void copy_from(Labels
*labels
);
52 int toggle_label(double start
, double end
);
54 int save(FileXML
*xml
);
55 int load(FileXML
*xml
, uint32_t load_flags
);
56 void insert_labels(Labels
*labels
,
59 int paste_silence
= 1);
61 int modify_handles(double oldposition
,
66 int copy(double start
, double end
, FileXML
*xml
);
67 int copy_length(long start
, long end
); // return number of Labels in selection
68 int insert(double start
, double length
);
69 int paste(long start
, long end
, long total_length
, FileXML
*xml
);
70 int paste_output(long startproject
, long endproject
, long startsource
, long endsource
, RecordLabels
*labels
);
71 // Setting follow to 1 causes labels to move forward after clear.
72 // Setting it to 0 implies ignoring the labels follow edits setting.
73 int clear(double start
, double end
, int follow
= 1);
74 int paste_silence(double start
, double end
);
75 int optimize(); // delete duplicates
76 // Get nearest labels or 0 if start or end of timeline
77 Label
* prev_label(double position
);
78 Label
* next_label(double position
);
80 Label
* label_of(double position
); // first label on or after position