Skip to content

Commit

Permalink
Merge pull request rism-digital#3963 from rettinghaus/develop-midi [s…
Browse files Browse the repository at this point in the history
…kip-ci]

update midifile to upstream
  • Loading branch information
lpugin authored Feb 24, 2025
2 parents 5551ddc + 83fbe33 commit 081ada1
Show file tree
Hide file tree
Showing 7 changed files with 312 additions and 45 deletions.
1 change: 1 addition & 0 deletions include/midi/MidiEvent.h
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,7 @@ class MidiEvent : public MidiMessage {
void linkEvent (MidiEvent& mev);
void linkEvents (MidiEvent& mev);
int isLinked (void) const;
int hasLink (void) const { return isLinked(); }
MidiEvent* getLinkedEvent (void);
const MidiEvent* getLinkedEvent (void) const;
int getTickDuration (void) const;
Expand Down
14 changes: 10 additions & 4 deletions include/midi/MidiEventList.h
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,9 @@ class MidiEventList {
int getSize (void) const;
int size (void) const;
void removeEmpties (void);
int linkNotePairs (void);
int linkNotePairsFIFO (void);
int linkNotePairsLIFO (void);
int linkNotePairs (void) { return linkNotePairsFIFO(); }
int linkEventPairs (void);
void clearLinks (void);
void clearSequence (void);
Expand All @@ -65,14 +67,18 @@ class MidiEventList {
std::vector<MidiEvent*> list;

private:
void sort (void);
void sort (void) { return sortNoteOnsBeforeOffs(); }
void sortNoteOnsBeforeOffs (void);
void sortNoteOffsBeforeOns (void);

// MidiFile class calls sort()
friend class MidiFile;
};

static int eventCompareNoteOffsBeforeOns(const void* a, const void* b);
static int eventCompareNoteOnsBeforeOffs(const void* a, const void* b);
static int eventCompare(const void* a, const void* b) { return eventCompareNoteOnsBeforeOffs(a, b); }
};

int eventcompare(const void* a, const void* b);

} // end of namespace smf

Expand Down
20 changes: 13 additions & 7 deletions include/midi/MidiFile.h
Original file line number Diff line number Diff line change
Expand Up @@ -107,12 +107,16 @@ class MidiFile {
int getSplitTrack (int index) const;

// track sorting funcionality:
void sortTrack (int track);
void sortTracks (void);
void markSequence (void);
void markSequence (int track, int sequence = 1);
void clearSequence (void);
void clearSequence (int track);
void sortTrack (int track) { sortTrackNoteOnsBeforeOffs(track); }
void sortTrackNoteOnsBeforeOffs (int track);
void sortTrackNoteOffsBeforeOns (int track);
void sortTracks (void) { sortTracksNoteOnsBeforeOffs(); }
void sortTracksNoteOnsBeforeOffs(void);
void sortTracksNoteOffsBeforeOns(void);
void markSequence (void);
void markSequence (int track, int sequence = 1);
void clearSequence (void);
void clearSequence (int track);

// track manipulation functionality:
int addTrack (void);
Expand All @@ -139,7 +143,9 @@ class MidiFile {
double getFileDurationInSeconds (void);

// note-analysis functions:
int linkNotePairs (void);
int linkNotePairsFIFO (void);
int linkNotePairsLIFO (void);
int linkNotePairs (void) { return linkNotePairsFIFO(); }
int linkEventPairs (void);
void clearLinks (void);

Expand Down
2 changes: 1 addition & 1 deletion include/midi/MidiMessage.h
Original file line number Diff line number Diff line change
Expand Up @@ -173,7 +173,7 @@ class MidiMessage : public std::vector<uchar> {
bool isKeySignature (void) const;
bool isEndOfTrack (void) const;

std::string getMetaContent (void);
std::string getMetaContent (void) const;
void setMetaContent (const std::string& content);
void setTempo (double tempo);
void setTempoMicroseconds (int microseconds);
Expand Down
Loading

0 comments on commit 081ada1

Please sign in to comment.