diff options
author | Jussi Kukkonen <jussi.kukkonen@intel.com> | 2013-03-09 12:45:34 +0200 |
---|---|---|
committer | Jussi Kukkonen <jussi.kukkonen@intel.com> | 2013-03-09 12:52:08 +0200 |
commit | e8fb670bf67c958d6913efcfbf9c0fe61e07a8e5 (patch) | |
tree | 168bd25043aa8c1983b4eb08fb9ca4438a9cd3e3 /src/msd | |
parent | 3b0fe09bdcf733aba85fd442dfe4ef4692c06b08 (diff) | |
download | dleyna-control-e8fb670bf67c958d6913efcfbf9c0fe61e07a8e5.tar.gz |
[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 <jussi.kukkonen@intel.com>
Diffstat (limited to 'src/msd')
-rw-r--r-- | src/msd/msd_upnp.py | 14 |
1 files 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 |