OSDN Git Service

test: Update opp-client to use the new interfaces
authorLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
Fri, 21 Dec 2012 08:55:12 +0000 (10:55 +0200)
committerLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
Fri, 21 Dec 2012 10:04:10 +0000 (12:04 +0200)
test/opp-client

index b26a81c..f346bb6 100755 (executable)
@@ -7,6 +7,13 @@ import dbus.mainloop.glib
 import os.path
 from optparse import OptionParser
 
+BUS_NAME='org.bluez.obex'
+PATH = '/org/bluez/obex'
+CLIENT_INTERFACE='org.bluez.obex.Client1'
+SESSION_INTERFACE='org.bluez.obex.Session1'
+OBJECT_PUSH_INTERFACE='org.bluez.obex.ObjectPush1'
+TRANSFER_INTERFACE='org.bluez.obex.Transfer1'
+
 def parse_options():
        parser.add_option("-d", "--device", dest="device",
                        help="Device to connect", metavar="DEVICE")
@@ -25,25 +32,15 @@ class OppClient:
                self.transfer_path = None
                self.verbose = verbose
                bus = dbus.SessionBus()
-               obj = bus.get_object("org.bluez.obex", session_path)
-               self.session = dbus.Interface(obj, "org.bluez.obex.Session")
-               self.opp = dbus.Interface(obj, "org.bluez.obex.ObjectPush")
-               bus.add_signal_receiver(self.transfer_complete,
-                               dbus_interface="org.bluez.obex.Transfer",
-                               signal_name="Complete",
-                               path_keyword="path")
-               bus.add_signal_receiver(self.transfer_error,
-                               dbus_interface="org.bluez.obex.Transfer",
-                               signal_name="Error",
-                               path_keyword="path")
-               if self.verbose:
-                       bus.add_signal_receiver(self.transfer_progress,
-                               dbus_interface="org.bluez.obex.Transfer",
-                               signal_name="PropertyChanged",
-                               path_keyword="path")
-
-       def create_transfer_reply(self, reply):
-               (path, properties) = reply
+               obj = bus.get_object(BUS_NAME, session_path)
+               self.session = dbus.Interface(obj, SESSION_INTERFACE)
+               self.opp = dbus.Interface(obj, OBJECT_PUSH_INTERFACE)
+               bus.add_signal_receiver(self.properties_changed,
+                       dbus_interface="org.freedesktop.DBus.Properties",
+                       signal_name="PropertiesChanged",
+                       path_keyword="path")
+
+       def create_transfer_reply(self, path, properties):
                self.transfer_path = path
                self.transfer_size = properties["Size"]
                if self.verbose:
@@ -53,24 +50,18 @@ class OppClient:
                print err
                mainloop.quit()
 
-       def transfer_complete(self, path):
-               if path != self.transfer_path:
-                       return
-               if self.verbose:
-                       print "Transfer finished"
-               mainloop.quit()
-
-       def transfer_error(self, code, message, path):
+       def properties_changed(self, interface, properties, invalidated, path):
                if path != self.transfer_path:
                        return
-               print "Transfer finished with error %s: %s" % (code, message)
-               mainloop.quit()
 
-       def transfer_progress(self, prop, value, path):
-               if path != self.transfer_path:
+               if properties['Status'] == 'complete' or \
+                               properties['Status'] == 'error':
+                       if self.verbose:
+                               print "Transfer %s" % properties['Status']
+                       mainloop.quit()
                        return
 
-               if prop != "Progress":
+               if properties["Progress"] == None:
                        return
 
                speed = (value - self.progress) / 1000
@@ -104,9 +95,8 @@ if  __name__ == '__main__':
        bus = dbus.SessionBus()
        mainloop = gobject.MainLoop()
 
-       client = dbus.Interface(bus.get_object("org.bluez.obex",
-                                               "/org/bluez/obex"),
-                                               "org.bluez.obex.Client")
+       client = dbus.Interface(bus.get_object(BUS_NAME, PATH),
+                                                       CLIENT_INTERFACE)
 
        print "Creating Session"
        path = client.CreateSession(options.device, { "Target": "OPP" })