questions about Logic AU node properties
questions about Logic AU node properties
- Subject: questions about Logic AU node properties
- From: "Sophia Poirier [dfx]" <email@hidden>
- Date: Mon, 5 Nov 2007 10:27:40 -0500
I have a couple of questions about the Logic AU node properties
introduced in Leopard:
1) What exactly are the expectations on the AU side for endian
handling for a custom property that specifies
kLogicAUNodePropertyEndianMode_DontTouch and
kLogicAUNodePropertyFlag_FullRoundTrip and is running in
kLogicAUNodeOperationMode_EndianSwap? Is it expected for the AU to
endian-swap data before beginning Set/GetProperty handling and then
again after it's done but before returning? Or what?
Let's take an example of a private AU property that passes this data
structure:
typedef struct {
float inSeed;
double outValue;
} PropertyStructure;
The caller of GetProperty for this custom property will fill in a
value in the inSeed field and pass that in as part of its data buffer
for the call. The AU then, when handling the GetProperty call, reads
the value of inSeed and then calculates some output value that is
assigned to outValue and which the caller then receives as its
"result" of the GetProperty call.
So how is the AU that is called expected to handle this? Does it
endian-swap inSeed before proceeding to process the GetProperty call
and then endian-swap outValue after completing the work? Is it also
expected to again endian-swap inSeed as well after finishing work?
Is the caller of GetProperty expected to do any endian-swapping? Or
are the expectations different from any of these hypotheses?
2) Is there a recommended way to handle a custom AU property that
references a local file? If an AU is running on a node and it has a
remote UI running on the master, and the UI allows the user to open a
file selector dialog choosing a local file on the master machine
(like perhaps an audio file to load for sampling or other audio
manipulation), then if a reference to that file needs to be passed
from UI to the active AU via a custom property.
So I know that FSRef is no good cuz it's not even dependable between
processes on a single machine. That leaves CFURLs and paths. A
POSIX path does not specify the machine but is relative within a
given machine, so that would seem no good either. A CFURL can
specify the machine, but I've found when creating a CFURL from an
FSRef from a file selector dialog and doing CFShow() on it, I get an
URL of a format like:
file://localhost/path/to/file
So in that case, though a machine name is present, it's of no use in
a network cuz "localhost" of course is relative to the local machine.
Which leaves me wondering, how would I best pass a file reference?
Or is this a lost cause and an example of an AU which simply
shouldn't be node-enabled?
Or if there is a good way to reference the file, what are the issues
of network file access for a node machine? Will it even have
privileges or access to network files given the way that nodes run?
thanks,
Sophia
_______________________________________________
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