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