aboutsummaryrefslogtreecommitdiff
path: root/parrot_zik/model/version2.py
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--parrot_zik/model/version2.py (renamed from parrot_zik/parrot_zik_model.py)182
1 files changed, 39 insertions, 143 deletions
diff --git a/parrot_zik/parrot_zik_model.py b/parrot_zik/model/version2.py
index e6a8bc7..9ef6267 100644
--- a/parrot_zik/parrot_zik_model.py
+++ b/parrot_zik/model/version2.py
@@ -1,146 +1,5 @@
-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)
+from .base import ParrotZikBase
+from ..resource_manager import Version2ResourceManager
class ParrotZikVersion2(ParrotZikBase):
@@ -220,3 +79,40 @@ class ParrotZikVersion2(ParrotZikBase):
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'])
+
+
+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 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',
+ } \ No newline at end of file