On 2016-09-22 12:21, Antoine Rousseau wrote:
> 2016-09-22 11:03 GMT+02:00 IOhannes m zmoelnig <zmoel...@iem.at>:
>> On 2016-09-22 08:37, Antoine Rousseau wrote:
>>> you need
>>> to be aware of the version at compilation time, and have to use this
>>> version at runtime. So I don't think you can build an external that would
>>> be compatible for both versions.
>> why?
> Because interfaces changed :
> -void iemgui_save(t_iemgui *iemgui, t_symbol **srl, int *bflcol)
> +void iemgui_save(t_iemgui *iemgui, t_symbol **srl, t_symbol**bflcol)
> so how could I build a binary that would switch the interface of iemgui_save
> at runtime, following the version of the running Pd ?

in pseudo code:
  iemgui_save(x, srl, i_color);
  iemgui_save(x, srl, s_color);

this will give you some compiler warnings, but you can do:

typedef void(t_iemgui_save_old*)(t_iemgui *iemgui, t_symbol **srl, int
typedef void(t_iemgui_save_new*)(t_iemgui *iemgui, t_symbol **srl,
t_symbol **bflcol);

if(pd<0.47) {
    t_iemgui_save_old isave=(t_iemgui_save_old)iemgui_save;
    isave(x, srl, i_color);
} else {
    t_iemgui_save_old isave=(t_iemgui_save_new)iemgui_save;
    isave(x, srl, s_color);


Attachment: signature.asc
Description: OpenPGP digital signature

Pd-list@lists.iem.at mailing list
UNSUBSCRIBE and account-management -> 

Reply via email to