51
32
from blueman.main.PluginManager import PersistentPluginManager
53
35
class BluemanApplet(object):
57
if not pynotify.init("Blueman"):
58
dprint("Error: Failed to init pynotify")
60
check_single_instance("blueman-applet")
64
self.DbusSvc = DbusService("org.blueman.Applet", "/")
65
self.Signals = SignalTracker()
67
self.Plugins = PersistentPluginManager(AppletPlugin, blueman.plugins.applet, self)
70
self.Plugins.Run("on_plugins_loaded")
73
self.bus = dbus.SystemBus()
74
self.bus.watch_name_owner("org.bluez", self.on_dbus_name_owner_change)
76
self.bus.add_signal_receiver(self.on_adapter_property_changed, "PropertyChanged", "org.bluez.Adapter", "org.bluez", path_keyword="path")
82
def manager_init(self):
85
self.Signals.DisconnectAll()
86
self.Manager = Bluez.Manager("gobject")
87
self.Plugins.Run("on_manager_state_changed", True)
89
self.Signals.Handle("bluez", self.Manager, self.on_adapter_removed, "AdapterRemoved")
90
self.Signals.Handle("bluez", self.Manager, self.on_adapter_added, "AdapterAdded")
92
except dbus.exceptions.DBusException, e:
95
dprint("Bluez DBus API not available. Listening for DBus name ownership changes")
97
def manager_deinit(self):
98
self.Signals.DisconnectAll()
100
self.Plugins.Run("on_manager_state_changed", False)
102
def on_dbus_name_owner_change(self, owner):
103
dprint("org.bluez owner changed to", owner)
105
self.manager_deinit()
106
elif self.Manager == None:
109
def on_adapter_property_changed(self, key, value, path):
110
self.Plugins.Run("on_adapter_property_changed", path, key, value)
112
def on_adapter_added(self, path):
113
dprint("Adapter added ", path)
115
dprint("Adapter activated")
116
self.Plugins.Run("on_adapter_added", path)
118
adapter = Bluez.Adapter(path)
119
wait_for_adapter(adapter, on_activate)
121
def on_adapter_removed(self, path):
122
dprint("Adapter removed ", path)
123
self.Plugins.Run("on_adapter_removed", path)
38
if not pynotify.init("Blueman"):
39
dprint("Error: Failed to init pynotify")
41
check_single_instance("blueman-applet")
44
self.DbusSvc = DbusService("org.blueman.Applet", "/")
45
self.Signals = SignalTracker()
47
self.Plugins = PersistentPluginManager(AppletPlugin, blueman.plugins.applet, self)
50
self.Plugins.Run("on_plugins_loaded")
52
self.bus = dbus.SystemBus()
53
self.bus.watch_name_owner("org.bluez", self.on_dbus_name_owner_change)
55
self.bus.add_signal_receiver(self.on_adapter_property_changed, "PropertyChanged", "org.bluez.Adapter",
56
"org.bluez", path_keyword="path")
61
def manager_init(self):
64
self.Signals.DisconnectAll()
65
self.Manager = Bluez.Manager("gobject")
66
self.Plugins.Run("on_manager_state_changed", True)
68
self.Signals.Handle("bluez", self.Manager, self.on_adapter_removed, "AdapterRemoved")
69
self.Signals.Handle("bluez", self.Manager, self.on_adapter_added, "AdapterAdded")
71
except dbus.exceptions.DBusException as e:
74
dprint("Bluez DBus API not available. Listening for DBus name ownership changes")
76
def manager_deinit(self):
77
self.Signals.DisconnectAll()
79
self.Plugins.Run("on_manager_state_changed", False)
81
def on_dbus_name_owner_change(self, owner):
82
dprint("org.bluez owner changed to", owner)
85
elif self.Manager is None:
88
def on_adapter_property_changed(self, key, value, path):
89
self.Plugins.Run("on_adapter_property_changed", path, key, value)
91
def on_adapter_added(self, path):
92
dprint("Adapter added ", path)
95
dprint("Adapter activated")
96
self.Plugins.Run("on_adapter_added", path)
98
adapter = Bluez.Adapter(path)
99
wait_for_adapter(adapter, on_activate)
101
def on_adapter_removed(self, path):
102
dprint("Adapter removed ", path)
103
self.Plugins.Run("on_adapter_removed", path)