GUPnP.ServiceProxy.send_action_hash() invalid parameters



Hi all,

I'm trying to use Python GUPnP with ContentDirectory service.


While executing send_action_hash or send_action_list I got an exception:

TypeError: send_action_list() takes exactly 6 arguments (7 given)

or

TypeError: send_action_hash() takes exactly 4 arguments (5 given)

 Code is :
from gi.repository import GUPnP, GLib

def device_available (cp, proxy):
print ("Found " + proxy.get_friendly_name())
content_dir = proxy.get_service("urn:schemas-upnp-org:service:ContentDirectory")
if content_dir is not None:
in_data = {
}
out_data = {
}
b, out = content_dir.send_action_hash("Browse", None, in_data, out_data)
b, out = content_dir.send_action_list("Browse",None, in_data.keys(),
in_data.values(), out_data.keys(), out_data.values())

ccontext = GUPnP.Context.new(None, None, 0)
cp = GUPnP.ControlPoint.new(ccontext, "upnp:rootdevice")
cp.set_active(True)
cp.connect("device-proxy-available", device_available)

GLib.MainLoop().run()


Content of my /usr/share/gir-1.0/GUPnP-1.0.gir with these methods is: 

<method name="send_action_hash"
c:identifier="gupnp_service_proxy_send_action_hash"
deprecated="1"
deprecated-version="0.20.9">
<doc xml:space="preserve">See gupnp_service_proxy_send_action(); this version takes a pair of
#GHashTable&lt;!-- --&gt;s for runtime determined parameter lists.

Do not use this function in newly written code; it cannot guarantee the
order of arguments and thus breaks interaction with many devices.</doc>
<doc-deprecated xml:space="preserve">Use gupnp_service_proxy_send_action() or
gupnp_service_proxy_send_action_list()</doc-deprecated>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if sending the action was succesful.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="proxy" transfer-ownership="none">
<doc xml:space="preserve">A #GUPnPServiceProxy</doc>
<type name="ServiceProxy" c:type="GUPnPServiceProxy*"/>
</instance-parameter>
<parameter name="action" transfer-ownership="none">
<doc xml:space="preserve">An action</doc>
<type name="utf8" c:type="const char*"/>
</parameter>
<parameter name="error" transfer-ownership="none">
<doc xml:space="preserve">The location where to store any error, or %NULL</doc>
<type name="GLib.Error" c:type="GError**"/>
</parameter>
<parameter name="in_hash" transfer-ownership="none">
<doc xml:space="preserve">A #GHashTable of in
parameter name and #GValue pairs</doc>
<type name="GLib.HashTable" c:type="GHashTable*">
<type name="utf8"/>
<type name="GObject.Value"/>
</type>
</parameter>
<parameter name="out_hash"
direction="inout"
caller-allocates="0"
transfer-ownership="full">
<doc xml:space="preserve">A #GHashTable
of out parameter name and initialized #GValue pairs</doc>
<type name="GLib.HashTable" c:type="GHashTable*">
<type name="utf8"/>
<type name="GObject.Value"/>
</type>
</parameter>
</parameters>
</method>
<method name="send_action_list"
c:identifier="gupnp_service_proxy_send_action_list">
<doc xml:space="preserve">The synchronous variant of #gupnp_service_proxy_begin_action_list and
#gupnp_service_proxy_end_action_list.</doc>
<return-value transfer-ownership="none">
<doc xml:space="preserve">%TRUE if sending the action was succesful.</doc>
<type name="gboolean" c:type="gboolean"/>
</return-value>
<parameters>
<instance-parameter name="proxy" transfer-ownership="none">
<doc xml:space="preserve">A #GUPnPServiceProxy</doc>
<type name="ServiceProxy" c:type="GUPnPServiceProxy*"/>
</instance-parameter>
<parameter name="action" transfer-ownership="none">
<doc xml:space="preserve">An action</doc>
<type name="utf8" c:type="const char*"/>
</parameter>
<parameter name="error" transfer-ownership="none">
<doc xml:space="preserve">The location where to store any error, or %NULL</doc>
<type name="GLib.Error" c:type="GError**"/>
</parameter>
<parameter name="in_names" transfer-ownership="none">
<doc xml:space="preserve">#GList of 'in' parameter
names (as strings)</doc>
<type name="GLib.List" c:type="GList*">
<type name="utf8"/>
</type>
</parameter>
<parameter name="in_values" transfer-ownership="none">
<doc xml:space="preserve">#GList of values (as
#GValue) that line up with @in_names</doc>
<type name="GLib.List" c:type="GList*">
<type name="GObject.Value"/>
</type>
</parameter>
<parameter name="out_names" transfer-ownership="none">
<doc xml:space="preserve">#GList of 'out' parameter
names (as strings)</doc>
<type name="GLib.List" c:type="GList*">
<type name="utf8"/>
</type>
</parameter>
<parameter name="out_types" transfer-ownership="none">
<doc xml:space="preserve">#GList of types (as #GType)
that line up with @out_names</doc>
<type name="GLib.List" c:type="GList*">
<type name="GType"/>
</type>
</parameter>
<parameter name="out_values"
direction="out"
caller-allocates="0"
transfer-ownership="full">
<doc xml:space="preserve">#GList of values
(as #GValue) that line up with @out_names and @out_types.</doc>
<type name="GLib.List" c:type="GList**">
<type name="GObject.Value"/>
</type>
</parameter>
</parameters>
</method>

pdb show next results: 
-> b, out = content_dir.send_action_hash("Browse", None, in_data, out_data)
(Pdb) type(content_dir)
<class 'gi.repository.GUPnP.ServiceProxy'>
(Pdb) content_dir.send_action_hash.__doc__
'send_action_hash(self, action:str, error:error, in_hash:dict, out_hash:dict) -> out_hash:dict'
(Pdb) content_dir.send_action_list.__doc__
'send_action_list(self, action:str, error:error, in_names:list, in_values:list, out_names:list, out_types:list) -> out_values:list'
(Pdb) p GUPnP
<gi.module.DynamicModule 'GUPnP' from '/usr/lib/girepository-1.0/GUPnP-1.0.typelib'>

What I'm wrong or am I right? Could somebody give me some information about possible issues or how to call these methods with
correct parameters or maybe how to form correct .gir file? There is no any information about such issues in
the internet.
 Type of service while debugging is ServiceProxy .


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