// // Programmer: Craig Stuart Sapp // Creation Date: Sat Feb 14 21:55:38 PST 2015 // Last Modified: Sat Apr 21 10:52:19 PDT 2018 Removed using namespace std; // Filename: midifile/include/MidiEventList.h // Website: http://midifile.sapp.org // Syntax: C++11 // vim: ts=3 noexpandtab // // Description: A class that stores a MidiEvents for a MidiFile track. // #ifndef _MIDIEVENTLIST_H_INCLUDED #define _MIDIEVENTLIST_H_INCLUDED #include "MidiEvent.h" #include namespace smf { class MidiEventList { public: MidiEventList (void); MidiEventList (const MidiEventList& other); MidiEventList (MidiEventList&& other); ~MidiEventList (); MidiEventList& operator= (MidiEventList& other); MidiEvent& operator[] (int index); const MidiEvent& operator[] (int index) const; MidiEvent& back (void); const MidiEvent& back (void) const; MidiEvent& last (void); const MidiEvent& last (void) const; MidiEvent& getEvent (int index); const MidiEvent& getEvent (int index) const; void clear (void); void reserve (int rsize); int getEventCount (void) const; int getSize (void) const; int size (void) const; void removeEmpties (void); int linkNotePairs (void); int linkEventPairs (void); void clearLinks (void); void clearSequence (void); int markSequence (int sequence = 1); int push (MidiEvent& event); int push_back (MidiEvent& event); int append (MidiEvent& event); // careful when using these, intended for internal use in MidiFile class: void detach (void); int push_back_no_copy (MidiEvent* event); // access to the list of MidiEvents for sorting with an external function: MidiEvent** data (void); protected: std::vector list; private: void sort (void); // MidiFile class calls sort() friend class MidiFile; }; int eventcompare(const void* a, const void* b); } // end of namespace smf #endif /* _MIDIEVENTLIST_H_INCLUDED */