Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[BUG] session.CreateEndpointConnection(); does not return nullptr when called with invalid EndpointID #429

Open
MusicMaker opened this issue Nov 5, 2024 · 2 comments
Assignees
Labels
area-sdk 🔧 Related to the application SDK bug 🐞 Something isn't working dp8-fixed Fixed in developer preview 8

Comments

@MusicMaker
Copy link

Description

auto receiveEndpoint = session.CreateEndpointConnection(); does not return nullptr when called with invalid EndpointID

To Reproduce

call auto receiveEndpoint = session.CreateEndpointConnection(); with an invalid EndpointID

Expected behavior

nullptr returned

Screenshots

N/A

Installer Name or Version

DP6

Desktop (please complete the following information):

Win 11 Insider Pro Canary

Device information, if this is with an external MIDI device:

N/A

Application Information

C++/WinRT based on SDK sample code.

@MusicMaker MusicMaker added the bug 🐞 Something isn't working label Nov 5, 2024
@Psychlist1972
Copy link
Contributor

This is a good point. Right now, the id is only verified once you call Open() because that's when the service call is made.

I can add a check for a valid endpoint id, but it's always possible that the endpoint becomes unavailable (usb cable unplugged, etc.) between the create and open, so the return value (boolean) from Open always needs to be checked.

The reason this is a two-step process is you need to be able to set up event handlers and processing objects/listeners before opening the connection.

@Psychlist1972 Psychlist1972 added the area-sdk 🔧 Related to the application SDK label Nov 5, 2024
@Psychlist1972 Psychlist1972 added the dp8-fixed Fixed in developer preview 8 label Dec 11, 2024
@Psychlist1972
Copy link
Contributor

Fixed in upcoming DP8. The code now checks to see if the endpoint id is a valid Windows MIDI Services id, and then checks to see if the endpoint interface has been activated. Returns nullptr if fails either check.

Note that you can still disconnect a device between endpoint connection creation and opening. In that case, you will get a failure when you try to open it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-sdk 🔧 Related to the application SDK bug 🐞 Something isn't working dp8-fixed Fixed in developer preview 8
Projects
Status: No status
Development

No branches or pull requests

2 participants