Re: Creating Aggregate Devices programmatically
Re: Creating Aggregate Devices programmatically
- Subject: Re: Creating Aggregate Devices programmatically
- From: Jeff Moore <email@hidden>
- Date: Fri, 29 Jul 2005 13:52:45 -0700
It sounds like either the dictionary that describes the aggregate was
constructed in a way that didn't make sense to the parser, or the
aggregate just doesn't have any devices in it. Can you post any code
samples?
On Jul 29, 2005, at 9:19 AM, Dave Addey wrote:
Hi Jeff,
This seems to be working, in that I can create an aggregate device
with no
errors. Also, I didn't need to use
kAudioHardwarePropertyDeviceForUID, as
when I use the plugin to create the device, the output data of the
call to
AudioObjectGetPropertyData already contains the new AudioDeviceID.
But, I have a problem. The AggregateDevice I have created does not
seem to
be enabled for output, or something. Is there something I need to
do to it
to enable output once it is created?
I'm actually trying to use this aggregate device with QuickTime,
assigned
via an AudioContext (this bit also seems to be working without
error). When
I start playback to the device via QuickTime, no audio comes out.
When I
stop the movie in QuickTime, I get a spinning beachball for a few
seconds,
and then when I start the movie again, I get audio. Have I missed
something
I should be doing in advance?
I've also noticed that when I make this Aggregate Device public,
and view it
in Audio MIDI Setup, the Audio Output area says "Output is not
supported",
and likewise for input. If I click on "Configure Device", then no
devices
are selected to be in the Aggregate Device. Is this significant?
I don't
actually want my aggregate device to be public - I was just trying
this as a
test.
Any help much appreciated!
Dave.
From: Jeff Moore <email@hidden>
Date: Mon, 25 Jul 2005 12:55:13 -0700
To: CoreAudio API <email@hidden>
Subject: Re: Creating Aggregate Devices programmatically
Creating a new aggregate device requires using the new AudioObject
APIs in Tiger and goes something like this:
1) Locate the base plug-in using
kAudioHardwarePropertyPlugInForBundleID. It has a bundle ID of
"com.apple.audio.CoreAudio".
2) Create a CFDictionary that describes the aggregate device you want
to create. The keys for the dictionary are in the Aggregate Device
section of <CoreAudio/AudioHardware.h>. Be sure to create a unique
UID.
3) Tell the base plug-in to create the aggregate device using
kAudioPlugInCreateAggregateDevice.
4) Presuming success, use kAudioHardwarePropertyDeviceForUID to get
the AudioDeviceID of the newly created aggregate device.
That's pretty much it. Let me know if you have any specific questions
about the process.
On Jul 23, 2005, at 4:54 PM, Dave Addey wrote:
Hi all,
Does anyone have any sample code showing how to create an aggregate
device entirely programmatically? Or is there some particular
documentation I should be looking at? Any ideas much
appreciated :-)
Dave.
--
Jeff Moore
Core Audio
Apple
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
40dsl.pipex.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
--
Jeff Moore
Core Audio
Apple
_______________________________________________
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