4 """A Base for printing signals on the bus"""
6 def __init__(self
, bus
):
11 self
.bus
.add_signal_receiver(self
.abbr_h
,
13 interface_keyword
="interface",
14 member_keyword
="member")
16 def ignore(self
, dbus_interface
, signal_name
):
17 self
.watch(self
.null_h
, dbus_interface
, signal_name
)
19 def null_h(self
, *args
, **kwargs
):
22 def watch(self
, handler
, dbus_interface
, signal_name
):
23 self
.specific
[dbus_interface
+"."+ signal_name
] = True
24 self
.bus
.add_signal_receiver(handler
,
25 dbus_interface
=dbus_interface
,
26 signal_name
=signal_name
,
29 def abbr_h(self
, *args
, **kwargs
):
30 ifc
= kwargs
["interface"]
31 sig
= kwargs
["member"]
32 if self
.specific
.has_key(ifc
+"."+ sig
):
35 opath
= kwargs
["path"]
36 line
= "SIG %s: %s.%s%s" % (self
.abbrev(opath
,"/"),
41 def abbrev(self
, s
, sep
):
43 words
= map (self
.a1
, words
)
44 result
= sep
.join(words
)
45 if self
.amap
.has_key(result
):
46 if self
.amap
[result
] != s
:
47 print "ABBR COLLISION %s was %s now %s" % (result
, self
.amap
[result
], s
)
49 print "ABBR %s is %s" % (result
, s
)
57 # first char, delete lowercase and _ from the rest
58 return s
[0] + s
[1:].translate(string
.maketrans("", ""),
59 string
.lowercase
+ "_")