コード例 #1
0
ファイル: KillSwitch.py プロジェクト: posophe/blueman
 def hal_name_owner_changed(self, owner):
     for dev in self.devices:
         self.emit("switch-removed", dev)
     self.devices = []
     if owner != "":
         self.Hal = HalManager()
         self.__enumerate()
     else:
         self.Hal = None
コード例 #2
0
ファイル: Hal.py プロジェクト: Acidburn0zzz/blueman
	def HalRegisterNetDev(self, devicename):
		from blueman.main.HalManager import HalManager
		self.timer.reset()
		halmgr = HalManager()
		halmgr.register_netdev(devicename)
コード例 #3
0
ファイル: Hal.py プロジェクト: Acidburn0zzz/blueman
	def HalUnregisterModemPortDev(self, rfcomm_device):
		from blueman.main.HalManager import HalManager
		self.timer.reset()
		halmgr = HalManager()
		dprint("** Unregistering modem")
		halmgr.unregister_dev(rfcomm_device)
コード例 #4
0
ファイル: Hal.py プロジェクト: Acidburn0zzz/blueman
	def HalUnregisterModemPortAddr(self, address):
		from blueman.main.HalManager import HalManager
		self.timer.reset()
		halmgr = HalManager()
		dprint("** Unregistering modem")
		halmgr.unregister_addr(address)
コード例 #5
0
ファイル: Hal.py プロジェクト: Acidburn0zzz/blueman
	def HalRegisterModemPort(self, rfcomm_device, bd_addr, ok, err):
		from blueman.main.HalManager import HalManager
		self.timer.reset()
		halmgr = HalManager()
		dprint("** Registering modem")
		halmgr.register(rfcomm_device, bd_addr, ok, err)
コード例 #6
0
ファイル: KillSwitch.py プロジェクト: posophe/blueman
class Manager(GObject.GObject):
    __inst = None
    __gsignals__ = {
        'switch-changed':
        (GObject.SignalFlags.NO_HOOKS, None, (GObject.TYPE_PYOBJECT, )),
        'switch-added':
        (GObject.SignalFlags.NO_HOOKS, None, (GObject.TYPE_PYOBJECT, )),
        'switch-removed':
        (GObject.SignalFlags.NO_HOOKS, None, (GObject.TYPE_PYOBJECT, )),
    }

    def __new__(cls):
        if not Manager.__inst:
            return super(Manager, cls).__new__(cls)

        return Manager.__inst

    def __init__(self):
        if not Manager.__inst:
            GObject.GObject.__init__(self)
            Manager.__inst = self
            self.devices = []
            self.state = True
            self.HardBlocked = False
            dbus.SystemBus().watch_name_owner("org.freedesktop.Hal",
                                              self.hal_name_owner_changed)

    def hal_name_owner_changed(self, owner):
        for dev in self.devices:
            self.emit("switch-removed", dev)
        self.devices = []
        if owner != "":
            self.Hal = HalManager()
            self.__enumerate()
        else:
            self.Hal = None

    def __enumerate(self):
        self.state = True

        devs = self.Hal.FindDeviceByCapability("killswitch")
        for dev in devs:
            try:
                sw = KillSwitch(dev)
                self.devices.append(sw)
                self.state &= sw.GetPower()
                self.emit("switch-added", sw)
            except WrongType:
                pass

    def SetGlobalState(self, state, **kwargs):
        dprint("Setting killswitches to", state)

        for dev in self.devices:
            print("Setting", dev.udi, "to", state)
            dev.SetPower(state)
        if len(self.devices) == 0:
            self.state = True
        else:
            self.state = state

        if "reply_handler" in kwargs:
            kwargs["reply_handler"]()

    def GetGlobalState(self):
        try:
            self.state &= self.devices[0]
        except:
            return self.state
        else:
            return self.state