[linux-audio-dev] XAP: Strings and Raw Data Controls

David Olofson david at olofson.net
Tue Dec 17 18:41:00 UTC 2002


We concluded a while ago that string events are really rather handy 
for referencing external files. (For that to be truly useful, hosts 
need to be able to understand what these strings are; ie directory 
names, file names, temporary storage, output, input. This, so they 
can keep track of what belongs in a project.)

Anyway, what I'm seeing here is that strings and raw data blocks 
overlap quite significantly on the protocol level. Both are just 
control ports that take or send "strings" - either NULL terminated, 
or "pascal style". The latter *could* be replace former... Just hint 
them differently. Same transfer protocol.

Problem with NULL terminated strings is that they cannot take binary 
data (without encoding), and that you have to scan them for the 
terminator to find out their length.

OTOH, sending a C string as raw data means you have to do this, even 
if the receiver will just ignore the "length" field, and treat it as 
the C string it actually is...

I'm leaning towards the "strings in raw data blocks" approach, 
despite the little strlen() inconveniency for senders. Mostly because 
it's one control data type less to care about, without loss of real 
functionality.

Ideas?


//David Olofson - Programmer, Composer, Open Source Advocate

.- The Return of Audiality! --------------------------------.
| Free/Open Source Audio Engine for use in Games or Studio. |
| RT and off-line synth. Scripting. Sample accurate timing. |
`---------------------------> http://olofson.net/audiality -'
   --- http://olofson.net --- http://www.reologica.se ---



More information about the Linux-audio-dev mailing list