OpenShot Audio Library | OpenShotAudio 0.3.2
Loading...
Searching...
No Matches
juce_MidiBuffer.h
1/*
2 ==============================================================================
3
4 This file is part of the JUCE library.
5 Copyright (c) 2017 - ROLI Ltd.
6
7 JUCE is an open source library subject to commercial or open-source
8 licensing.
9
10 The code included in this file is provided under the terms of the ISC license
11 http://www.isc.org/downloads/software-support-policy/isc-license. Permission
12 To use, copy, modify, and/or distribute this software for any purpose with or
13 without fee is hereby granted provided that the above copyright notice and
14 this permission notice appear in all copies.
15
16 JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
17 EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
18 DISCLAIMED.
19
20 ==============================================================================
21*/
22
23namespace juce
24{
25
26//==============================================================================
42class JUCE_API MidiBuffer
43{
44public:
45 //==============================================================================
47 MidiBuffer() noexcept;
48
50 explicit MidiBuffer (const MidiMessage& message) noexcept;
51
53 MidiBuffer (const MidiBuffer&) noexcept;
54
56 MidiBuffer& operator= (const MidiBuffer&) noexcept;
57
60
61 //==============================================================================
63 void clear() noexcept;
64
70 void clear (int start, int numSamples);
71
75 bool isEmpty() const noexcept;
76
83 int getNumEvents() const noexcept;
84
96 void addEvent (const MidiMessage& midiMessage, int sampleNumber);
97
114 void addEvent (const void* rawMidiData,
116 int sampleNumber);
117
132 void addEvents (const MidiBuffer& otherBuffer,
133 int startSample,
134 int numSamples,
135 int sampleDeltaToAdd);
136
140 int getFirstEventTime() const noexcept;
141
145 int getLastEventTime() const noexcept;
146
147 //==============================================================================
153 void swapWith (MidiBuffer&) noexcept;
154
159 void ensureSize (size_t minimumNumBytes);
160
161 //==============================================================================
170 class JUCE_API Iterator
171 {
172 public:
173 //==============================================================================
175 Iterator (const MidiBuffer&) noexcept;
176
178 Iterator (const Iterator&) = default;
179
182
183 //==============================================================================
187 void setNextSamplePosition (int samplePosition) noexcept;
188
198 bool getNextEvent (MidiMessage& result,
200
214 bool getNextEvent (const uint8* &midiData,
217
218 private:
219 //==============================================================================
220 const MidiBuffer& buffer;
221 const uint8* data;
222 };
223
228 Array<uint8> data;
229
230private:
231 JUCE_LEAK_DETECTOR (MidiBuffer)
232};
233
234} // namespace juce
Iterator(const Iterator &)=default