10ea975c85c8e809d082f6833ced0f5e1fbe067dcJohan Hedberg#!/usr/bin/python
20ea975c85c8e809d082f6833ced0f5e1fbe067dcJohan Hedberg
30ea975c85c8e809d082f6833ced0f5e1fbe067dcJohan Hedbergimport sys
40ea975c85c8e809d082f6833ced0f5e1fbe067dcJohan Hedbergimport dbus
5a90f0dfe8c079aab982ae2e67a05a7938c780d9dJohan Hedbergfrom optparse import OptionParser, make_option
60ea975c85c8e809d082f6833ced0f5e1fbe067dcJohan Hedberg
70ea975c85c8e809d082f6833ced0f5e1fbe067dcJohan Hedbergbus = dbus.SystemBus()
80ea975c85c8e809d082f6833ced0f5e1fbe067dcJohan Hedberg
90ea975c85c8e809d082f6833ced0f5e1fbe067dcJohan Hedbergmanager = dbus.Interface(bus.get_object("org.bluez", "/"), "org.bluez.Manager")
100ea975c85c8e809d082f6833ced0f5e1fbe067dcJohan Hedberg
11a90f0dfe8c079aab982ae2e67a05a7938c780d9dJohan Hedbergoption_list = [
12a90f0dfe8c079aab982ae2e67a05a7938c780d9dJohan Hedberg		make_option("-i", "--device", action="store",
13a90f0dfe8c079aab982ae2e67a05a7938c780d9dJohan Hedberg				type="string", dest="dev_id"),
14a90f0dfe8c079aab982ae2e67a05a7938c780d9dJohan Hedberg		]
15a90f0dfe8c079aab982ae2e67a05a7938c780d9dJohan Hedbergparser = OptionParser(option_list=option_list)
16a90f0dfe8c079aab982ae2e67a05a7938c780d9dJohan Hedberg
17a90f0dfe8c079aab982ae2e67a05a7938c780d9dJohan Hedberg(options, args) = parser.parse_args()
18a90f0dfe8c079aab982ae2e67a05a7938c780d9dJohan Hedberg
19a90f0dfe8c079aab982ae2e67a05a7938c780d9dJohan Hedbergif options.dev_id:
20a90f0dfe8c079aab982ae2e67a05a7938c780d9dJohan Hedberg	adapter_path = manager.FindAdapter(options.dev_id)
21a90f0dfe8c079aab982ae2e67a05a7938c780d9dJohan Hedbergelse:
22a90f0dfe8c079aab982ae2e67a05a7938c780d9dJohan Hedberg	adapter_path = manager.DefaultAdapter()
23a90f0dfe8c079aab982ae2e67a05a7938c780d9dJohan Hedberg
24a90f0dfe8c079aab982ae2e67a05a7938c780d9dJohan Hedbergadapter = dbus.Interface(bus.get_object("org.bluez", adapter_path),
25a90f0dfe8c079aab982ae2e67a05a7938c780d9dJohan Hedberg							"org.bluez.Adapter")
26a90f0dfe8c079aab982ae2e67a05a7938c780d9dJohan Hedberg
27a90f0dfe8c079aab982ae2e67a05a7938c780d9dJohan Hedbergif len(args) < 2:
280ea975c85c8e809d082f6833ced0f5e1fbe067dcJohan Hedberg	print """Usage: %s <command>
290ea975c85c8e809d082f6833ced0f5e1fbe067dcJohan Hedberg
300ea975c85c8e809d082f6833ced0f5e1fbe067dcJohan Hedberg	connect <bdaddr>
310ea975c85c8e809d082f6833ced0f5e1fbe067dcJohan Hedberg	disconnect <bdaddr>
320ea975c85c8e809d082f6833ced0f5e1fbe067dcJohan Hedberg	""" % sys.argv[0]
330ea975c85c8e809d082f6833ced0f5e1fbe067dcJohan Hedberg	sys.exit(1)
340ea975c85c8e809d082f6833ced0f5e1fbe067dcJohan Hedberg
35a90f0dfe8c079aab982ae2e67a05a7938c780d9dJohan Hedbergdevice = adapter.FindDevice(args[1])
360ea975c85c8e809d082f6833ced0f5e1fbe067dcJohan Hedbergaudio = dbus.Interface(bus.get_object("org.bluez", device),
370ea975c85c8e809d082f6833ced0f5e1fbe067dcJohan Hedberg				"org.bluez.Audio")
380ea975c85c8e809d082f6833ced0f5e1fbe067dcJohan Hedberg
39a90f0dfe8c079aab982ae2e67a05a7938c780d9dJohan Hedbergif args[0] == "connect":
400ea975c85c8e809d082f6833ced0f5e1fbe067dcJohan Hedberg	audio.Connect()
41a90f0dfe8c079aab982ae2e67a05a7938c780d9dJohan Hedbergelif args[0] == "disconnect":
420ea975c85c8e809d082f6833ced0f5e1fbe067dcJohan Hedberg	audio.Disconnect()
430ea975c85c8e809d082f6833ced0f5e1fbe067dcJohan Hedbergelse:
440ea975c85c8e809d082f6833ced0f5e1fbe067dcJohan Hedberg	print "Unknown command"
450ea975c85c8e809d082f6833ced0f5e1fbe067dcJohan Hedberg	sys.exit(1)
46