diff options
Diffstat (limited to '')
-rw-r--r-- | parrot_zik/interface/base.py | 93 |
1 files changed, 33 insertions, 60 deletions
diff --git a/parrot_zik/interface/base.py b/parrot_zik/interface/base.py index 90caa02..75f368c 100644 --- a/parrot_zik/interface/base.py +++ b/parrot_zik/interface/base.py @@ -1,45 +1,21 @@ from parrot_zik import resource_manager -from parrot_zik.indicator import Menu -from parrot_zik.indicator import MenuItem from parrot_zik.model.base import BatteryStates -RECONNECT_FREQUENCY = 5000 +RECONNECT_FREQUENCY = 5 class ParrotZikBaseInterface(object): def __init__(self, indicator): self.indicator = indicator self.parrot = None - self.battery_level = MenuItem("Battery Level:", None, sensitive=False, - visible=False) - self.battery_state = MenuItem("Battery State:", None, sensitive=False, - visible=False) - self.firmware_version = MenuItem("Firmware Version:", None, - sensitive=False, visible=False) - self.settings = MenuItem("Settings", None, visible=False) - self.settings_submenu = Menu() - self.settings.set_submenu(self.settings_submenu) - - self.auto_connection = MenuItem("Auto Connection", self.toggle_auto_connection, - checkitem=True) - self.settings_submenu.append(self.auto_connection) - - self.indicator.menu.append(self.battery_level) - self.indicator.menu.append(self.battery_state) - self.indicator.menu.append(self.firmware_version) - self.indicator.menu.append(self.settings) + self.battery_level = "" + self.battery_state = "" def activate(self, manager): self.parrot = self.parrot_class(manager) - self.read_battery() - self.indicator.info("Connected to: " + self.parrot.friendly_name) - self.firmware_version.set_label( - "Firmware version: " + self.parrot.version) - self.auto_connection.set_active(self.parrot.auto_connect) - self.battery_level.show() - self.battery_state.show() - self.firmware_version.show() - self.settings.show() + self.indicator.info({"info": "Connected to: " + self.parrot.friendly_name}) + self.firmware_version = self.parrot.version + self.auto_connection = self.parrot.auto_connect self.indicator.active_interface = self @property @@ -48,48 +24,45 @@ class ParrotZikBaseInterface(object): def deactivate(self): self.parrot = None - self.battery_level.hide() - self.battery_state.hide() - self.firmware_version.hide() - self.settings.hide() - self.indicator.menu.reposition() + self.battery_level = "" + self.battery_mode = "" + self.firmware_version = "" self.indicator.active_interface = None - self.indicator.setIcon("zik-audio-headset") - self.indicator.info('Lost Connection') - self.indicator.reconnect.start(self.indicator, RECONNECT_FREQUENCY) + self.indicator.info({"error": "Lost Connection"}) + self.indicator.reconnect(RECONNECT_FREQUENCY) - def toggle_auto_connection(self, widget): + def read_auto_connection(self): + """ + Return auto connection status. + """ try: - self.parrot.auto_connect = self.auto_connection.get_active() - self.auto_connection.set_active(self.parrot.auto_connect) + data = {"data": {"auto_connection": self.parrot.auto_connect}} + self.indicator.info(data) + return data except resource_manager.DeviceDisconnected: self.deactivate() - def refresh(self): - self.read_battery() + def toggle_auto_connection(self, auto_connection): + """ + Set auto connection mode. Must be 'true' or 'false'. + """ + try: + self.parrot.auto_connect = auto_connection + return self.read_auto_connection() + except resource_manager.DeviceDisconnected: + self.deactivate() def read_battery(self): + """ + Return battery level and battery state + """ try: self.parrot.refresh_battery() battery_level = self.parrot.battery_level battery_state = self.parrot.battery_state + except AssertionError as e: + print(e) except resource_manager.DeviceDisconnected: self.deactivate() else: - if battery_state == BatteryStates.CHARGING: - self.indicator.setIcon("zik-battery-charging") - elif battery_level > 80: - self.indicator.setIcon("zik-battery-100") - elif battery_level > 60: - self.indicator.setIcon("zik-battery-080") - elif battery_level > 40: - self.indicator.setIcon("zik-battery-060") - elif battery_level > 20: - self.indicator.setIcon("zik-battery-040") - else: - self.indicator.setIcon("zik-battery-low") - - self.battery_state.set_label( - "State: " + BatteryStates.representation[battery_state]) - self.battery_level.set_label( - "Battery Level: " + str(battery_level)) + return {"data": {"state": BatteryStates.representation[battery_state], "level": battery_level}} |