[PATCH v4 21/22] Add script to test MediaPlayer interface

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

 



---
 test/test-media-player |  108 ++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 108 insertions(+), 0 deletions(-)
 create mode 100755 test/test-media-player

diff --git a/test/test-media-player b/test/test-media-player
new file mode 100755
index 0000000..712cf31
--- /dev/null
+++ b/test/test-media-player
@@ -0,0 +1,108 @@
+#!/usr/bin/python
+
+import sys
+import dbus
+from optparse import OptionParser, make_option
+
+USAGE = "Usage: %prog [options] <command> [args]"
+COMMANDS = """
+Commands:
+    changetrack <bdaddr> <key> <value> [<key> <value> ...]
+
+    changeplayback <bdaddr> status elapsed-time
+        status: one of playing, stopped, paused, forward-seek, reverse-seek
+                or error.
+        elapsed-time: in milliseconds
+
+    setproperty <bdaddr> property value
+        setting: one of Equalizer, Repeat, Shuffle or Scan
+        value: value correspondent to the setting specified
+"""
+
+class MyParser(OptionParser):
+    def format_epilog(self, formatter):
+        return self.epilog
+
+bus = dbus.SystemBus()
+
+manager = dbus.Interface(bus.get_object("org.bluez", "/"), "org.bluez.Manager")
+
+option_list = [
+		make_option("-i", "--device", action="store",
+				type="string", dest="dev_id"),
+		]
+parser = MyParser(option_list=option_list, usage=USAGE, epilog=COMMANDS)
+
+(options, args) = parser.parse_args()
+
+if len(args) < 2:
+    parser.print_help()
+    sys.exit(1)
+
+if options.dev_id:
+	adapter_path = manager.FindAdapter(options.dev_id)
+else:
+	adapter_path = manager.DefaultAdapter()
+
+adapter = dbus.Interface(bus.get_object("org.bluez", adapter_path),
+							"org.bluez.Adapter")
+
+device = adapter.FindDevice(args[1])
+control = dbus.Interface(bus.get_object("org.bluez", device),
+                                "org.bluez.Control")
+mp = dbus.Interface(bus.get_object("org.bluez", device),
+                                "org.bluez.MediaPlayer")
+
+def handle_change_track(mp, args):
+    if len(args) % 2 != 0:
+        print("Don't know how to handle odd number of parameters")
+        print(USAGE)
+        sys.exit(1)
+
+    d = dict()
+    for i in range(2, len(args), 2):
+        key = args[i]
+        if key == "Title" or key == "Artist" or key == "Album" \
+                                            or key == "Genre":
+            d[key] = dbus.String(args[i + 1].decode(sys.stdin.encoding))
+        elif key == "NumberOfTracks" or key == "TrackNumber"       \
+                                            or key == "TrackDuration":
+            d[key] = dbus.UInt32(int(args[i + 1]))
+        else:
+            print("Unknown metadata: %s" % key)
+            sys.exit(1)
+
+    d = dbus.Dictionary(d, signature='sv')
+    mp.ChangeTrack(d)
+
+def handle_change_playback(mp, args):
+    if len(args) != 4:
+        print(USAGE)
+        sys.exit(1)
+
+    status = dbus.String(args[2])
+    elapsed = dbus.UInt32(long(args[3]))
+
+    mp.ChangePlayback(status, elapsed)
+
+def handle_set_property(mp, args):
+    if len(args) != 4:
+        print(USAGE)
+        sys.exit(1)
+
+    prop = dbus.String(args[2])
+    value = dbus.String(args[3])
+
+    mp.SetProperty(prop, value)
+
+
+handlers = { 'changetrack': handle_change_track,
+             'changeplayback': handle_change_playback,
+             'setproperty': handle_set_property }
+
+if not args[0] in handlers:
+    print("Unknown command -- %s" % argv[1])
+    print(USAGE)
+    sys.exit(1)
+
+handlers[args[0]](mp, args)
-- 
1.7.6

--
To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux