From 828019306afdb9cbf0ab458f39619a7436a7eaf5 Mon Sep 17 00:00:00 2001 From: Pete Brown Date: Sun, 9 Feb 2025 02:21:39 -0500 Subject: [PATCH 1/2] Build artifacts --- build/staging/version/BundleInfo.wxi | 2 +- build/staging/version/WindowsMidiServicesVersion.cs | 6 +++--- build/staging/version/WindowsMidiServicesVersion.h | 6 +++--- samples/cpp-winrt/basics/client-basics-cpp.vcxproj | 2 +- samples/cpp-winrt/basics/packages.config | 2 +- .../loopback-endpoints/loopback-endpoints-cpp.vcxproj | 2 +- samples/cpp-winrt/loopback-endpoints/packages.config | 2 +- samples/cpp-winrt/send-speed/packages.config | 2 +- samples/cpp-winrt/send-speed/send-speed-cpp.vcxproj | 2 +- samples/cpp-winrt/simple-app-to-app-midi/packages.config | 2 +- .../simple-app-to-app-midi/simple-app-to-app-cpp.vcxproj | 2 +- samples/cpp-winrt/static-enum-endpoints/packages.config | 2 +- .../static-enum-endpoints/static-enum-endpoints-cpp.vcxproj | 2 +- samples/cpp-winrt/watch-endpoints/packages.config | 2 +- .../cpp-winrt/watch-endpoints/watch-endpoints-cpp.vcxproj | 2 +- src/app-sdk/mididiag/mididiag.vcxproj | 2 +- src/app-sdk/mididiag/packages.config | 2 +- src/app-sdk/midimdnsinfo/midimdnsinfo.vcxproj | 2 +- src/app-sdk/midimdnsinfo/packages.config | 2 +- src/app-sdk/midiusbinfo/midiusbinfo.vcxproj | 2 +- src/app-sdk/midiusbinfo/packages.config | 2 +- 21 files changed, 25 insertions(+), 25 deletions(-) diff --git a/build/staging/version/BundleInfo.wxi b/build/staging/version/BundleInfo.wxi index cad74f2d..b9a8f4aa 100644 --- a/build/staging/version/BundleInfo.wxi +++ b/build/staging/version/BundleInfo.wxi @@ -1,4 +1,4 @@ - + diff --git a/build/staging/version/WindowsMidiServicesVersion.cs b/build/staging/version/WindowsMidiServicesVersion.cs index cf33fa73..573187ca 100644 --- a/build/staging/version/WindowsMidiServicesVersion.cs +++ b/build/staging/version/WindowsMidiServicesVersion.cs @@ -6,12 +6,12 @@ public static class MidiBuildInformation { public const string Source = "GitHub Preview"; public const string Name = "Customer Preview 2"; - public const string BuildFullVersion = "1.0.3-preview-11.250208-2054"; + public const string BuildFullVersion = "1.0.3-preview-11.250209-214"; public const string VersionMajor = "1"; public const string VersionMinor = "0"; public const string VersionRevision = "3"; - public const string VersionDateNumber = "250208"; - public const string VersionTimeNumber = "2054"; + public const string VersionDateNumber = "250209"; + public const string VersionTimeNumber = "214"; } } diff --git a/build/staging/version/WindowsMidiServicesVersion.h b/build/staging/version/WindowsMidiServicesVersion.h index 8cdce2a7..f57f7fe0 100644 --- a/build/staging/version/WindowsMidiServicesVersion.h +++ b/build/staging/version/WindowsMidiServicesVersion.h @@ -5,12 +5,12 @@ #define WINDOWS_MIDI_SERVICES_BUILD_SOURCE L"GitHub Preview" #define WINDOWS_MIDI_SERVICES_BUILD_VERSION_NAME L"Customer Preview 2" -#define WINDOWS_MIDI_SERVICES_BUILD_VERSION_FULL L"1.0.3-preview-11.250208-2054" +#define WINDOWS_MIDI_SERVICES_BUILD_VERSION_FULL L"1.0.3-preview-11.250209-214" #define WINDOWS_MIDI_SERVICES_BUILD_VERSION_MAJOR L"1" #define WINDOWS_MIDI_SERVICES_BUILD_VERSION_MINOR L"0" #define WINDOWS_MIDI_SERVICES_BUILD_VERSION_REVISION L"3" -#define WINDOWS_MIDI_SERVICES_BUILD_VERSION_DATE_NUMBER L"250208" -#define WINDOWS_MIDI_SERVICES_BUILD_VERSION_TIME_NUMBER L"2054" +#define WINDOWS_MIDI_SERVICES_BUILD_VERSION_DATE_NUMBER L"250209" +#define WINDOWS_MIDI_SERVICES_BUILD_VERSION_TIME_NUMBER L"214" #endif diff --git a/samples/cpp-winrt/basics/client-basics-cpp.vcxproj b/samples/cpp-winrt/basics/client-basics-cpp.vcxproj index 06b45439..9ccc8313 100644 --- a/samples/cpp-winrt/basics/client-basics-cpp.vcxproj +++ b/samples/cpp-winrt/basics/client-basics-cpp.vcxproj @@ -2,7 +2,7 @@ - Microsoft.Windows.Devices.Midi2.1.0.3-preview-11.250208-2054 + Microsoft.Windows.Devices.Midi2.1.0.3-preview-11.250209-214 true true false diff --git a/samples/cpp-winrt/basics/packages.config b/samples/cpp-winrt/basics/packages.config index 7c299fe5..20dff53e 100644 --- a/samples/cpp-winrt/basics/packages.config +++ b/samples/cpp-winrt/basics/packages.config @@ -1,5 +1,5 @@  - + \ No newline at end of file diff --git a/samples/cpp-winrt/loopback-endpoints/loopback-endpoints-cpp.vcxproj b/samples/cpp-winrt/loopback-endpoints/loopback-endpoints-cpp.vcxproj index 89eafbd9..f8c94f6f 100644 --- a/samples/cpp-winrt/loopback-endpoints/loopback-endpoints-cpp.vcxproj +++ b/samples/cpp-winrt/loopback-endpoints/loopback-endpoints-cpp.vcxproj @@ -2,7 +2,7 @@ - Microsoft.Windows.Devices.Midi2.1.0.3-preview-11.250208-2054 + Microsoft.Windows.Devices.Midi2.1.0.3-preview-11.250209-214 true true true diff --git a/samples/cpp-winrt/loopback-endpoints/packages.config b/samples/cpp-winrt/loopback-endpoints/packages.config index 7c299fe5..20dff53e 100644 --- a/samples/cpp-winrt/loopback-endpoints/packages.config +++ b/samples/cpp-winrt/loopback-endpoints/packages.config @@ -1,5 +1,5 @@  - + \ No newline at end of file diff --git a/samples/cpp-winrt/send-speed/packages.config b/samples/cpp-winrt/send-speed/packages.config index 7c299fe5..20dff53e 100644 --- a/samples/cpp-winrt/send-speed/packages.config +++ b/samples/cpp-winrt/send-speed/packages.config @@ -1,5 +1,5 @@  - + \ No newline at end of file diff --git a/samples/cpp-winrt/send-speed/send-speed-cpp.vcxproj b/samples/cpp-winrt/send-speed/send-speed-cpp.vcxproj index c499f2ce..0cb8cc7f 100644 --- a/samples/cpp-winrt/send-speed/send-speed-cpp.vcxproj +++ b/samples/cpp-winrt/send-speed/send-speed-cpp.vcxproj @@ -2,7 +2,7 @@ - Microsoft.Windows.Devices.Midi2.1.0.3-preview-11.250208-2054 + Microsoft.Windows.Devices.Midi2.1.0.3-preview-11.250209-214 true true true diff --git a/samples/cpp-winrt/simple-app-to-app-midi/packages.config b/samples/cpp-winrt/simple-app-to-app-midi/packages.config index 7c299fe5..20dff53e 100644 --- a/samples/cpp-winrt/simple-app-to-app-midi/packages.config +++ b/samples/cpp-winrt/simple-app-to-app-midi/packages.config @@ -1,5 +1,5 @@  - + \ No newline at end of file diff --git a/samples/cpp-winrt/simple-app-to-app-midi/simple-app-to-app-cpp.vcxproj b/samples/cpp-winrt/simple-app-to-app-midi/simple-app-to-app-cpp.vcxproj index 09cf4b28..ab5e4231 100644 --- a/samples/cpp-winrt/simple-app-to-app-midi/simple-app-to-app-cpp.vcxproj +++ b/samples/cpp-winrt/simple-app-to-app-midi/simple-app-to-app-cpp.vcxproj @@ -2,7 +2,7 @@ - Microsoft.Windows.Devices.Midi2.1.0.3-preview-11.250208-2054 + Microsoft.Windows.Devices.Midi2.1.0.3-preview-11.250209-214 true true true diff --git a/samples/cpp-winrt/static-enum-endpoints/packages.config b/samples/cpp-winrt/static-enum-endpoints/packages.config index 7c299fe5..20dff53e 100644 --- a/samples/cpp-winrt/static-enum-endpoints/packages.config +++ b/samples/cpp-winrt/static-enum-endpoints/packages.config @@ -1,5 +1,5 @@  - + \ No newline at end of file diff --git a/samples/cpp-winrt/static-enum-endpoints/static-enum-endpoints-cpp.vcxproj b/samples/cpp-winrt/static-enum-endpoints/static-enum-endpoints-cpp.vcxproj index 1b047793..bb0a3dc2 100644 --- a/samples/cpp-winrt/static-enum-endpoints/static-enum-endpoints-cpp.vcxproj +++ b/samples/cpp-winrt/static-enum-endpoints/static-enum-endpoints-cpp.vcxproj @@ -2,7 +2,7 @@ - Microsoft.Windows.Devices.Midi2.1.0.3-preview-11.250208-2054 + Microsoft.Windows.Devices.Midi2.1.0.3-preview-11.250209-214 true true true diff --git a/samples/cpp-winrt/watch-endpoints/packages.config b/samples/cpp-winrt/watch-endpoints/packages.config index 7c299fe5..20dff53e 100644 --- a/samples/cpp-winrt/watch-endpoints/packages.config +++ b/samples/cpp-winrt/watch-endpoints/packages.config @@ -1,5 +1,5 @@  - + \ No newline at end of file diff --git a/samples/cpp-winrt/watch-endpoints/watch-endpoints-cpp.vcxproj b/samples/cpp-winrt/watch-endpoints/watch-endpoints-cpp.vcxproj index b6e57324..30e26d54 100644 --- a/samples/cpp-winrt/watch-endpoints/watch-endpoints-cpp.vcxproj +++ b/samples/cpp-winrt/watch-endpoints/watch-endpoints-cpp.vcxproj @@ -2,7 +2,7 @@ - Microsoft.Windows.Devices.Midi2.1.0.3-preview-11.250208-2054 + Microsoft.Windows.Devices.Midi2.1.0.3-preview-11.250209-214 true true true diff --git a/src/app-sdk/mididiag/mididiag.vcxproj b/src/app-sdk/mididiag/mididiag.vcxproj index a0419688..f2024011 100644 --- a/src/app-sdk/mididiag/mididiag.vcxproj +++ b/src/app-sdk/mididiag/mididiag.vcxproj @@ -2,7 +2,7 @@ - Microsoft.Windows.Devices.Midi2.1.0.3-preview-11.250208-2054 + Microsoft.Windows.Devices.Midi2.1.0.3-preview-11.250209-214 true true true diff --git a/src/app-sdk/mididiag/packages.config b/src/app-sdk/mididiag/packages.config index b3c08d94..18315221 100644 --- a/src/app-sdk/mididiag/packages.config +++ b/src/app-sdk/mididiag/packages.config @@ -1,6 +1,6 @@  - + \ No newline at end of file diff --git a/src/app-sdk/midimdnsinfo/midimdnsinfo.vcxproj b/src/app-sdk/midimdnsinfo/midimdnsinfo.vcxproj index da1aa27e..15a7dd98 100644 --- a/src/app-sdk/midimdnsinfo/midimdnsinfo.vcxproj +++ b/src/app-sdk/midimdnsinfo/midimdnsinfo.vcxproj @@ -2,7 +2,7 @@ - Microsoft.Windows.Devices.Midi2.1.0.3-preview-11.250208-2054 + Microsoft.Windows.Devices.Midi2.1.0.3-preview-11.250209-214 true true true diff --git a/src/app-sdk/midimdnsinfo/packages.config b/src/app-sdk/midimdnsinfo/packages.config index b3c08d94..18315221 100644 --- a/src/app-sdk/midimdnsinfo/packages.config +++ b/src/app-sdk/midimdnsinfo/packages.config @@ -1,6 +1,6 @@  - + \ No newline at end of file diff --git a/src/app-sdk/midiusbinfo/midiusbinfo.vcxproj b/src/app-sdk/midiusbinfo/midiusbinfo.vcxproj index c7d81be7..d793411f 100644 --- a/src/app-sdk/midiusbinfo/midiusbinfo.vcxproj +++ b/src/app-sdk/midiusbinfo/midiusbinfo.vcxproj @@ -2,7 +2,7 @@ - Microsoft.Windows.Devices.Midi2.1.0.3-preview-11.250208-2054 + Microsoft.Windows.Devices.Midi2.1.0.3-preview-11.250209-214 true true true diff --git a/src/app-sdk/midiusbinfo/packages.config b/src/app-sdk/midiusbinfo/packages.config index b3c08d94..18315221 100644 --- a/src/app-sdk/midiusbinfo/packages.config +++ b/src/app-sdk/midiusbinfo/packages.config @@ -1,6 +1,6 @@  - + \ No newline at end of file From 0ff58e4d09b587af1a2e28e4e0ca8c46b6b6e577 Mon Sep 17 00:00:00 2001 From: Pete Brown Date: Sun, 9 Feb 2025 02:22:24 -0500 Subject: [PATCH 2/2] Check for a valid status byte in SendMidiMessage from wdmaud2.drv --- src/api/Client/WinMM/MidiSrvPort.cpp | 37 ++++++++++++++++++---------- 1 file changed, 24 insertions(+), 13 deletions(-) diff --git a/src/api/Client/WinMM/MidiSrvPort.cpp b/src/api/Client/WinMM/MidiSrvPort.cpp index c39f1730..f5957c15 100644 --- a/src/api/Client/WinMM/MidiSrvPort.cpp +++ b/src/api/Client/WinMM/MidiSrvPort.cpp @@ -728,22 +728,32 @@ CMidiPort::SendMidiMessage(UINT32 midiMessage) byte status = midiMessage & 0x000000FF; //byte* messagePointer = (byte*)(&midiMessage); - if (MIDI_MESSAGE_IS_ONE_BYTE(status)) + // if it's a valid status byte, then figure + // out the actual size of the message. If it's + // not a valid status byte, then we just drop it + if (MIDI_BYTE_IS_STATUS_BYTE(status)) { - messageSize = 1; - } - else if (MIDI_MESSAGE_IS_TWO_BYTES(status)) - { - messageSize = 2; + if (MIDI_MESSAGE_IS_ONE_BYTE(status)) + { + messageSize = 1; + } + else if (MIDI_MESSAGE_IS_TWO_BYTES(status)) + { + messageSize = 2; + } + else if (MIDI_MESSAGE_IS_THREE_BYTES(status)) + { + messageSize = 3; + } + + // send the message to the transport + // pass a timestamp of 0 to bypass scheduler + RETURN_IF_FAILED(m_MidisrvTransport->SendMidiMessage(&midiMessage, messageSize, 0)); } - else if (MIDI_MESSAGE_IS_THREE_BYTES(status)) + else { - messageSize = 3; + return E_INVALIDARG; } - - // send the message to the transport - // pass a timestamp of 0 to bypass scheduler - RETURN_IF_FAILED(m_MidisrvTransport->SendMidiMessage(&midiMessage, messageSize, 0)); } return S_OK; @@ -789,7 +799,8 @@ CMidiPort::SendLongMessage(LPMIDIHDR buffer) // TODO: based on the buffer length, this message may require chunking into smaller // pieces to ensure it fits into the cross process queue. // - RETURN_IF_FAILED(m_MidisrvTransport->SendMidiMessage(buffer->lpData, buffer->dwBytesRecorded, 0)); + //RETURN_IF_FAILED(m_MidisrvTransport->SendMidiMessage(buffer->lpData, buffer->dwBytesRecorded, 0)); + RETURN_IF_FAILED(m_MidisrvTransport->SendMidiMessage(buffer->lpData, buffer->dwBufferLength, 0)); } // mark the buffer as completed