Re: [Vala] LADSPA bindings



What I've tried:

    [CCode (copy_function="", destroy_function="")]
    public struct Descriptor
    {
        public ulong UniqueID;
        public const char[] Label;
        public Properties Properties;
        public const char[] Name;
        public const char[] Maker;
        public const char[] Copyright;
        public ulong PortCount;
        public const PortDescriptor[] PortDescriptors;
        public const char[,] PortNames;
        public const PortRangeHint[] PortRangeHints;
        public void[] ImplementationData;

        public Descriptor instantiate(Descriptor* descriptor, ulong sampleRate);

        [CCode (has_target = false)]
        public delegate void connect_port(Descriptor* instance, ulong
port, double* dataLocation);

        public void activate(Descriptor* instance);

        public void run(Descriptor* instance, ulong sampleCount);

        public void run_adding(Descriptor* instance, ulong sampleCount);

        public void set_run_adding_gain(Descriptor* instance, Data gain);

        public void deactivate(Descriptor* instance);

        public void cleanup(Descriptor* instance);
    }

The valac complaints:

LADSPA.vapi:52.9-52.41: error: unexpected declaration
        public delegate void connect_port(Descriptor* instance, ulong
port, double* dataLocation);

2016-09-10 20:18 GMT-03:00 Al Thomas <astavale yahoo co uk>:
From: Victor Aurélio Santos <victoraur santos gmail com>
Sent: Saturday, 10 September 2016, 23:57
Subject: Re: [Vala] LADSPA bindings

I'm trying to use plugins from vala, not to write!
I'm stuck at writing the vapi file, most specifically at the Descriptor struct.


Take a look at https://wiki.gnome.org/Projects/Vala/LegacyBindings#Binding_a_C_Struct.27s_Fields
The function pointers are targetless delegates. There is no

memory handling for the struct so I don't think it should be

bound as a compact class.



-- 
Victor Aurélio Santos


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]