notearray.h
00001 
00002 
00003 
00004 
00005 
00006 
00007 
00008 
00009 
00010 
00011 
00012 
00013 
00014 
00015 
00016 
00017 
00018 
00019 
00020 
00021 
00022 
00023 
00024 #ifndef NOTEARRAY_H
00025 #define NOTEARRAY_H
00026 
00027 #include <libkmid/dattypes.h>
00028 
00037 class NoteArray
00038 {
00039   private:
00040     class NoteArrayPrivate;
00041     NoteArrayPrivate *d;
00042 
00043   public:
00044   struct noteCmd {
00048     ulong ms; 
00049 
00053     int chn;
00054 
00058     int cmd; 
00059 
00065     int note; 
00066   };
00067   
00068   private:
00069   noteCmd *data;
00070   ulong totalAllocated;
00071 
00072   ulong last;
00073   noteCmd *lastAdded;
00074 
00079   noteCmd *it;
00080 
00081   noteCmd *pointerTo(ulong pos);
00082 
00083   public:
00087   NoteArray(void);
00091   ~NoteArray();
00092 
00099   void at(ulong pos, ulong ms,int chn,int cmd,int note);
00100 
00105   void at(ulong pos, noteCmd s);
00106 
00110   noteCmd at(int pos);
00111 
00117   void add(ulong ms,int chn,int cmd,int note);
00118 
00125   void iteratorBegin(void) { it=data; };
00126 
00130   noteCmd *get(void)       { return it; };
00131 
00135   void next(void);
00136 
00141   void moveIteratorTo(ulong ms,int *pgm=NULL);
00142 };
00143 
00144 #endif
 
This file is part of the documentation for libkmid Library Version 3.2.0.