comp.lang.ada
 help / color / mirror / Atom feed
From: Ian Clifton <ian.clifton@chem.ox.ac.uk>
Subject: Re: Empty arrays & libdbusada
Date: Thu, 30 Jun 2016 21:54:53 +0100
Date: 2016-06-30T21:54:53+01:00	[thread overview]
Message-ID: <dtlf8tF90i0U1@mid.individual.net> (raw)
In-Reply-To: slrnnn9h3t.jqu.reet@fenrir.codelabs.ch

Reto Buerki <reet@codelabs.ch> writes:

> On 2016-06-29, Ian Clifton <ian.clifton@chem.ox.ac.uk> wrote:
>> Reto Buerki <reet@codelabs.ch> writes:
>>
>>> On 2016-06-28, Ian Clifton <ian.clifton@chem.ox.ac.uk> wrote:
>>>> I’m trying to learn a bit about controlling programs through D-bus. I
>>>> can make things happen with the “D-feet” tool, calling methods in
>>>> ork.gtk.Actions and org.gtk.Application, supplying empty arrays (notated
>>>> as “[]”) for un‐needed parameters. But when I try to do the equivalent
>>>> in Ada code using libdbusada, I hit a snag—libdbusada doesn’t seem to be
>>>> able to handle empty arrays. Does anyone know of a way round this?
>>>> Thanks,
>>>
>>> Can you please provide a concrete example of what you are trying to do?
>>> What happens if you just remove the empty array arguments?
>>>
>> Thanks for replying. At the moment I’m trying to control the play‐back
>> of a CD using the “Sound Juicer” application on Debian Linux. The
>> application exposes the “org.gtk.Actions” interface through D-Bus. Using
>> D-feet, I can toggle playback by calling the “Activate” method with
>> three arguments:
>>
>> 'play', [], []
>>
>> i.e. the string 'play' followed by two empty arrays to mark the places
>> of un‐needed parameters. 
>>
>> If I omit these placeholders in my Ada code I get:
>>
>>    raised D_BUS.D_BUS_ERROR : Type of message, '(s)', does not match
>>    expected type '(sava{sv})'
>>
>> If I supply empty arrays (uninitialised
>> D_Bus.Arguments.Containers.Array_Type variables) I get:
>>
>>    raised D_BUS.D_BUS_ERROR : Serialization error: Array is empty
>>
>> and if I put either empty strings or nonsense strings into containers of
>> the expected type, my method calls seem to be passed without error but
>> are ignored by the application.
>
> Thanks for the detailed description.
>
> Creating an array containing only an empty string should work in this
> case. See the D_Bus/Ada notify.adb example where the same is done for
> the Notify method of the org.freedesktop.Notifications interface.

Thanks, I’ll investigate when I get a bit more time tomorrow night.
-- 
Ian ◎

  reply	other threads:[~2016-06-30 20:54 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-06-28 11:19 Empty arrays & libdbusada Ian Clifton
2016-06-29  9:35 ` Reto Buerki
2016-06-29 21:49   ` Ian Clifton
2016-06-30  7:04     ` Reto Buerki
2016-06-30 20:54       ` Ian Clifton [this message]
2016-07-05 15:33         ` Ian Clifton
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox