aboutsummaryrefslogtreecommitdiff
path: root/ParrotZik.py
diff options
context:
space:
mode:
Diffstat (limited to 'ParrotZik.py')
-rw-r--r--ParrotZik.py222
1 files changed, 0 insertions, 222 deletions
diff --git a/ParrotZik.py b/ParrotZik.py
deleted file mode 100644
index 52414b5..0000000
--- a/ParrotZik.py
+++ /dev/null
@@ -1,222 +0,0 @@
-from resource_manager import Version1ResourceManager
-from resource_manager import Version2ResourceManager
-
-
-class BatteryStates:
- CHARGED = 'charged'
- IN_USE = 'in_use'
- CHARGING = 'charging'
- representation = {
- CHARGED: 'Charged',
- IN_USE: 'In Use',
- CHARGING: 'Charging',
- }
-
-class Rooms:
- CONCERT_HALL = 'concert'
- JAZZ_CLUB = 'jazz'
- LIVING_ROOM = 'living'
- SILENT_ROOM = 'silent'
- representation = {
- CONCERT_HALL: 'Concert Hall',
- JAZZ_CLUB: 'Jazz Club',
- LIVING_ROOM: 'Living Room',
- SILENT_ROOM: 'Silent Room',
- }
-
-class NoiseControl(object):
- def __init__(self, type, value):
- self.type = type
- self.value = value
-
- @classmethod
- def from_noise_control(cls, noise_control):
- return cls(noise_control['type'], int(noise_control['value']))
-
- def __eq__(self, other):
- return self.type == other.type and self.value == other.value
-
- def __str__(self):
- return '{}++{}'.format(self.type, self.value)
-
-class NoiseControlTypes:
- NOISE_CONTROL_MAX = NoiseControl('anc', 2)
- NOISE_CONTROL_ON = NoiseControl('anc', 1)
- NOISE_CONTROL_OFF = NoiseControl('off', 1)
- STREET_MODE = NoiseControl('aoc', 1)
- STREET_MODE_MAX = NoiseControl('aoc', 2)
-
-
-class ParrotZikBase(object):
- def __init__(self, resource_manager):
- self.resource_manager = resource_manager
-
- @property
- def version(self):
- return self.resource_manager.api_version
-
- def refresh_battery(self):
- self.resource_manager.fetch('/api/system/battery')
-
- @property
- def battery_state(self):
- answer = self.resource_manager.get("/api/system/battery")
- return answer.system.battery["state"]
-
- def get_battery_level(self, field_name):
- answer = self.resource_manager.get("/api/system/battery")
- return int(answer.system.battery[field_name])
-
- @property
- def friendly_name(self):
- answer = self.resource_manager.get("/api/bluetooth/friendlyname")
- return answer.bluetooth["friendlyname"]
-
- @property
- def auto_connect(self):
- answer = self.resource_manager.get("/api/system/auto_connection/enabled")
- return self._result_to_bool(
- answer.system.auto_connection["enabled"])
-
- @auto_connect.setter
- def auto_connect(self, arg):
- self.resource_manager.set("/api/system/auto_connection/enabled", arg)
-
- @property
- def anc_phone_mode(self):
- answer = self.resource_manager.get("/api/system/anc_phone_mode/enabled")
- return self._result_to_bool(
- answer.system.anc_phone_mode["enabled"])
-
- def _result_to_bool(self, result):
- if result == "true":
- return True
- elif result == "false":
- return False
- else:
- raise AssertionError(result)
-
-
-class ParrotZikVersion1(ParrotZikBase):
- def __init__(self, resource_manager):
- super(ParrotZikVersion1, self).__init__(
- resource_manager.get_resource_manager(
- Version1ResourceManager))
-
- @property
- def version(self):
- answer = self.resource_manager.get('/api/software/version')
- return answer.software['version']
-
- @property
- def battery_level(self):
- return int(self.get_battery_level('level'))
-
- @property
- def lou_reed_mode(self):
- answer = self.resource_manager.get("/api/audio/specific_mode/enabled")
- return self._result_to_bool(
- answer.audio.specific_mode["enabled"])
-
- @lou_reed_mode.setter
- def lou_reed_mode(self, arg):
- self.resource_manager.get("/api/audio/specific_mode/enabled", arg)
-
- @property
- def concert_hall(self):
- answer = self.resource_manager.get("/api/audio/sound_effect/enabled")
- return self._result_to_bool(
- answer.audio.sound_effect["enabled"])
-
- @concert_hall.setter
- def concert_hall(self, arg):
- self.resource_manager.get("/api/audio/sound_effect/enabled", arg)
-
- @property
- def cancel_noise(self):
- answer = self.resource_manager.get("/api/audio/noise_cancellation/enabled")
- return self._result_to_bool(
- answer.audio.noise_cancellation["enabled"])
-
- @cancel_noise.setter
- def cancel_noise(self, arg):
- self.resource_manager.set("/api/audio/noise_cancellation/enabled", arg)
-
-
-class ParrotZikVersion2(ParrotZikBase):
- def __init__(self, resource_manager):
- super(ParrotZikVersion2, self).__init__(
- resource_manager.get_resource_manager(
- Version2ResourceManager))
-
- @property
- def version(self):
- answer = self.resource_manager.get('/api/software/version')
- return answer.software['sip6']
-
- @property
- def battery_level(self):
- return self.get_battery_level('percent')
-
- @property
- def flight_mode(self):
- answer = self.resource_manager.get('/api/flight_mode')
- return self._result_to_bool(answer.flight_mode['enabled'])
-
- @flight_mode.setter
- def flight_mode(self, arg):
- if arg:
- self.resource_manager.toggle_on('/api/flight_mode')
- else:
- self.resource_manager.toggle_off('/api/flight_mode')
-
- @property
- def sound_effect(self):
- answer = self.resource_manager.get('/api/audio/sound_effect/enabled')
- return self._result_to_bool(answer.audio.sound_effect['enabled'])
-
- @sound_effect.setter
- def sound_effect(self, arg):
- self.resource_manager.set('/api/audio/sound_effect/enabled', arg)
-
- @property
- def room(self):
- answer = self.resource_manager.get('/api/audio/sound_effect/room_size')
- return answer.audio.sound_effect['room_size']
-
- @room.setter
- def room(self, arg):
- self.resource_manager.set('/api/audio/sound_effect/room_size', arg)
-
- @property
- def external_noise(self):
- answer = self.resource_manager.get('/api/audio/noise')
- return int(answer.audio.noise['external'])
-
- @property
- def internal_noise(self):
- answer = self.resource_manager.get('/api/audio/noise')
- return int(answer.audio.noise['internal'])
-
- @property
- def angle(self):
- answer = self.resource_manager.get('/api/audio/sound_effect/angle')
- return int(answer.audio.sound_effect['angle'])
-
- @angle.setter
- def angle(self, arg):
- self.resource_manager.set('/api/audio/sound_effect/angle', arg)
-
- @property
- def noise_control(self):
- answer = self.resource_manager.get('/api/audio/noise_control')
- return NoiseControl.from_noise_control(answer.audio.noise_control)
-
- @noise_control.setter
- def noise_control(self, arg):
- pass
-
- @property
- def noise_control_enabled(self):
- answer = self.resource_manager.get('/api/audio/noise_control/enabled')
- return self._result_to_bool(answer.audio.noise_control['enabled'])