RE: hiding Virtual Midi ports
RE: hiding Virtual Midi ports
- Subject: RE: hiding Virtual Midi ports
- From: "Alex Sheh" <email@hidden>
- Date: Wed, 2 Aug 2006 13:33:07 -0700
- Thread-topic: hiding Virtual Midi ports
Thanks for the reply, Doug.
What about passing the MIDIUniqueID of the Virtual Endpoints via a
CFMessagePort from myDriver to myApp? Kurt had suggested using unique
ids off-list, and it seems to be working. One advantage would be that
these endpoints would never show up to 3rd party apps, just in case any
of these apps traverse the device hierarchy instead of calling the
standard routines for choosing where to send/receive (though how likely
this is, I don't know). Are there any major disadvantages to the unique
id lookup approach vs. private non-virtual endpoints?
Thanks,
Alex
-----Original Message-----
From: Doug Wyatt [mailto:email@hidden]
Sent: Wednesday, August 02, 2006 12:39 PM
To: Alex Sheh
Cc: Kurt Revis; CoreAudio API
Subject: Re: hiding Virtual Midi ports
Private endpoints are hidden from the routines that iterate through all
of the system's sources and destinations; these are the routines
applications should normally use for choosing where to send/receive.
Private endpoints are still visible by traversing the device -> entity
-> endpoint hierarchy. A client that does this is responsible for hiding
offline devices and private endpoints.
If your endpoints are virtual, you're out of luck because, being
device-less, they don't appear in that hierarchy -- there's really no
way to make them both private and virtual.
But since you imply that you have a driver, you can add private non-
virtual entities/endpoints to your driver's device(s) and find them by
traversing the device hierarchy.
HTH,
Doug
--
Doug Wyatt
Core Audio, Apple
On Aug 1, 2006, at 3:45 PM, Alex Sheh wrote:
> When I set kMIDIPropertyPrivate = 1 for my virtual sources in
> myDriver, these virtual sources become unavailable in myApp via calls
> to
> MIDIGetNumberOfSources() and MIDIGetSource(). So I'm unable to
> connect to the virtual sources in myApp.
>
> Are there other API calls I should be making to access these private
> virtual sources in myApp? Or is there some other way of making my
> virtual sources only visible to myDriver and myApp for their private
> communication, but NOT available to 3rd party apps, i.e. Logic, Pro
> Tools GUI does not show my virtual sources in their MIDI port list?
>
> Thanks,
> Alex
>
> -----Original Message-----
> From: Kurt Revis [mailto:email@hidden]
> Sent: Tuesday, May 02, 2006 11:37 PM
> To: Alex Sheh
> Cc: CoreAudio API
> Subject: Re: hiding Virtual Midi ports
>
> On May 2, 2006, at 4:20 PM, Alex Sheh wrote:
>
>> I am using Virtual MIDI ports to forward MIDI data from myDriver to
>> myApp. Since these Virtual ports are for internal use, I do not want
>> 3rd party apps to be able to select these Virtual ports from their
>> GUI.
>> Is there a way to make it so that my Virtual MIDI ports are not
>> visible to all apps on the system?
>
> Sure:
> MIDIObjectSetIntegerProperty(yourVirtualEndpointRef,
> kMIDIPropertyPrivate, 1);
>
> Note that this isn't 100% foolproof. There will be a window of time
> that the endpoint is visible to other apps -- after you create your
> virtual endpoint, but before you set the property's value. This is
> probably more of a theoretical problem than a real one, though.
>
> --
> Kurt Revis
> email@hidden
> _______________________________________________
> Do not post admin requests to the list. They will be ignored.
> Coreaudio-api mailing list (email@hidden)
> Help/Unsubscribe/Update your Subscription:
> 40apple.com
>
> This email sent to email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden