Re: [Vala] LADSPA bindings



Try removing it everywhere. Structs are always translated into pointers, so
every Descriptor * should be plain Descriptor instead. Where you need to
pass pointers to simple types (e.g. double *), use “typename?” instead,
like double? double_pointer_param.

Another thing that is suspicious to me is char[,] PortNames, but it may be
I just haven’t seen such Vala construct before.

On Sun, Sep 11, 2016, 18:37 Victor Aurélio Santos <
victoraur santos gmail com> wrote:

Don't know.. but the error stays even changing

Em 11 de set de 2016 13:30, "Gergely Polonkai" <gergely polonkai eu>
escreveu:

Should not that be (Descriptor instance, ulong port, double?
dataLocation) instead? Using asterisk in Vala seems unnatural to me…

On Sun, Sep 11, 2016, 18:09 Victor Aurélio Santos <
victoraur santos gmail com> wrote:

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
_______________________________________________
vala-list mailing list
vala-list gnome org
https://mail.gnome.org/mailman/listinfo/vala-list




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