|
- /*
- ==============================================================================
-
- 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
|