+class PluginClientFrame : public ListItem<PluginClientFrame>
+{
+public:
+ PluginClientFrame();
+ virtual ~PluginClientFrame();
+// offset in EDL seconds for synchronizing with GUI
+ double position;
+};
+
+class PluginClientFrames : public List<PluginClientFrame>
+{
+public:
+ PluginClientFrames();
+ ~PluginClientFrames();
+
+ static int fwd_cmpr(PluginClientFrame *ap, PluginClientFrame *bp);
+ static int rev_cmpr(PluginClientFrame *ap, PluginClientFrame *bp);
+ void fwd_sort() { sort(fwd_cmpr); }
+ void rev_sort() { sort(rev_cmpr); }
+ void sort_position(int dir);
+ void reset();
+ void add_gui_frame(PluginClientFrame *frame);
+ void concatenate(PluginClientFrames *frames);
+ PluginClientFrame *get_gui_frame(double pos, int dir);
+
+ int count;
+};