Re: [Vala] LADSPA bindings

2016-09-15 Thread Victor Aurélio Santos
Thank you very much, Aaron

There's only a thing to change, in the connect_port delegate
DataLocation is a pointer to a float not a float, but changing to
"Data?" solved.

2016-09-13 14:19 GMT-03:00 Aaron Andersen <aa...@fosslib.net>:
> Hello Victor,
>
> You have chosen one of the more difficult C libraries to bind to Vala. The
> way this library is setup so contrary to the GObject way of doing things it
> is certainly an edge case.
>
> Unfortunately this library requires a small C header "helper" file to
> accompany your vapi. The main reason for this is that Vala doesn't deal with
> unnamed function pointers.
>
> I've gone ahead and created ladspa.vapi, ladspa-vala.h (a C header "helper"
> file to make Vala work with the ladspa library), and main.vala (a test
> program I used to ensure the vapi was correct).
>
> main.vala - http://pastebin.com/VF9AXrLY
> ladspa.vapi - http://pastebin.com/WeaKPHnc
> ladspa-vala.h - http://pastebin.com/GB4kPzw1
>
> I placed all of these 3 files into a single directory and then ran this
> command to compile:
>
> valac --pkg ladspa --vapidir . main.vala --save-temps -X -L/usr/lib/ladspa/
> -X -l:amp.so -X -I.
>
> and this command to run the program:
>
> LD_LIBRARY_PATH=/usr/lib/ladspa/ ./main
>
> From reading the documentation I understand that the ladspa framework
> intends for the user to dynamically load plugins via dlopen but I hope you
> get the idea from the example.
>
> Please don't hesitate to ask any questions about this code.
>
> Thank you,
> Aaron
>
> Quoting Al Thomas <astav...@yahoo.co.uk>:
>
>>> - Original Message -
>>> From: Victor Aurélio Santos <victoraur.san...@gmail.com>
>>> Sent: Tuesday, 13 September 2016, 15:55
>>> Subject: Re: [Vala] LADSPA bindings
>>
>>
>>> Now...
>>
>>
>>> [CCode (cname = "connect_port", has_target = false)]
>>> public delegate void DescriptorConnectPort(Handle? instance, ulong
>>> port, ref double dataLocation);
>>
>>
>>> results in:
>>> src/CompressorBackend.c: In function ‘ajami_compressor_backend_connect’:
>>> src/CompressorBackend.c:674:2: error: unknown type name ‘connect_port’
>>>  connect_port _tmp2_ = NULL;
>>
>>
>>
>> I presume there's no typedef for it then. Instead try:
>>
>> [CCode (lower_case_cprefix = "", has_target = false)]
>> public delegate void ConnectPort(Handle? instance, ulong
>> port, ref double dataLocation);
>>
>> The lower_case_cprefix should remove the default namespace prefix
>> and then ConnectPort will be converted to connect_port in C.
>>
>> That's my interpretation of the last paragraph of:
>> https://wiki.gnome.org/Projects/Vala/LegacyBindings#Delegates
>>
>> If that doesn't work, I'm not sure what else to suggest. The paragraph
>> could
>> mean include an empty cname, e.g.
>>
>>
>> [CCode (cname = "", has_target = false)]
>> public delegate void DescriptorConnectPort(Handle? instance, ulong
>> port, ref double dataLocation);
>>
>>
>> Use the --ccode switch with valac to get the C code produced. Look at the
>> code and tweak it until it works then work back to the VAPI. You can use
>> valac to compile C. Just use valac --pkg xyz my_c_file.c
>> ___
>> vala-list mailing list
>> vala-list@gnome.org
>> https://mail.gnome.org/mailman/listinfo/vala-list
>
>
>
>



-- 
Victor Aurélio Santos
___
vala-list mailing list
vala-list@gnome.org
https://mail.gnome.org/mailman/listinfo/vala-list


Re: [Vala] LADSPA bindings

2016-09-13 Thread Victor Aurélio Santos
Now...

[CCode (cname = "connect_port", has_target = false)]
public delegate void DescriptorConnectPort(Handle? instance, ulong
port, ref double dataLocation);

results in:
src/CompressorBackend.c: In function ‘ajami_compressor_backend_connect’:
src/CompressorBackend.c:674:2: error: unknown type name ‘connect_port’
  connect_port _tmp2_ = NULL;

2016-09-13 6:40 GMT-03:00 Al Thomas <astav...@yahoo.co.uk>:
>
>
>
>
>> - Original Message -
>
>> From: Victor Aurélio Santos <victoraur.san...@gmail.com>
>
>> Sent: Tuesday, 13 September 2016, 3:22
>
>> Subject: Re: [Vala] LADSPA bindings
>
>>[CCode (has_target = false)]
>>public delegate void DescriptorConnectPort(Handle? instance, ulong
>> port, ref double dataLocation);
>
>
> You probably want:
> [CCode (cname = "connect_port", has_target = false)]
>
>
>> but...
>
>> src/CompressorBackend.c: In function ‘ajami_compressor_backend_connect’:
>> src/CompressorBackend.c:674:2: error: unknown type name
>> ‘LADSPA_DescriptorConnectPort’
>
>
> There are name conversion rules between the Vala side and C.
>
> I've started to document them, but not completed the examples yet:
> https://wiki.gnome.org/Projects/Vala/LegacyBindings#Naming_Conventions
>
> For an example for delegates take a look at:
> https://wiki.gnome.org/Projects/Vala/LegacyBindings#Delegates



-- 
Victor Aurélio Santos
___
vala-list mailing list
vala-list@gnome.org
https://mail.gnome.org/mailman/listinfo/vala-list


Re: [Vala] LADSPA bindings

2016-09-12 Thread Victor Aurélio Santos
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


Re: [Vala] LADSPA bindings

2016-09-11 Thread Victor Aurélio Santos
Don't know.. but the error stays even changing

Em 11 de set de 2016 13:30, "Gergely Polonkai" <gerg...@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.san...@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 <astav...@yahoo.co.uk>:
>> >> From: Victor Aurélio Santos <victoraur.san...@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
>>
>
___
vala-list mailing list
vala-list@gnome.org
https://mail.gnome.org/mailman/listinfo/vala-list


Re: [Vala] LADSPA bindings

2016-09-11 Thread Victor Aurélio Santos
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 <astav...@yahoo.co.uk>:
>> From: Victor Aurélio Santos <victoraur.san...@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


Re: [Vala] LADSPA bindings

2016-09-10 Thread Victor Aurélio Santos
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.

Em 10 de set de 2016 19:52, "Al Thomas" <astav...@yahoo.co.uk> escreveu:

>
>
> - Original Message -
> > From: Victor Aurélio Santos <victoraur.san...@gmail.com>
> > Sent: Saturday, 10 September 2016, 23:10
> > Subject: [Vala] LADSPA bindings
>
> > I'm trying to create LADSPA bindings but no luck.
> > I'm stuck at Descriptor's function pointers, can any one help me with
> this ?
>
>
> From https://github.com/swh/ladspa/blob/master/ladspa.h this
> looks to be a shared object that needs to have a function
> called ladspa_descriptor that returns a constant struct
> containing details of the plugin. A constant struct seems
> fairly standard for plugins. By the way from what I understand
> you are saying it is better to describe your problem as a LADSPA
> plugin, rather than a LADSPA binding. A binding is using a
> library (shared object) and involves writing a VAPI file, whereas
>
> a plugin is creating a shared object.
>
>
> For an example of a constant struct with function pointers
> see the example in https://bugzilla.gnome.org/show_bug.cgi?id=764439
> That example is for GStreamer, but should give you enough clues.
> If not please give an example of your code that doesn't work.
>
> Al
>
___
vala-list mailing list
vala-list@gnome.org
https://mail.gnome.org/mailman/listinfo/vala-list


Re: [Vala] valadoc.org online again, but search not working

2016-08-30 Thread Victor Aurélio Santos
The search still not working...

Em 6 de jun de 2016 22:02, "Daniel Espinosa"  escreveu:

> Is fairly new made with 0.26 and 0.32.
>
> If valadoc uses vapi files why GIR then?
>
> If you need GIR for C based projects for documentation then may adding a
> meta information to avoid GIR for Vala based projects could be very
> helpful.
>
> I need your to build just for VAPI, including for valadoc.org to get GXml
> documentation I online.
>
> Are this bugs in valadoc?
> El jun. 6, 2016 5:39 PM, "Chris Daley"  escribió:
>
> > Hi Daniel,
> >
> > I simply removed the GIR and Valadoc generated the docs from the vapi
> file
> > instead. How old is the GIR file? I came across a few bug reports similar
> > to this error for GIR files produced with a much earlier (+/- 0.16)
> version
> > of Vala.
> >
> > I hope this helps
> > Cheers
> > Chris
> >
> > 2016-06-06 14:07 GMT-07:00 Daniel Espinosa :
> >
> >> Please tell me.
> >>
> >> Have you fixed my generated GIR and VAPI or fixed valadoc?
> >>
> >> If fixed valadoc, I should revert my local changes on GXml to API as it
> >> was before to avoid breaks.
> >>
> >> 2016-06-06 13:35 GMT-05:00 Chris Daley :
> >>
> >>> Hi Daniel,
> >>> I have added the GXml 0.10 packages to the valadoc.valadate.org
> mirror.
> >>> You should be able to see them now, otherwise refresh the page.
> >>> Cheers
> >>> Chris D
> >>>
> >>> 2016-06-06 11:29 GMT-07:00 Daniel Espinosa :
> >>>
>  Cheking at your errors, witch I can reproduce locally, but any way I
>  found:
> 
> 
>  `callback' in `class' error, means a delegate declared in a class
>  namespace, which is valid, but an error is raised.
> 
>  `field' in `namespace' error, means a globally declared variable make
>  public.
> 
> 
>  While in Vala both are Ok, GObject Introspection doesn't complaints
>  about them: Is this a valadoc bug?
> 
> 
>  I've made some changes in GXml to fix this, but one of it (hiding
>  global variable) requires an API changes, suitable to happen in next
> 0.12,
>  but not in 0.10. While may be this API change should be considered
> minor,
>  most users of GXml relays on legacy DOM support and if they are
> checking
>  errors by this global variable, we are in troubles.
> 
>  I really wants GXml 0.10 added to valadoc.org or alternate sites,
>  while I release 0.12 version. Please consider this questions and make
> me
>  know if is my fault.
> 
> 
>  2016-06-06 10:40 GMT-05:00 Chris Daley :
> 
> > Hi Daniel,
> >
> > This is the error I get when I try to build Valadoc with the
> > GXml-0.10.gir:
> >
> > valadoc --target-glib 2.99 --driver "0.32" --importdir girs --doclet
> > "." -o "tmp/gxml-0.10" "girs/vala/vapi/gxml-0.10.vapi" --vapidir
> > "girs/vala/vapi" --girdir "girs/gir-1.0"  --importdir "girs/gir-1.0"
> > --import GXml-0.10 --wiki documentation/gxml-0.10/wiki
> >
> > (valadoc:279): GLib-CRITICAL **: g_str_has_suffix: assertion 'str !=
> > NULL' failed
> >
> > ** (valadoc:279): CRITICAL **:
> > valadoc_importer_gir_documentation_importer_attach_comment: assertion
> > 'cname != NULL' failed
> > /home/valadoc/girs/gir-1.0/GXml-0.10.gir:5641.3-5641.78: error:
> > unknown child element `callback' in `class'
> > 
> > ^
> > /home/valadoc/girs/gir-1.0/GXml-0.10.gir:10483.2-10483.32: error:
> > unknown child element `field' in `namespace'
> > 
> > ^
> >
> > Cheers
> > Chris
> >
> >
> > 2016-06-06 7:52 GMT-07:00 Daniel Espinosa :
> >
> >> Valadoc.org and its alternatives doesn't load GXml package, could
> >> anyone
> >> point how can help to fix it?
> >> El jun. 6, 2016 9:34 AM, "Ben Iofel"  escribió:
> >>
> >> > For now you may use this mirror with working search:
> >> > http://valadoc.valadate.org
> >> >
> >> > On Mon, Jun 6, 2016 at 6:08 AM Ulink  wrote:
> >> >
> >> > > Hi,
> >> > >
> >> > > valadoc.org seems online again, but if one type something into
> >> the
> >> > > search field, it shows:
> >> > >
> >> > > 'Query failed: (0)s'
> >> > >
> >> > > Is someone able to fix this?
> >> > >
> >> > > --
> >> > > Bernhard
> >> > > ___
> >> > > 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
> >> >
> >> 

[Vala] Reference to "this pointer" ?

2016-01-25 Thread Victor Aurélio Santos
How can I pass a "this pointer" to a method marked with "ref" keyword ?

for example:

void test(ref objtype t) {...}

// ... class and method declaration
{
test(ref this);
}

Thanks ;)

-- 
Victor Aurélio Santos
___
vala-list mailing list
vala-list@gnome.org
https://mail.gnome.org/mailman/listinfo/vala-list


Re: [Vala] Reference to "this pointer" ?

2016-01-25 Thread Victor Aurélio Santos
Isn't this a pointer to actual instance of a class (reference) ?

What I want is to add the instance of a class do a GenericArray, but not a copy.

And is what the actually the function does, and works ok, except by
the part of pass the "this".

2016-01-25 21:16 GMT-03:00 Nor Jaidi Tuah <norjaidi.t...@ubd.edu.bn>:
>
> To clarify my earlier reply.
>
> 'this' is a constant in the sense that
> you cannot change it, for example with
>
> this = someOtherRef;  // <-- error
>
> Nice day
> Nor Jaidi Tuah
>
>
>
> PRIVILEGED/CONFIDENTIAL information may be contained in this message. If you 
> are neither the addressee (intended recipient) nor an authorised recipient of 
> the addressee, and have received this message in error, please destroy this 
> message (including attachments) and notify the sender immediately. STRICT 
> PROHIBITION: This message, whether in part or in whole, should not be 
> reviewed, retained, copied, reused, disclosed, distributed or used for any 
> purpose whatsoever. Such unauthorised use may be unlawful and may contain 
> material protected by the Official Secrets Act (Cap 153) of the Laws of 
> Brunei Darussalam. DISCLAIMER: We/This Department/The Government of Brunei 
> Darussalam, accept[s] no responsibility for loss or damage arising from the 
> use of this message in any manner whatsoever. Our messages are checked for 
> viruses but we do not accept liability for any viruses which may be 
> transmitted in or with this message.
> ___
> vala-list mailing list
> vala-list@gnome.org
> https://mail.gnome.org/mailman/listinfo/vala-list



-- 
Victor Aurélio Santos
___
vala-list mailing list
vala-list@gnome.org
https://mail.gnome.org/mailman/listinfo/vala-list


Re: [Vala] Vala API causing double definition

2015-10-09 Thread Victor Aurélio Santos
PS: keep in mind that this isn't a GLib-based library, it's plain C
functions! i.e. Legacy Binds

-- 
Victor Aurélio Santos
___
vala-list mailing list
vala-list@gnome.org
https://mail.gnome.org/mailman/listinfo/vala-list


Re: [Vala] Vala API causing double definition

2015-10-09 Thread Victor Aurélio Santos
Ben, can you provide more details ?

Thanks.

2015-10-09 10:49 GMT-03:00 Ben Iofel <iofel...@gmail.com>:
> Just put the cheader at the top
>
>
> On Fri, Oct 9, 2015, 9:48 AM Victor Aurélio Santos
> <victoraur.san...@gmail.com> wrote:
>>
>> PS: keep in mind that this isn't a GLib-based library, it's plain C
>> functions! i.e. Legacy Binds
>>
>> --
>> Victor Aurélio Santos



-- 
Victor Aurélio Santos
___
vala-list mailing list
vala-list@gnome.org
https://mail.gnome.org/mailman/listinfo/vala-list


Re: [Vala] Vala API causing double definition

2015-10-09 Thread Victor Aurélio Santos
There's no ajami.h, and just [CCode (cprefix = "Ajami_")] changes
nothing keep getting double definition.

2015-10-08 22:26 GMT-03:00 Ben <iofel...@gmail.com>:
> I think you need [CCode (cprefix = "Ajami_", cheader_filename = "ajami.h")]
> on your top namespace
>
> On Thu, Oct 8, 2015 at 7:29 PM, Victor Aurélio Santos
> <victoraur.san...@gmail.com> wrote:
>
> Hi, consider the following Vala API file: namespace CAjami { [CCode (cprefix
> = "io_", cheader_filename = "io.h")] namespace IO { [CCode (cname =
> "io_init")] public void init(); [CCode (cname = "io_cleanup")] public void
> cleanup(); } } there's something wrong with that ?, every time I use
> CAjami.IO.cleanup(); inside a member the class get duplicated definition, if
> i just comment out the line with cleanup(); function it compiles normal. the
> vala code: public override void shutdown() { base.shutdown();
> CAjami.IO.cleanup(); } and the error: build/src/ajamiapp.c:66:8: error:
> redefinition of '_AjamiAjami' struct _AjamiAjami {
> build/src/ajamiobjects.h:111:8: note: previous definition is here struct
> _AjamiAjami { build/src/ajamiapp.c:71:8: error: redefinition of
> '_AjamiAjamiClass' struct _AjamiAjamiClass { build/src/ajamiobjects.h:116:8:
> note: previous definition is here struct _AjamiAjamiClass { if I just
> comment out the call the function in the shutdown() signal is build normal.
> Thanks.
> --
> Victor Aurélio Santos ___________
> vala-list mailing list vala-list@gnome.org
> https://mail.gnome.org/mailman/listinfo/vala-list



-- 
Victor Aurélio Santos
___
vala-list mailing list
vala-list@gnome.org
https://mail.gnome.org/mailman/listinfo/vala-list