JUCE-7.0.12-0-g4f43011b96 JUCE-7.0.12-0-g4f43011b96
JUCE — C++ application framework with suport for VST, VST3, LV2 audio plug-ins

« « « Anklang Documentation
Loading...
Searching...
No Matches
juce_OSCReceiver.h
Go to the documentation of this file.
1 /*
2 ==============================================================================
3
4 This file is part of the JUCE library.
5 Copyright (c) 2022 - Raw Material Software Limited
6
7 JUCE is an open source library subject to commercial or open-source
8 licensing.
9
10 By using JUCE, you agree to the terms of both the JUCE 7 End-User License
11 Agreement and JUCE Privacy Policy.
12
13 End User License Agreement: www.juce.com/juce-7-licence
14 Privacy Policy: www.juce.com/juce-privacy-policy
15
16 Or: You may also use this code under the terms of the GPL v3 (see
17 www.gnu.org/licenses).
18
19 JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
20 EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
21 DISCLAIMED.
22
23 ==============================================================================
24*/
25
26namespace juce
27{
28
29//==============================================================================
40class JUCE_API OSCReceiver
41{
42public:
43 //==============================================================================
46
48 OSCReceiver (const String& threadName);
49
52
53 //==============================================================================
59 bool connect (int portNumber);
60
67 bool connectToSocket (DatagramSocket& socketToUse);
68
69 //==============================================================================
73 bool disconnect();
74
75
76 //==============================================================================
85 struct JUCE_API MessageLoopCallback {};
86
94 struct JUCE_API RealtimeCallback {};
95
96 //==============================================================================
107 template <typename CallbackType = MessageLoopCallback>
108 class JUCE_API Listener
109 {
110 public:
112 virtual ~Listener() = default;
113
117 virtual void oscMessageReceived (const OSCMessage& message) = 0;
118
123 virtual void oscBundleReceived (const OSCBundle& /*bundle*/) {}
124 };
125
126 //==============================================================================
147 template <typename CallbackType = MessageLoopCallback>
149 {
150 public:
152 virtual ~ListenerWithOSCAddress() = default;
153
157 virtual void oscMessageReceived (const OSCMessage& message) = 0;
158 };
159
160 //==============================================================================
164 void addListener (Listener<MessageLoopCallback>* listenerToAdd);
165
170 void addListener (Listener<RealtimeCallback>* listenerToAdd);
171
176 void addListener (ListenerWithOSCAddress<MessageLoopCallback>* listenerToAdd,
177 OSCAddress addressToMatch);
178
183 void addListener (ListenerWithOSCAddress<RealtimeCallback>* listenerToAdd,
184 OSCAddress addressToMatch);
185
187 void removeListener (Listener<MessageLoopCallback>* listenerToRemove);
188
190 void removeListener (Listener<RealtimeCallback>* listenerToRemove);
191
193 void removeListener (ListenerWithOSCAddress<MessageLoopCallback>* listenerToRemove);
194
196 void removeListener (ListenerWithOSCAddress<RealtimeCallback>* listenerToRemove);
197
198 //==============================================================================
205 using FormatErrorHandler = std::function<void (const char* data, int dataSize)>;
206
213 void registerFormatErrorHandler (FormatErrorHandler handler);
214
215private:
216 //==============================================================================
217 struct Pimpl;
219 friend struct OSCReceiverCallbackMessage;
220
222};
223
224} // namespace juce
A wrapper for a datagram (UDP) socket.
An OSC address.
An OSC bundle.
An OSC Message.
A class for receiving only those OSC messages from an OSCReceiver that match a given OSC address.
virtual void oscMessageReceived(const OSCMessage &message)=0
Called when the OSCReceiver receives an OSC message with an OSC address pattern that matches the OSC ...
virtual ~ListenerWithOSCAddress()=default
Destructor.
A class for receiving OSC data from an OSCReceiver.
virtual void oscMessageReceived(const OSCMessage &message)=0
Called when the OSCReceiver receives a new OSC message.
virtual void oscBundleReceived(const OSCBundle &)
Called when the OSCReceiver receives a new OSC bundle.
virtual ~Listener()=default
Destructor.
A class for receiving OSC data.
Use this struct as the template parameter for Listener and ListenerWithOSCAddress to receive incoming...
Use this struct as the template parameter for Listener and ListenerWithOSCAddress to receive incoming...
The JUCE String class!
Definition juce_String.h:53
connect
#define JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(className)
This is a shorthand way of writing both a JUCE_DECLARE_NON_COPYABLE and JUCE_LEAK_DETECTOR macro for ...
JUCE Namespace.