LMMS
Loading...
Searching...
No Matches
MidiMessageSequence.h
Go to the documentation of this file.
1/*
2 ==============================================================================
3
4 This file is part of the Water library.
5 Copyright (c) 2016 ROLI Ltd.
6 Copyright (C) 2017-2022 Filipe Coelho <falktx@falktx.com>
7
8 Permission is granted to use this software under the terms of the ISC license
9 http://www.isc.org/downloads/software-support-policy/isc-license/
10
11 Permission to use, copy, modify, and/or distribute this software for any
12 purpose with or without fee is hereby granted, provided that the above
13 copyright notice and this permission notice appear in all copies.
14
15 THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH REGARD
16 TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
17 FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT,
18 OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
19 USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
20 TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
21 OF THIS SOFTWARE.
22
23 ==============================================================================
24*/
25
26#ifndef WATER_MIDIMESSAGESEQUENCE_H_INCLUDED
27#define WATER_MIDIMESSAGESEQUENCE_H_INCLUDED
28
29#include "MidiMessage.h"
30#include "../containers/Array.h"
32
33namespace water {
34
35//==============================================================================
45{
46public:
47 //==============================================================================
50
53
56
59
60 //==============================================================================
69 {
70 public:
71 //==============================================================================
74
77
87
88 private:
89 //==============================================================================
90 friend class MidiMessageSequence;
92
94 };
95
96 //==============================================================================
98 void clear();
99
102
105
106 //==============================================================================
110 double getStartTime() const noexcept;
111
115 double getEndTime() const noexcept;
116
120 double getEventTime (int index) const noexcept;
121
122 //==============================================================================
136 double timeAdjustment = 0);
137
146 double timeAdjustmentDelta);
147
148 //==============================================================================
156
161 void sort() noexcept;
162
163 //==============================================================================
166
167private:
168 //==============================================================================
169 friend class MidiFile;
171};
172
173}
174
175#endif // WATER_MIDIMESSAGESEQUENCE_H_INCLUDED
#define noexcept
Definition DistrhoDefines.h:72
Definition MidiMessage.h:40
Definition MidiMessageSequence.h:69
friend class MidiMessageSequence
Definition MidiMessageSequence.h:90
MidiMessage message
Definition MidiMessageSequence.h:76
MidiEventHolder(const MidiMessage &)
Definition MidiMessageSequence.cpp:179
MidiEventHolder * noteOffObject
Definition MidiMessageSequence.h:86
~MidiEventHolder()
Definition MidiMessageSequence.cpp:184
int getNumEvents() const noexcept
Definition MidiMessageSequence.cpp:61
void sort() noexcept
Definition MidiMessageSequence.cpp:133
MidiMessageSequence & operator=(const MidiMessageSequence &)
Definition MidiMessageSequence.cpp:40
void clear()
Definition MidiMessageSequence.cpp:56
void updateMatchedPairs() noexcept
Definition MidiMessageSequence.cpp:139
MidiEventHolder * addEvent(const MidiMessage &newMessage, double timeAdjustment=0)
Definition MidiMessageSequence.cpp:91
double getEventTime(int index) const noexcept
Definition MidiMessageSequence.cpp:82
void addSequence(const MidiMessageSequence &other, double timeAdjustmentDelta)
Definition MidiMessageSequence.cpp:118
~MidiMessageSequence()
Definition MidiMessageSequence.cpp:52
friend class MidiFile
Definition MidiMessageSequence.h:169
MidiMessageSequence()
Definition MidiMessageSequence.cpp:30
MidiEventHolder * getEventPointer(int index) const noexcept
Definition MidiMessageSequence.cpp:66
double getStartTime() const noexcept
Definition MidiMessageSequence.cpp:72
double getEndTime() const noexcept
Definition MidiMessageSequence.cpp:77
OwnedArray< MidiEventHolder > list
Definition MidiMessageSequence.h:170
void swapWith(MidiMessageSequence &) noexcept
Definition MidiMessageSequence.cpp:47
Definition OwnedArray.h:57
Definition AudioSampleBuffer.h:33
#define const
Definition zconf.h:137