1c7fb4dfb53722be7342e497fcf04e191f6fbc49
[platform/upstream/neard.git] / test / ndef-agent
1 #!/usr/bin/python
2
3 import gobject
4
5 import dbus
6 import dbus.service
7 import dbus.mainloop.glib
8 import sys
9
10 class NDEFAgent(dbus.service.Object):
11
12         @dbus.service.method("org.neard.NDEFAgent",
13                                         in_signature='', out_signature='')
14         def Release(self):
15                 print "Release"
16                 mainloop.quit()
17
18         @dbus.service.method("org.neard.NDEFAgent",
19                                         in_signature='a{sv}',
20                                         out_signature='')
21         def GetNDEF(self, fields):
22                 print "GetNDEF %s"
23
24                 if fields.has_key("Records"):
25                         for path in fields["Records"]:
26                                 print "Record path %s" % (path)
27
28                 if fields.has_key("NDEF"):
29                         val = "["
30                         for i in fields["NDEF"]:
31                                 val += " 0x%x" % i
32                         val += " ]"
33                         print "NDEF %s" % val
34
35                 return
36
37         @dbus.service.method("org.neard.NDEFAgent",
38                                         in_signature='', out_signature='')
39         def Cancel(self):
40                 print "Cancel"
41
42 def print_usage():
43         print "Usage:"
44         print "For NDEF agent:"
45         print "%s NDEF Type=<record type>" % (sys.argv[0])
46         print "Help: %s help" % (sys.argv[0])
47         sys.exit(1)
48
49 if __name__ == '__main__':
50         if len(sys.argv) == 2 and sys.argv[1] == "help":
51                 print_usage()
52
53         dbus.mainloop.glib.DBusGMainLoop(set_as_default=True)
54
55         bus = dbus.SystemBus()
56         manager = dbus.Interface(bus.get_object('org.neard', "/"),
57                                         'org.neard.Manager')
58
59         if len(sys.argv) > 2:   
60                 if sys.argv[1] == "NDEF":
61                         path = "/test/ndef/agent"
62                         object = NDEFAgent(bus, path)
63                         rec_type = sys.argv[2].replace("Type=", "", 1)                  
64
65                         manager.RegisterNDEFAgent(path, rec_type)
66
67                         mainloop = gobject.MainLoop()
68                         mainloop.run()