Skip to content

Commit

Permalink
Windows: Updated the WinRT MIDI interface
Browse files Browse the repository at this point in the history
  • Loading branch information
tpoole committed Nov 2, 2018
1 parent 4137ee1 commit d83360a
Show file tree
Hide file tree
Showing 3 changed files with 693 additions and 186 deletions.
23 changes: 23 additions & 0 deletions BREAKING-CHANGES.txt
Expand Up @@ -4,6 +4,29 @@ JUCE breaking changes
Develop
=======

Change
------
The use of WinRT MIDI functions has been disabled by default for any version
of Windows 10 before 1809 (October 2018 Update).

Possible Issues
---------------
If you were previously using WinRT MIDI functions on older versions of Windows
then the new behaviour is to revert to the old Win32 MIDI API.

Workaround
----------
Set the preprocessor macro JUCE_FORCE_WINRT_MIDI=1 (in addition to the
previously selected JUCE_USE_WINRT_MIDI=1) to allow the use of the WinRT API on
older versions of Windows.

Rationale
---------
Until now JUCE's support for the Windows 10 WinRT MIDI API was experimental,
due to longstanding issues within the API itself. These issues have been
addressed in the Windows 10 1809 (October 2018 Update) release.


Change
------
The VST2 SDK embedded within JUCE has been removed.
Expand Down
35 changes: 16 additions & 19 deletions modules/juce_audio_devices/juce_audio_devices.h
Expand Up @@ -59,6 +59,22 @@
#endif

//==============================================================================
/** Config: JUCE_USE_WINRT_MIDI
Enables the use of the Windows Runtime API for MIDI, allowing connections
to Bluetooth Low Energy devices on Windows 10 version 1809 (October 2018
Update) and later. If you enable this flag then older, unsupported,
versions of Windows will automatically fall back to using the regualar
Win32 MIDI API.
You will need version 10.0.14393.0 of the Windows Standalone SDK to compile
and you may need to add the path to the WinRT headers. The path to the
headers will be something similar to
"C:\Program Files (x86)\Windows Kits\10\Include\10.0.14393.0\winrt".
*/
#ifndef JUCE_USE_WINRT_MIDI
#define JUCE_USE_WINRT_MIDI 0
#endif

/** Config: JUCE_ASIO
Enables ASIO audio devices (MS Windows only).
Turning this on means that you'll need to have the Steinberg ASIO SDK installed
Expand Down Expand Up @@ -146,25 +162,6 @@
#endif
#endif

/** Config: JUCE_USE_WINRT_MIDI
***
EXPERIMENTAL - Microsoft's Bluetooth MIDI stack has multiple issues,
use at your own risk!
***
Enables the use of the Windows Runtime API for MIDI, which supports
Bluetooth Low Energy connections on computers with the Anniversary Update
of Windows 10.
To compile with this flag requires version 10.0.14393.0 of the Windows
Standalone SDK and you must add the path to the WinRT headers. This path
should be something similar to
"C:\Program Files (x86)\Windows Kits\10\Include\10.0.14393.0\winrt".
*/
#ifndef JUCE_USE_WINRT_MIDI
#define JUCE_USE_WINRT_MIDI 0
#endif

/** Config: JUCE_DISABLE_AUDIO_MIXING_WITH_OTHER_APPS
Turning this on gives your app exclusive access to the system's audio
on platforms which support it (currently iOS only).
Expand Down

0 comments on commit d83360a

Please sign in to comment.