vsslctrl 0.1.10.dev1__tar.gz → 0.1.11.dev1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. {vsslctrl-0.1.10.dev1 → vsslctrl-0.1.11.dev1}/PKG-INFO +33 -18
  2. {vsslctrl-0.1.10.dev1 → vsslctrl-0.1.11.dev1}/README.md +32 -17
  3. {vsslctrl-0.1.10.dev1 → vsslctrl-0.1.11.dev1}/pyproject.toml +1 -1
  4. {vsslctrl-0.1.10.dev1 → vsslctrl-0.1.11.dev1}/tests/test_integration.py +119 -98
  5. {vsslctrl-0.1.10.dev1 → vsslctrl-0.1.11.dev1}/vsslctrl/__init__.py +1 -1
  6. {vsslctrl-0.1.10.dev1 → vsslctrl-0.1.11.dev1}/vsslctrl/api_alpha.py +355 -249
  7. {vsslctrl-0.1.10.dev1 → vsslctrl-0.1.11.dev1}/vsslctrl/data_structure.py +63 -18
  8. {vsslctrl-0.1.10.dev1 → vsslctrl-0.1.11.dev1}/vsslctrl/decorators.py +54 -0
  9. {vsslctrl-0.1.10.dev1 → vsslctrl-0.1.11.dev1}/vsslctrl/device.py +70 -15
  10. {vsslctrl-0.1.10.dev1 → vsslctrl-0.1.11.dev1}/vsslctrl/group.py +3 -4
  11. {vsslctrl-0.1.10.dev1 → vsslctrl-0.1.11.dev1}/vsslctrl/io.py +88 -23
  12. {vsslctrl-0.1.10.dev1 → vsslctrl-0.1.11.dev1}/vsslctrl/settings.py +36 -15
  13. {vsslctrl-0.1.10.dev1 → vsslctrl-0.1.11.dev1}/vsslctrl.egg-info/PKG-INFO +33 -18
  14. {vsslctrl-0.1.10.dev1 → vsslctrl-0.1.11.dev1}/LICENSE +0 -0
  15. {vsslctrl-0.1.10.dev1 → vsslctrl-0.1.11.dev1}/setup.cfg +0 -0
  16. {vsslctrl-0.1.10.dev1 → vsslctrl-0.1.11.dev1}/tests/test_event_bus.py +0 -0
  17. {vsslctrl-0.1.10.dev1 → vsslctrl-0.1.11.dev1}/tests/test_settings.py +0 -0
  18. {vsslctrl-0.1.10.dev1 → vsslctrl-0.1.11.dev1}/tests/test_zone.py +0 -0
  19. {vsslctrl-0.1.10.dev1 → vsslctrl-0.1.11.dev1}/vsslctrl/api_base.py +0 -0
  20. {vsslctrl-0.1.10.dev1 → vsslctrl-0.1.11.dev1}/vsslctrl/api_bravo.py +0 -0
  21. {vsslctrl-0.1.10.dev1 → vsslctrl-0.1.11.dev1}/vsslctrl/core.py +0 -0
  22. {vsslctrl-0.1.10.dev1 → vsslctrl-0.1.11.dev1}/vsslctrl/discovery.py +0 -0
  23. {vsslctrl-0.1.10.dev1 → vsslctrl-0.1.11.dev1}/vsslctrl/event_bus.py +0 -0
  24. {vsslctrl-0.1.10.dev1 → vsslctrl-0.1.11.dev1}/vsslctrl/exceptions.py +0 -0
  25. {vsslctrl-0.1.10.dev1 → vsslctrl-0.1.11.dev1}/vsslctrl/track.py +0 -0
  26. {vsslctrl-0.1.10.dev1 → vsslctrl-0.1.11.dev1}/vsslctrl/transport.py +0 -0
  27. {vsslctrl-0.1.10.dev1 → vsslctrl-0.1.11.dev1}/vsslctrl/utils.py +0 -0
  28. {vsslctrl-0.1.10.dev1 → vsslctrl-0.1.11.dev1}/vsslctrl/zone.py +0 -0
  29. {vsslctrl-0.1.10.dev1 → vsslctrl-0.1.11.dev1}/vsslctrl.egg-info/SOURCES.txt +0 -0
  30. {vsslctrl-0.1.10.dev1 → vsslctrl-0.1.11.dev1}/vsslctrl.egg-info/dependency_links.txt +0 -0
  31. {vsslctrl-0.1.10.dev1 → vsslctrl-0.1.11.dev1}/vsslctrl.egg-info/requires.txt +0 -0
  32. {vsslctrl-0.1.10.dev1 → vsslctrl-0.1.11.dev1}/vsslctrl.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: vsslctrl
3
- Version: 0.1.10.dev1
3
+ Version: 0.1.11.dev1
4
4
  Summary: Package for controlling VSSL's range of streaming amplifiers
5
5
  Author-email: vsslctrl <vsslcontrolled@proton.me>
6
6
  Classifier: Development Status :: 4 - Beta
@@ -30,10 +30,13 @@ Requires-Dist: zeroconf==0.132.2; extra == "optional"
30
30
  I am looking for testers with any VSSL amplifier models, please get in touch if you interested in helping. <vsslcontrolled@proton.me>
31
31
 
32
32
  Tested on:
33
- - **A.1** software version **p15265.033.3703** via Home Assistant [integration](https://github.com/vsslctrl/integration.home-assistant) (reported)
34
- - **A.3** software version **p12013.141.3703** via Home Assistant [integration](https://github.com/vsslctrl/integration.home-assistant) (reported)
35
33
  - **A.3x** software version **p15305.016.3701**
36
- - **A.6x** software version **p15305.017.3701** via Home Assistant [integration](https://github.com/vsslctrl/integration.home-assistant) (reported)
34
+
35
+ Home Assistant [integration](https://github.com/vsslctrl/integration.home-assistant) with basic functionality working on:
36
+ - **A.1** software version **p15265.033.3703** (reported)
37
+ - **A.3** software version **p12013.141.3703** (reported)
38
+ - **A.3x** software version **p15305.016.3701**
39
+ - **A.6x** software version **p15305.017.3701** (reported)
37
40
 
38
41
  ## Important
39
42
 
@@ -41,8 +44,9 @@ There should not be any *[VSSL Agent's](https://vssl.gitbook.io/vssl-rest-api/ge
41
44
 
42
45
  ## TODOs
43
46
 
44
- * **A.1(x)** specific control e.g bluetooth
47
+ * Correct IO mapping between models and versions
45
48
  * Better test coverage
49
+ * A.1(x) testing
46
50
 
47
51
  ## Basic Usage
48
52
 
@@ -160,19 +164,20 @@ vssl.factory_reset()
160
164
 
161
165
  ## `Vssl.settings`
162
166
 
163
- | Property | Description | Type |
164
- | ---------------------- | ----------- | ----------- |
165
- | `name` | Device name | `str`
166
- | `optical_input_name` | Name of the optical input | `str`
167
- | `bluetooth` | Bluetooth enabled / disabled | `bool`
167
+ | Property | Description | Type | Notes / Defaults |
168
+ | ---------------------- | ----------- | ----------- | ----------- |
169
+ | `name` | Device name | `str` |
170
+ | `bus_1_name` | Name of Bus 1 | `str` | <ul><li>A.1: Optical Input</li><li>A.3x/6x: Not Used</li></ul>
171
+ | `bus_2_name` | Name of Bus 2 | `str` | <ul><li>A.1: Coax Input</li><li>A.3x/6x: Optical Input</li></ul>
172
+ | `bluetooth` | Bluetooth enabled / disabled | `bool` |
168
173
  | `bluetooth_toggle()` | Toggle Bluetooth | `func` |
169
174
 
170
175
  ```python
171
176
  """Example"""
172
177
  # Setting device name
173
178
  vssl.settings.name = 'My House'
174
- # Setting optical input name
175
- vssl.settings.optical_input_name = 'Optical Input 1'
179
+ # Setting bus 2 name
180
+ vssl.settings.bus_2_name = 'Optical Input'
176
181
  # Enable Bluetooth
177
182
  vssl.settings.bluetooth = True
178
183
  # Toggle Bluetooth
@@ -283,15 +288,25 @@ zone1.transport.state = ZoneTransport.States.PAUSE
283
288
 
284
289
  | Property | Description | Type | Values |
285
290
  | ---------------------- | ----------- | ----------- |----------- |
286
- | `source` | Change input source | `int` | `InputRouter.Sources`
287
- | `priority` | Change input priority. Stream or analog in higher priority | `int` | `InputRouter.Priorities`
291
+ | `source` | Change input source.<br/>Source to be played out the zones speakers | `int` | `InputRouter.Sources`
292
+ | `priority` | Change input priority.<br/>Stream or local to have precedence | `int` | `InputRouter.Priorities`
293
+
294
+
295
+ ### A.1(x) Source Routing Order
296
+ A.1 and A.1x don't support manually changing the input source. Instead a fixed source routing order is used:
297
+
298
+ 1. Optical Input
299
+ 2. Coaxial Input
300
+ 3. Analog Input
301
+
302
+ Input `InputRouter.Priorities` still apply.
288
303
 
289
- ### Priority Order:
304
+ ### Input Priority / Precedence
290
305
 
291
306
  | `InputRouter.Priorities` | Priority Order |
292
307
  | ---------------------- | ----------- |
293
- | **`STREAM`** | <ol><li>Stream</li><li>Party Zone</li><li>Bus 1 In</li><li>Bus 2 In</li><li>Analog Input</li></ol>
294
- | **`LOCAL`** | <ol><li>Bus 1 In</li><li>Bus 2 In</li><li>Analog Input</li><li>Stream</li><li>Party Zone</li></ol>
308
+ | **`STREAM`** | <ol><li>Stream</li><li>Party Zone</li><li>Bus 1</li><li>Bus 2</li><li>Optical</li><li>Coaxial</li><li>Analog</li></ol>
309
+ | **`LOCAL`** | <ol><li>Bus 1</li><li>Bus 2</li><li>Optical</li><li>Coaxial</li><li>Analog</li><li>Stream</li><li>Party Zone</li></ol>
295
310
 
296
311
  ```python
297
312
  """Example"""
@@ -335,7 +350,7 @@ zone1.group.is_party_zone_member_toggle()
335
350
 
336
351
  | Property | Description | Type | Values | Default |
337
352
  | ---------------------- | ----------- | ----------- |----------- |----------- |
338
- | `source` | Where the AO is routed from. i.e a zone, optical input or off | `int` | `AnalogOutput.Sources` | `Off`
353
+ | `source` | Where the AO is routed from. i.e stream, optical input or off | `int` | `AnalogOutput.Sources` | `Off`
339
354
  | `is_fixed_volume` | Fix the output volume. Output wont respond to volume control | `bool` | |`False`
340
355
  | `is_fixed_volume_toggle()` | Toggle fixed volume | `func` |
341
356
 
@@ -9,10 +9,13 @@
9
9
  I am looking for testers with any VSSL amplifier models, please get in touch if you interested in helping. <vsslcontrolled@proton.me>
10
10
 
11
11
  Tested on:
12
- - **A.1** software version **p15265.033.3703** via Home Assistant [integration](https://github.com/vsslctrl/integration.home-assistant) (reported)
13
- - **A.3** software version **p12013.141.3703** via Home Assistant [integration](https://github.com/vsslctrl/integration.home-assistant) (reported)
14
12
  - **A.3x** software version **p15305.016.3701**
15
- - **A.6x** software version **p15305.017.3701** via Home Assistant [integration](https://github.com/vsslctrl/integration.home-assistant) (reported)
13
+
14
+ Home Assistant [integration](https://github.com/vsslctrl/integration.home-assistant) with basic functionality working on:
15
+ - **A.1** software version **p15265.033.3703** (reported)
16
+ - **A.3** software version **p12013.141.3703** (reported)
17
+ - **A.3x** software version **p15305.016.3701**
18
+ - **A.6x** software version **p15305.017.3701** (reported)
16
19
 
17
20
  ## Important
18
21
 
@@ -20,8 +23,9 @@ There should not be any *[VSSL Agent's](https://vssl.gitbook.io/vssl-rest-api/ge
20
23
 
21
24
  ## TODOs
22
25
 
23
- * **A.1(x)** specific control e.g bluetooth
26
+ * Correct IO mapping between models and versions
24
27
  * Better test coverage
28
+ * A.1(x) testing
25
29
 
26
30
  ## Basic Usage
27
31
 
@@ -139,19 +143,20 @@ vssl.factory_reset()
139
143
 
140
144
  ## `Vssl.settings`
141
145
 
142
- | Property | Description | Type |
143
- | ---------------------- | ----------- | ----------- |
144
- | `name` | Device name | `str`
145
- | `optical_input_name` | Name of the optical input | `str`
146
- | `bluetooth` | Bluetooth enabled / disabled | `bool`
146
+ | Property | Description | Type | Notes / Defaults |
147
+ | ---------------------- | ----------- | ----------- | ----------- |
148
+ | `name` | Device name | `str` |
149
+ | `bus_1_name` | Name of Bus 1 | `str` | <ul><li>A.1: Optical Input</li><li>A.3x/6x: Not Used</li></ul>
150
+ | `bus_2_name` | Name of Bus 2 | `str` | <ul><li>A.1: Coax Input</li><li>A.3x/6x: Optical Input</li></ul>
151
+ | `bluetooth` | Bluetooth enabled / disabled | `bool` |
147
152
  | `bluetooth_toggle()` | Toggle Bluetooth | `func` |
148
153
 
149
154
  ```python
150
155
  """Example"""
151
156
  # Setting device name
152
157
  vssl.settings.name = 'My House'
153
- # Setting optical input name
154
- vssl.settings.optical_input_name = 'Optical Input 1'
158
+ # Setting bus 2 name
159
+ vssl.settings.bus_2_name = 'Optical Input'
155
160
  # Enable Bluetooth
156
161
  vssl.settings.bluetooth = True
157
162
  # Toggle Bluetooth
@@ -262,15 +267,25 @@ zone1.transport.state = ZoneTransport.States.PAUSE
262
267
 
263
268
  | Property | Description | Type | Values |
264
269
  | ---------------------- | ----------- | ----------- |----------- |
265
- | `source` | Change input source | `int` | `InputRouter.Sources`
266
- | `priority` | Change input priority. Stream or analog in higher priority | `int` | `InputRouter.Priorities`
270
+ | `source` | Change input source.<br/>Source to be played out the zones speakers | `int` | `InputRouter.Sources`
271
+ | `priority` | Change input priority.<br/>Stream or local to have precedence | `int` | `InputRouter.Priorities`
272
+
273
+
274
+ ### A.1(x) Source Routing Order
275
+ A.1 and A.1x don't support manually changing the input source. Instead a fixed source routing order is used:
276
+
277
+ 1. Optical Input
278
+ 2. Coaxial Input
279
+ 3. Analog Input
280
+
281
+ Input `InputRouter.Priorities` still apply.
267
282
 
268
- ### Priority Order:
283
+ ### Input Priority / Precedence
269
284
 
270
285
  | `InputRouter.Priorities` | Priority Order |
271
286
  | ---------------------- | ----------- |
272
- | **`STREAM`** | <ol><li>Stream</li><li>Party Zone</li><li>Bus 1 In</li><li>Bus 2 In</li><li>Analog Input</li></ol>
273
- | **`LOCAL`** | <ol><li>Bus 1 In</li><li>Bus 2 In</li><li>Analog Input</li><li>Stream</li><li>Party Zone</li></ol>
287
+ | **`STREAM`** | <ol><li>Stream</li><li>Party Zone</li><li>Bus 1</li><li>Bus 2</li><li>Optical</li><li>Coaxial</li><li>Analog</li></ol>
288
+ | **`LOCAL`** | <ol><li>Bus 1</li><li>Bus 2</li><li>Optical</li><li>Coaxial</li><li>Analog</li><li>Stream</li><li>Party Zone</li></ol>
274
289
 
275
290
  ```python
276
291
  """Example"""
@@ -314,7 +329,7 @@ zone1.group.is_party_zone_member_toggle()
314
329
 
315
330
  | Property | Description | Type | Values | Default |
316
331
  | ---------------------- | ----------- | ----------- |----------- |----------- |
317
- | `source` | Where the AO is routed from. i.e a zone, optical input or off | `int` | `AnalogOutput.Sources` | `Off`
332
+ | `source` | Where the AO is routed from. i.e stream, optical input or off | `int` | `AnalogOutput.Sources` | `Off`
318
333
  | `is_fixed_volume` | Fix the output volume. Output wont respond to volume control | `bool` | |`False`
319
334
  | `is_fixed_volume_toggle()` | Toggle fixed volume | `func` |
320
335
 
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "vsslctrl"
7
- version = "0.1.10.dev1"
7
+ version = "0.1.11.dev1"
8
8
  description = "Package for controlling VSSL's range of streaming amplifiers"
9
9
  authors = [
10
10
  { name="vsslctrl", email="vsslcontrolled@proton.me" },