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