MIPI - Physical Interface for MIDI Files
Loading...
Searching...
No Matches
MidiEventList.h
Go to the documentation of this file.
1//
2// Programmer: Craig Stuart Sapp <craig@ccrma.stanford.edu>
3// Creation Date: Sat Feb 14 21:55:38 PST 2015
4// Last Modified: Sat Apr 21 10:52:19 PDT 2018 Removed using namespace std;
5// Filename: midifile/include/MidiEventList.h
6// Website: http://midifile.sapp.org
7// Syntax: C++11
8// vim: ts=3 noexpandtab
9//
10// Description: A class that stores a MidiEvents for a MidiFile track.
11//
12
13#ifndef _MIDIEVENTLIST_H_INCLUDED
14#define _MIDIEVENTLIST_H_INCLUDED
15
16#include "MidiEvent.h"
17
18#include <vector>
19
20
21namespace smf {
22
24 public:
25 MidiEventList (void);
26 MidiEventList (const MidiEventList& other);
28
30
32 MidiEvent& operator[] (int index);
33 const MidiEvent& operator[] (int index) const;
34 MidiEvent& at (int index);
35 const MidiEvent& at (int index) const;
36
37 MidiEvent& back (void);
38 const MidiEvent& back (void) const;
39 MidiEvent& last (void);
40 const MidiEvent& last (void) const;
41 MidiEvent& getEvent (int index);
42 const MidiEvent& getEvent (int index) const;
43 void clear (void);
44 void reserve (int rsize);
45 int getEventCount (void) const;
46 int getSize (void) const;
47 int size (void) const;
48 void removeEmpties (void);
49 int linkNotePairsFIFO (void);
50 int linkNotePairsLIFO (void);
51 int linkNotePairs (void) { return linkNotePairsFIFO(); }
52 int linkEventPairs (void);
53 void clearLinks (void);
54 void clearSequence (void);
55 int markSequence (int sequence = 1);
56
57 int push (MidiEvent& event);
58 int push_back (MidiEvent& event);
59 int append (MidiEvent& event);
60
61 // careful when using these, intended for internal use in MidiFile class:
62 void detach (void);
63 int push_back_no_copy (MidiEvent* event);
64
65 // access to the list of MidiEvents for sorting with an external function:
66 MidiEvent** data (void);
67
68 protected:
69 std::vector<MidiEvent*> list;
70
71 private:
72 void sort (void) { return sortNoteOnsBeforeOffs(); }
73 void sortNoteOnsBeforeOffs (void);
74 void sortNoteOffsBeforeOns (void);
75
76 // MidiFile class calls sort()
77 friend class MidiFile;
78
79 static int eventCompareNoteOffsBeforeOns(const void* a, const void* b);
80 static int eventCompareNoteOnsBeforeOffs(const void* a, const void* b);
81 static int eventCompare(const void* a, const void* b) { return eventCompareNoteOnsBeforeOffs(a, b); }
82};
83
84
85} // end of namespace smf
86
87#endif /* _MIDIEVENTLIST_H_INCLUDED */
88
89
90
Definition MidiEventList.h:23
void sortNoteOnsBeforeOffs(void)
Definition MidiEventList.cpp:646
MidiEvent & operator[](int index)
Definition MidiEventList.cpp:82
int size(void) const
Definition MidiEventList.cpp:219
int getEventCount(void) const
Definition MidiEventList.cpp:227
void reserve(int rsize)
Definition MidiEventList.cpp:198
MidiEvent & getEvent(int index)
Definition MidiEventList.cpp:150
MidiEvent & last(void)
Definition MidiEventList.cpp:133
static int eventCompareNoteOffsBeforeOns(const void *a, const void *b)
Definition MidiEventList.cpp:772
int linkNotePairs(void)
Definition MidiEventList.h:51
MidiEventList & operator=(MidiEventList &other)
Definition MidiEventList.cpp:627
void sortNoteOffsBeforeOns(void)
Definition MidiEventList.cpp:650
MidiEvent & back(void)
Definition MidiEventList.cpp:120
static int eventCompare(const void *a, const void *b)
Definition MidiEventList.h:81
void clearLinks(void)
Definition MidiEventList.cpp:542
MidiEvent & at(int index)
Definition MidiEventList.cpp:98
void clearSequence(void)
Definition MidiEventList.cpp:558
void clear(void)
Definition MidiEventList.cpp:167
~MidiEventList()
Definition MidiEventList.cpp:71
void sort(void)
Definition MidiEventList.h:72
int push_back(MidiEvent &event)
Definition MidiEventList.cpp:257
static int eventCompareNoteOnsBeforeOffs(const void *a, const void *b)
Definition MidiEventList.cpp:680
MidiEvent ** data(void)
Definition MidiEventList.cpp:186
int linkEventPairs(void)
Definition MidiEventList.cpp:306
int push(MidiEvent &event)
Definition MidiEventList.cpp:249
int linkNotePairsFIFO(void)
Definition MidiEventList.cpp:311
int getSize(void) const
Definition MidiEventList.cpp:211
void detach(void)
Definition MidiEventList.cpp:602
int append(MidiEvent &event)
Definition MidiEventList.cpp:239
std::vector< MidiEvent * > list
Definition MidiEventList.h:69
MidiEventList(void)
Definition MidiEventList.cpp:32
int markSequence(int sequence=1)
Definition MidiEventList.cpp:581
int push_back_no_copy(MidiEvent *event)
Definition MidiEventList.cpp:615
void removeEmpties(void)
Definition MidiEventList.cpp:270
int linkNotePairsLIFO(void)
Definition MidiEventList.cpp:403
Definition MidiEvent.h:25
Definition MidiFile.h:44
Definition Binasc.h:22