68class MidiInputCallback;
111 #if JUCE_LINUX || JUCE_MAC || JUCE_IOS || DOXYGEN
157 void setName (
const String& newName)
noexcept { deviceInfo.name = newName; }
172 void* internal =
nullptr;
174 JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (
MidiInput)
267 #if JUCE_LINUX || JUCE_MAC || JUCE_IOS || DOXYGEN
297 void setName (
const String& newName)
noexcept { deviceInfo.name = newName; }
304 void sendBlockOfMessagesNow (
const MidiBuffer& buffer);
323 void sendBlockOfMessages (
const MidiBuffer& buffer,
328 void clearAllPendingMessages();
333 void startBackgroundThread();
338 void stopBackgroundThread();
350 struct PendingMessage
352 PendingMessage (
const void* data,
int len,
double timeStamp)
353 : message (data,
len, timeStamp)
358 PendingMessage* next;
362 explicit MidiOutput (
const String&,
const String&);
365 MidiDeviceInfo deviceInfo;
366 void* internal =
nullptr;
367 CriticalSection lock;
368 PendingMessage* firstMessage =
nullptr;
370 JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (MidiOutput)
static MidiDeviceInfo getDefaultDevice()
String getName() const noexcept
static int getDefaultDeviceIndex()
static std::unique_ptr< MidiOutput > openDevice(int)
void setName(const String &newName) noexcept
String getIdentifier() const noexcept
static std::unique_ptr< MidiOutput > openDevice(const String &deviceIdentifier)
MidiDeviceInfo getDeviceInfo() const noexcept
void sendMessageNow(const MidiMessage &message)
static StringArray getDevices()
static Array< MidiDeviceInfo > getAvailableDevices()