84 lines
3.1 KiB
C
84 lines
3.1 KiB
C
|
/*
|
||
|
==============================================================================
|
||
|
|
||
|
This file is part of the JUCE library.
|
||
|
Copyright (c) 2020 - Raw Material Software Limited
|
||
|
|
||
|
JUCE is an open source library subject to commercial or open-source
|
||
|
licensing.
|
||
|
|
||
|
By using JUCE, you agree to the terms of both the JUCE 6 End-User License
|
||
|
Agreement and JUCE Privacy Policy (both effective as of the 16th June 2020).
|
||
|
|
||
|
End User License Agreement: www.juce.com/juce-6-licence
|
||
|
Privacy Policy: www.juce.com/juce-privacy-policy
|
||
|
|
||
|
Or: You may also use this code under the terms of the GPL v3 (see
|
||
|
www.gnu.org/licenses).
|
||
|
|
||
|
JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
|
||
|
EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
|
||
|
DISCLAIMED.
|
||
|
|
||
|
==============================================================================
|
||
|
*/
|
||
|
|
||
|
namespace juce
|
||
|
{
|
||
|
|
||
|
//==============================================================================
|
||
|
/**
|
||
|
Opens a Bluetooth MIDI pairing dialogue that allows the user to view and
|
||
|
connect to Bluetooth MIDI devices that are currently found nearby.
|
||
|
|
||
|
The dialogue will ignore non-MIDI Bluetooth devices.
|
||
|
|
||
|
Only after a Bluetooth MIDI device has been paired will its MIDI ports
|
||
|
be available through JUCE's MidiInput and MidiOutput classes.
|
||
|
|
||
|
This dialogue is currently only available on macOS targetting versions 10.11+,
|
||
|
iOS and Android. When targeting older versions of macOS you should instead
|
||
|
pair Bluetooth MIDI devices using the "Audio MIDI Setup" app (located in
|
||
|
/Applications/Utilities). On Windows, you should use the system settings. On
|
||
|
Linux, Bluetooth MIDI devices are currently not supported.
|
||
|
|
||
|
@tags{Audio}
|
||
|
*/
|
||
|
class JUCE_API BluetoothMidiDevicePairingDialogue
|
||
|
{
|
||
|
public:
|
||
|
|
||
|
/** Opens the Bluetooth MIDI pairing dialogue, if it is available.
|
||
|
|
||
|
@param exitCallback A callback which will be called when the modal
|
||
|
bluetooth dialog is closed.
|
||
|
@param btWindowBounds The bounds of the bluetooth window that will
|
||
|
be opened. The dialog itself is opened by the OS so cannot
|
||
|
be customised by JUCE.
|
||
|
@return true if the dialogue was opened, false on error.
|
||
|
|
||
|
@see ModalComponentManager::Callback
|
||
|
*/
|
||
|
static bool open (ModalComponentManager::Callback* exitCallback = nullptr,
|
||
|
Rectangle<int>* btWindowBounds = nullptr);
|
||
|
|
||
|
/** Checks if a Bluetooth MIDI pairing dialogue is available on this
|
||
|
platform.
|
||
|
|
||
|
On iOS, this will be true for iOS versions 8.0 and higher.
|
||
|
|
||
|
On Android, this will be true only for Android SDK versions 23 and
|
||
|
higher, and additionally only if the device itself supports MIDI
|
||
|
over Bluetooth.
|
||
|
|
||
|
On desktop platforms, this will typically be false as the bluetooth
|
||
|
pairing is not done inside the app but by other means.
|
||
|
|
||
|
@return true if the Bluetooth MIDI pairing dialogue is available,
|
||
|
false otherwise.
|
||
|
*/
|
||
|
static bool isAvailable();
|
||
|
};
|
||
|
|
||
|
} // namespace juce
|