From e8fb670bf67c958d6913efcfbf9c0fe61e07a8e5 Mon Sep 17 00:00:00 2001 From: Jussi Kukkonen Date: Sat, 9 Mar 2013 12:45:34 +0200 Subject: [UPnP] Handle GetServers() asynchronously The call won't take long normally, and the app isn't really useful until it returns. Nevertheless, D-Bus calls should still be asynchronous. Signed-off-by: Jussi Kukkonen --- src/msd/msd_upnp.py | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/msd/msd_upnp.py b/src/msd/msd_upnp.py index 63bafc2..8aeed69 100644 --- a/src/msd/msd_upnp.py +++ b/src/msd/msd_upnp.py @@ -67,13 +67,16 @@ class State(object): return (folderName, image) - def __init_servers(self): - for i in self.__manager.GetServers(): + def __on_get_servers_reply (self, servers): + for path in servers: try: - self.__servers[i] = State.__create_server_tuple(i) - except dbus.exceptions.DBusException: + self.__servers[path] = State.__create_server_tuple(path) + except Exception: pass + def __on_get_servers_error (self, error): + print "Manager.GetServers() failed: %s" % error + def found_server(self, path): if not path in self.__servers: try: @@ -100,7 +103,8 @@ class State(object): self.__manager.connect_to_signal("FoundServer", self.found_server) self.__manager.connect_to_signal("LostServer", self.lost_server) - self.__init_servers() + self.__manager.GetServers(reply_handler=self.__on_get_servers_reply, + error_handler=self.__on_get_servers_error) def set_lost_server_cb(self, callback): self.__lost_server_cb = callback -- cgit v1.2.1