[PD-dev] gem vs. mrpeach strings?

IOhannes m zmölnig zmoelnig at iem.at
Sun Nov 11 20:30:58 CET 2007


Martin Peach wrote:
> IOhannes m zmoelnig wrote:
>>
>>   
> I suppose because the surgery required to add a type to pd is not easy, 
> and requires patching the source, so just adding a single 'unknown' type 
> that requires the external to do the type-checking is easier. If the 

why?

when patching the core is needed (which i agree that it is), then we 
could just go the whole length

> atoms were not restricted in size it would be easy to just add another 
> field to identify the type. The way things are it might be better to 
> modify the blob type
> from:
> typedef struct _blob /* pointer to a blob */
> {
>    unsigned long s_length; /* length of blob in bytes */
>    unsigned char *s_data; /* pointer to 1st byte of blob */
> } t_blob;
> 
> to:
> typedef struct _blob /* pointer to a blob */
> {
>    t_symbol *blob_type;
>    void *blob; /* pointer to blob */
> } t_blob;

still i don't understand why you would want a blob to have 2 types: 
A_BLOB and blob_type.
iirc, atom.a_type is (int), which gives us a huge wealth of possible 
types and no need to add another type-system.


> then after verifying that the blob_type is the right one, the blob could 
> be accessed according to its expected structure. In the case of string 
> blobs the blob type would be "string" and the blob itself would be a 
> struct consisting of the length and the pointer to the data. You still 
> have the problem of name conflicts, just as with the different "counter" 
> objects, but there is no way of avoiding that in every case, apart from 
> having a central repository of registered names or a dispenser of  
> "globally unique identifiers".

i think this could be solved if you don't insist on giving a symbolic 
name, and have a way to share a variable across your objects.

furthermore, even with names, the good news is, that you can chose an 
arbitrary name (which nobody but the C-programmer has to remember), 
which is a lot easier than with object-names.
for instance, one could (by convention), use globally unique identifiers.



fgmads.r
IOhannes




More information about the Pd-dev mailing list