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 ---
