Re: How to use the SampleAudioDriver
Re: How to use the SampleAudioDriver
- Subject: Re: How to use the SampleAudioDriver
- From: James Udo Ludtke <email@hidden>
- Date: Thu, 1 Jan 2009 02:21:50 -0500
Tahome, thanks for the tip. I did had a look at SoundFlower already.
Technically, it does what I need to do: Connect the line-out signal to
line-in.
However, the setup is not suitable for users of my application, most
are not power users. I do not want to impose on them to install
SoundFlower, or similar system additions. What I am trying to do, if
it is possible, is to do what SunFlower does from within my code. A
simpler work-around is to run a patch cable from line-output to line-
input. Theoretically, this degrades the audio quality somewhat, but in
sounds I use this is hardly noticeable.
James
On 2008 12 31, at 6:54 AM, tahome izwah wrote:
A KEXT is a kernel extension, an ".a" file is a static library. Kernel
extensions extend the functionality of the OS kernel by adding useful
features to it on the system level. Libraries provide code and
functionality directly to end user programs without exposing the
source code. You will generally not want to write a KEXT except for
very special purposes.
The KEXT you'll need will have to pose as an audio device. If you load
it (type "man kextload" in Terminal) you can select it as default
audio device in the Sound control/prefs panel. If you want to capture
system audio you need an application that records audio through a
given device and a KEXT that re-routes system audio to your app. Take
a look at the AudioReflectorDriver project/KEXT, or the 3rd party
SoundFlower KEXT that is available on the 'net.
HTH
--th
2008/12/31 James Udo Ludtke <email@hidden>:
I posted earlier as "Using the default output as an input to an
audio unit."
After trying alternate approaches, which have their shortcomings, I
am now
ready to take the advise that creating a driver may be the best
answer.
I studied the SampleAudioDriver project, which can be compiled into 2
targets: Target 1 is "SampleAudioDriver.kext"; target 2 is
"libAudioFloatLib".
I can compile both targets without errors Unfortunately, the
SampleAudioDriver project has no ReadMe file. So, how do I test
and use the
"SampleAudioDriver" and the "libAudioFloatLib.a" which I compiled?
I have searched Apple documentation and the Internet without coming
up with
any useful information on how to use custom kexts or ".a" library
files. I
need to call the driver from within my code, and I like to install
the
driver or library as part of my application installation--hopefully
without
an installer--I think drag and drop installation is much more user
friendly.
Anyhow, to get started, I need to learn:
1. Where is a custom kext best used. Where is a custom library best
used.
2. Reading the source code, how can I tell the method and
arguments, which
must be used (from within my code) to access the kext or library.
3. From any example code (preferred) or documentation, how to use a
kext or
library, including where the call format can be found in the source
file of
the kext code.
Where should I look?
James
_______________________________________________
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