~cyphermox/+junk/bluez-debug

« back to all changes in this revision

Viewing changes to .pc/python3.patch/test/simple-agent

  • Committer: Package Import Robot
  • Author(s): Robert Ancell
  • Date: 2012-07-04 13:28:49 UTC
  • mfrom: (1.1.38)
  • Revision ID: package-import@ubuntu.com-20120704132849-tmwu1x7p2vxcclt1
Tags: 4.101-0ubuntu1
* New upstream release
* debian/libbluetooth3.symbols:
  - Updated
* debian/patches/10-unregister_interface_on_exit.patch:
* debian/patches/11-explicitly_close.patch:
* debian/patches/python3.patch:
  - Applied upstream

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
#!/usr/bin/python
2
 
 
3
 
import gobject
4
 
 
5
 
import sys
6
 
import dbus
7
 
import dbus.service
8
 
import dbus.mainloop.glib
9
 
from optparse import OptionParser
10
 
 
11
 
class Rejected(dbus.DBusException):
12
 
        _dbus_error_name = "org.bluez.Error.Rejected"
13
 
 
14
 
class Agent(dbus.service.Object):
15
 
        exit_on_release = True
16
 
 
17
 
        def set_exit_on_release(self, exit_on_release):
18
 
                self.exit_on_release = exit_on_release
19
 
 
20
 
        @dbus.service.method("org.bluez.Agent",
21
 
                                        in_signature="", out_signature="")
22
 
        def Release(self):
23
 
                print "Release"
24
 
                if self.exit_on_release:
25
 
                        mainloop.quit()
26
 
 
27
 
        @dbus.service.method("org.bluez.Agent",
28
 
                                        in_signature="os", out_signature="")
29
 
        def Authorize(self, device, uuid):
30
 
                print "Authorize (%s, %s)" % (device, uuid)
31
 
                authorize = raw_input("Authorize connection (yes/no): ")
32
 
                if (authorize == "yes"):
33
 
                        return
34
 
                raise Rejected("Connection rejected by user")
35
 
 
36
 
        @dbus.service.method("org.bluez.Agent",
37
 
                                        in_signature="o", out_signature="s")
38
 
        def RequestPinCode(self, device):
39
 
                print "RequestPinCode (%s)" % (device)
40
 
                return raw_input("Enter PIN Code: ")
41
 
 
42
 
        @dbus.service.method("org.bluez.Agent",
43
 
                                        in_signature="o", out_signature="u")
44
 
        def RequestPasskey(self, device):
45
 
                print "RequestPasskey (%s)" % (device)
46
 
                passkey = raw_input("Enter passkey: ")
47
 
                return dbus.UInt32(passkey)
48
 
 
49
 
        @dbus.service.method("org.bluez.Agent",
50
 
                                        in_signature="ou", out_signature="")
51
 
        def DisplayPasskey(self, device, passkey):
52
 
                print "DisplayPasskey (%s, %06d)" % (device, passkey)
53
 
 
54
 
        @dbus.service.method("org.bluez.Agent",
55
 
                                        in_signature="ou", out_signature="")
56
 
        def RequestConfirmation(self, device, passkey):
57
 
                print "RequestConfirmation (%s, %06d)" % (device, passkey)
58
 
                confirm = raw_input("Confirm passkey (yes/no): ")
59
 
                if (confirm == "yes"):
60
 
                        return
61
 
                raise Rejected("Passkey doesn't match")
62
 
 
63
 
        @dbus.service.method("org.bluez.Agent",
64
 
                                        in_signature="s", out_signature="")
65
 
        def ConfirmModeChange(self, mode):
66
 
                print "ConfirmModeChange (%s)" % (mode)
67
 
                authorize = raw_input("Authorize mode change (yes/no): ")
68
 
                if (authorize == "yes"):
69
 
                        return
70
 
                raise Rejected("Mode change by user")
71
 
 
72
 
        @dbus.service.method("org.bluez.Agent",
73
 
                                        in_signature="", out_signature="")
74
 
        def Cancel(self):
75
 
                print "Cancel"
76
 
 
77
 
def create_device_reply(device):
78
 
        print "New device (%s)" % (device)
79
 
        mainloop.quit()
80
 
 
81
 
def create_device_error(error):
82
 
        print "Creating device failed: %s" % (error)
83
 
        mainloop.quit()
84
 
 
85
 
if __name__ == '__main__':
86
 
        dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
87
 
 
88
 
        bus = dbus.SystemBus()
89
 
        manager = dbus.Interface(bus.get_object("org.bluez", "/"),
90
 
                                                        "org.bluez.Manager")
91
 
 
92
 
        capability = "KeyboardDisplay"
93
 
 
94
 
        parser = OptionParser()
95
 
        parser.add_option("-c", "--capability", action="store",
96
 
                                        type="string", dest="capability")
97
 
        (options, args) = parser.parse_args()
98
 
        if options.capability:
99
 
                capability  = options.capability
100
 
 
101
 
        if len(args) > 0:
102
 
                path = manager.FindAdapter(args[0])
103
 
        else:
104
 
                path = manager.DefaultAdapter()
105
 
 
106
 
        adapter = dbus.Interface(bus.get_object("org.bluez", path),
107
 
                                                        "org.bluez.Adapter")
108
 
 
109
 
        path = "/test/agent"
110
 
        agent = Agent(bus, path)
111
 
 
112
 
        mainloop = gobject.MainLoop()
113
 
 
114
 
        if len(args) > 1:
115
 
                if len(args) > 2:
116
 
                        device = adapter.FindDevice(args[1])
117
 
                        adapter.RemoveDevice(device)
118
 
 
119
 
                agent.set_exit_on_release(False)
120
 
                adapter.CreatePairedDevice(args[1], path, capability,
121
 
                                        reply_handler=create_device_reply,
122
 
                                        error_handler=create_device_error)
123
 
        else:
124
 
                adapter.RegisterAgent(path, capability)
125
 
                print "Agent registered"
126
 
 
127
 
        mainloop.run()
128
 
 
129
 
        #adapter.UnregisterAgent(path)
130
 
        #print "Agent unregistered"