OpenShot Audio Library | OpenShotAudio
0.3.1
juce_MidiRPN.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
23
namespace
juce
24
{
25
26
//==============================================================================
32
struct
MidiRPNMessage
33
{
35
int
channel
;
36
38
int
parameterNumber
;
39
44
int
value
;
45
47
bool
isNRPN
;
48
52
bool
is14BitValue
;
53
};
54
55
//==============================================================================
67
class
JUCE_API
MidiRPNDetector
68
{
69
public
:
71
MidiRPNDetector
() noexcept;
72
74
~
MidiRPNDetector
() noexcept;
75
79
void
reset() noexcept;
80
81
//==============================================================================
89
bool
parseControllerMessage (
int
midiChannel,
90
int
controllerNumber,
91
int
controllerValue,
92
MidiRPNMessage
& result) noexcept;
93
94
private
:
95
//==============================================================================
96
struct
ChannelState
97
{
98
ChannelState() noexcept;
99
bool
handleController (
int
channel,
int
controllerNumber,
100
int
value,
MidiRPNMessage
&) noexcept;
101
void
resetValue() noexcept;
102
bool
sendIfReady (
int
channel,
MidiRPNMessage
&) noexcept;
103
104
uint8 parameterMSB, parameterLSB, valueMSB, valueLSB;
105
bool
isNRPN;
106
};
107
108
//==============================================================================
109
ChannelState states[16];
110
111
JUCE_LEAK_DETECTOR (
MidiRPNDetector
)
112
};
113
114
//==============================================================================
123
class
JUCE_API
MidiRPNGenerator
124
{
125
public
:
126
//==============================================================================
128
static
MidiBuffer
generate (
MidiRPNMessage
message);
129
130
//==============================================================================
147
static
MidiBuffer
generate (
int
channel,
148
int
parameterNumber,
149
int
value,
150
bool
isNRPN =
false
,
151
bool
use14BitValue =
true
);
152
};
153
154
}
// namespace juce
juce::MidiBuffer
Definition:
juce_MidiBuffer.h:43
juce::MidiRPNDetector
Definition:
juce_MidiRPN.h:68
juce::MidiRPNGenerator
Definition:
juce_MidiRPN.h:124
juce::MidiRPNMessage
Definition:
juce_MidiRPN.h:33
juce::MidiRPNMessage::isNRPN
bool isNRPN
Definition:
juce_MidiRPN.h:47
juce::MidiRPNMessage::is14BitValue
bool is14BitValue
Definition:
juce_MidiRPN.h:52
juce::MidiRPNMessage::channel
int channel
Definition:
juce_MidiRPN.h:35
juce::MidiRPNMessage::parameterNumber
int parameterNumber
Definition:
juce_MidiRPN.h:38
juce::MidiRPNMessage::value
int value
Definition:
juce_MidiRPN.h:44
JuceLibraryCode
modules
juce_audio_basics
midi
juce_MidiRPN.h
Generated by
1.9.1