I think you are missing prefixes:

[CCode (lower_case_cprefix="", …)]

Victor Aurélio Santos <victoraur.san...@gmail.com> ezt írta (időpont: 2016.
szept. 13., K, 4:23):

> What I've done:
>
> [Compact, CCode (cname = "void")]
>     public class Handle {
>       // ...
>     }
>
>     [CCode (has_target = false)]
>     public delegate void DescriptorConnectPort(Handle? instance, ulong
> port, ref double dataLocation);
>
>     [CCode (copy_function="", destroy_function="")]
>     public struct Descriptor
>     {
>         [CCode (cname = "UniqueID")]
>         public ulong unique_id;
>         [CCode (cname = "Label")]
>         public unowned string label;
>         [CCode (cname = "Properties")]
>         public Properties properties;
>         [CCode (cname = "Name")]
>         public unowned string name;
>         [CCode (cname = "Maker")]
>         public unowned string maker;
>         [CCode (cname = "Copyright")]
>         public unowned string copyright;
>         [CCode (cname = "PortCount")]
>         public ulong port_count;
>         [CCode (cname = "PortDescriptors")]
>         public const PortDescriptor[] port_descriptors;
>         [CCode (cname = "PortNames")]
>         public unowned string[] port_names;
>         [CCode (cname = "PortRangeHints")]
>         public const PortRangeHint[] port_range_hints;
>         [CCode (cname = "ImplementationData")]
>         public void[] implementation_data;
>
>         public Handle? instantiate(Handle? descriptor, ulong sampleRate);
>
>         public DescriptorConnectPort? connect_port;
>
>         public void activate(Handle? instance);
>
>         public void run(Handle? instance, ulong sampleCount);
>
>         public void run_adding(Handle? instance, ulong sampleCount);
>
>         public void set_run_adding_gain(Handle? instance, Data gain);
>
>         public void deactivate(Handle? instance);
>
>         public void cleanup(Handle? instance);
>     }
>
> but...
>
> src/CompressorBackend.c: In function ‘ajami_compressor_backend_connect’:
> src/CompressorBackend.c:674:2: error: unknown type name
> ‘LADSPA_DescriptorConnectPort’
>   LADSPA_DescriptorConnectPort _tmp2_ = NULL;
> src/CompressorBackend.c:745:2: error: called object ‘_tmp2_’ is not a
> function or function pointer
>   _tmp2_ (_tmp4_, (gulong) AJAMI_COMPRESSOR_FLAGS_RMS_PEAK,
> &(*s).rms_peak);
>
> 2016-09-11 14:27 GMT-03:00 Al Thomas <astav...@yahoo.co.uk>:
> >
> >
> >
> >
> > ----- Original Message -----
> >> From: Victor Aurélio Santos <victoraur.san...@gmail.com>
> >> Sent: Sunday, 11 September 2016, 17:08
> >> Subject: Re: [Vala] LADSPA bindings
> >
> >> The valac complaints:
> >
> >> LADSPA.vapi:52.9-52.41: error: unexpected declaration
> >>        public delegate void connect_port(Descriptor* instance, ulong
> >> port, double* dataLocation);
> >
> >
> > A delegate is a type, it identifies the function signature of the
> callback.
> > So the delegate should be defined outside of the struct. Then in the
> struct
> > you identify the callback with its type (the delegate name you've used)
> and
> > the identifier for the callback. I hope that gets you a step further
> forward.
> > Handling APIs in structs is something that I don't fully understand yet.
>
>
>
> --
> Victor Aurélio Santos
> _______________________________________________
> vala-list mailing list
> vala-list@gnome.org
> https://mail.gnome.org/mailman/listinfo/vala-list
>
_______________________________________________
vala-list mailing list
vala-list@gnome.org
https://mail.gnome.org/mailman/listinfo/vala-list

Reply via email to