OpenShot Audio Library | OpenShotAudio 0.4.0
Loading...
Searching...
No Matches
juce::MidiBufferIterator Class Reference

#include <juce_MidiBuffer.h>

Public Types

using difference_type = std::iterator_traits<Ptr>::difference_type
using value_type = MidiMessageMetadata
using reference = MidiMessageMetadata
using pointer = void
using iterator_category = std::input_iterator_tag

Public Member Functions

 MidiBufferIterator (const uint8 *dataIn) noexcept
MidiBufferIteratoroperator++ () noexcept
MidiBufferIterator operator++ (int) noexcept
bool operator== (const MidiBufferIterator &other) const noexcept
bool operator!= (const MidiBufferIterator &other) const noexcept
reference operator* () const noexcept

Detailed Description

An iterator to move over contiguous raw MIDI data, which Allows iterating over a MidiBuffer using C++11 range-for syntax.

In the following example, we log all three-byte messages in a midi buffer.

void processBlock (AudioBuffer<float>&, MidiBuffer& midiBuffer) override
{
for (const MidiMessageMetadata metadata : midiBuffer)
if (metadata.numBytes == 3)
Logger::writeToLog (metadata.getMessage().getDescription());
}
static void JUCE_CALLTYPE writeToLog(const String &message)

Definition at line 78 of file juce_MidiBuffer.h.

Member Typedef Documentation

◆ difference_type

using juce::MidiBufferIterator::difference_type = std::iterator_traits<Ptr>::difference_type

Definition at line 95 of file juce_MidiBuffer.h.

◆ iterator_category

using juce::MidiBufferIterator::iterator_category = std::input_iterator_tag

Definition at line 99 of file juce_MidiBuffer.h.

◆ pointer

using juce::MidiBufferIterator::pointer = void

Definition at line 98 of file juce_MidiBuffer.h.

◆ reference

◆ value_type

Constructor & Destructor Documentation

◆ MidiBufferIterator()

juce::MidiBufferIterator::MidiBufferIterator ( const uint8 * dataIn)
inlineexplicitnoexcept

Constructs an iterator pointing at the message starting at the byte dataIn. dataIn must point to the start of a valid MIDI message. If it does not, calling other member functions on the iterator will result in undefined behaviour.

Definition at line 90 of file juce_MidiBuffer.h.

Member Function Documentation

◆ operator!=()

bool juce::MidiBufferIterator::operator!= ( const MidiBufferIterator & other) const
inlinenoexcept

Return false if this iterator points to the same message as another iterator instance, otherwise returns true.

Definition at line 117 of file juce_MidiBuffer.h.

◆ operator*()

MidiBufferIterator::reference juce::MidiBufferIterator::operator* ( ) const
noexcept

Return an instance of MidiMessageMetadata which describes the message to which the iterator is currently pointing.

Definition at line 96 of file juce_MidiBuffer.cpp.

◆ operator++() [1/2]

MidiBufferIterator & juce::MidiBufferIterator::operator++ ( )
noexcept

Make this iterator point to the next message in the buffer.

Definition at line 83 of file juce_MidiBuffer.cpp.

◆ operator++() [2/2]

MidiBufferIterator juce::MidiBufferIterator::operator++ ( int )
noexcept

Create a copy of this object, make this iterator point to the next message in the buffer, then return the copy.

Definition at line 89 of file juce_MidiBuffer.cpp.

◆ operator==()

bool juce::MidiBufferIterator::operator== ( const MidiBufferIterator & other) const
inlinenoexcept

Return true if this iterator points to the same message as another iterator instance, otherwise return false.

Definition at line 112 of file juce_MidiBuffer.h.


The documentation for this class was generated from the following files: