c1acb3b build(deps): Bump black from 21.5b2 to 21.6b0
8e13c3c build(deps): Bump codespell from 2.0.0 to 2.1.0
b844966 raop: Correctly implement position in metadata
1d665d5 raop: Support progress (position and total_time)
fae7b41 cq: Clean up usage of ensure_future
6c0cd54 raop: Fix instability in retransmission test
c2f7287 raop: Send feedback if supported by receiver
58220e5 raop: Avoid blocking I/O when loading metadata
7eb961d raop: Avoid blocking I/O in MiniaudioWrapper
292fbb5 raop: Add initial functional tests
68abbdc audiogen: Add new script to generate audio files
5f3d1a8 raop: Add basic fake device
32f8ed7 http: Add a simple web server implementation
f1bfce3 build(deps): Bump pytest-cov from 2.12.0 to 2.12.1
044f55e build(deps): Bump pylint from 2.8.2 to 2.8.3
eb2d36d build(deps): Bump black from 21.5b1 to 21.5b2
1d2b3a1 env: Don't post comment with GitPod link
2b5b280 http: Ignore type mypy cannot find
18d1597 http: Ignore case in when parsing headers
0bd54d8 airplay: Fix encoding name typo
e65eb59 airplay: Fix patching in tests
74401a0 raop: Use feedback endpoint for keep-alive
428b9b1 raop: Verify using AirPlay if credentials provided
99f3037 airplay: Unify credentials with other protocols AirPlay was the first protocol to introduce SRP and credentials and suffers some internal design flaws that were improved when implementing the other protocols. This change tries to make the AirPlay implementation look more like how it's done in the other protocols using SRP, e.g. MRP. It's a good start, but some additional work needs to be done regarding credentials parsing (but leaving that for the future).
894f0fd hap_srp: Rename Credentials to HapCredentials
2211a00 atvremote: Fix bugs in manual mode
be37e9f net: Move HttpSession to http
46ae307 net: Move aiohttp session management to http
7b62f96 airplay: Move StaticFileWebServer to http
722967e airplay: Simulate streaming from fake device
7aa1e35 airplay: Refactor to use new http module
1ef8684 rtsp: Use composition instead of inheritance
2d2bd57 raop: Convert RTSP to use the new HTTP module
57b3b5b http: Generalize RTSP parsing to HTTP
ded7458 companion: Fix case when app_list fails (1106)
980454e mrp: Do not deep copy protobuf messages (1105)
cc3de66 companion: Add support for turn_on and turn_off (1104)
d08c73a build(deps): Bump miniaudio from 1.43 to 1.44
f57f122 raop: Set correct progress in metadata (1100)
2dd1539 raop: Support retransmission of lost packets (1099)
5f5ad5b raop: Add support for AirPort Express (1098)
311ca61 raop: Raise exception on RTSP error code (1097)
a24ee74 conf: Add device info for AirPort Express (1096)
75d31f4 mdns: Ignore link-local addresses when scanning (1095)
9393b51 build(deps): bump black from 21.5b0 to 21.5b1 (1065)
3d541bf build(deps): bump pydocstyle from 6.1.0 to 6.1.1
0fd1393 build(deps): bump pylint from 2.7.4 to 2.8.2 (1044)
da37e28 docs: Update README.md (1092)
a64ca4d docs: General uplift of documentation (1091)
8822d66 build(deps): bump pydocstyle from 6.0.0 to 6.1.0
be08cfa raop: Implement Metadata and PushUpdater interface (1084)
5051a17 build(deps): bump pytest-cov from 2.11.1 to 2.12.0
c1d4d74 raop: Use metadata from input file as metadata (1080)
dc6c042 if: Add audio interface (1074)
41b5705 raop: Respect receiver audio properties (1073)
f2c625f raop: Add initial support for RAOP (1060)
a93601f facade: Add PushUpdates to the feature interface (1072)
6f53e7b env: Enable CodeQL (1070)
54d876a some small additions to the OPACK definitions (1064)
bb5ac0e build(deps): bump flake8 from 3.9.1 to 3.9.2
0cde7a0 scripts: Protocol clean up (1057)
35c49b8 build(deps-dev): bump tox from 3.23.0 to 3.23.1
f129725 build(deps): bump black from 21.4b2 to 21.5b0
a01ff9c build(deps): bump pytest from 6.2.3 to 6.2.4
cbfeba6 build(deps): bump deepdiff from 5.3.0 to 5.5.0
c85f211 build(deps): bump black from 21.4b1 to 21.4b2 (1050)
f15fa67 mrp: Tidy upp keyboard related messages (1048)
22a0b29 Add series name, season and episode number (1049)
51a1da3 build(deps): bump black from 21.4b0 to 21.4b1 (1046)
f344a12 docs: Add section about commands in Companion (1047)
b5d015f docs: Change "Apps" section to "Known Issues" (1045)
58f8925 Implement facade pattern for public interface (1042)
3225c98 companion: Add pairing function tests (1041)
e230f1d gha: Run tests workflow on master (1039)
7979b1b build(deps): bump black from 20.8b1 to 21.4b0
f6976e4 script: Install docs dependencies in dev env (1032)
c68ed51 mrp: Handle missing artwork gracefully (1033)
5df2295 gha: Minor changes to codecov (1031)
021cc7a docs: Clarify AAD for encryption in Companion (1030)
33d504d env: Various updats to environment and GitPod (1029)
f173531 env: Remove documentation tab from GitPod for now (1028)
1e8ffdc env: Add GitPod configuration
d2dbc9e cq: Sort imports with isort (1026)
caeb039 build(deps): bump pytest-asyncio from 0.14.0 to 0.15.1 (1027)
bb7ff8f Fake device and tests for Companion (1025)
ddbe170 if: Add Apps interface to Companion (1022)
8ebc67d knock: Suppress CancelledError exception (1023)
ea5d3ea Support for the Companion link protocol (657)
e033942 scripts: Add module to log output (1017)
235484e build(deps): bump deepdiff from 5.2.3 to 5.3.0
646c6d6 doc: Add mermaid to support diagrams (1014)
b0c9355 chore: update types in CryptoPairingMessage to be optional (1013)
9cb96ff mrp: Implement and enforce internal protocol state (fixes 1007) (1009)
df43f78 build(deps): bump flake8 from 3.9.0 to 3.9.1
6d42bf5 build(deps): bump typed-ast from 1.4.2 to 1.4.3
d6ae8e9 dmap: Reset revision if push update fails (1004)
ea1f816 build(deps): bump pytest from 6.2.2 to 6.2.3
33acac2 atvlog: Exit if no output was generated (1001)
c59a3d3 build(deps): bump pylint from 2.7.2 to 2.7.4
f3f7a1a atvlog: Support serving output via web server (997)
377e0eb build(deps): bump pydocstyle from 5.1.1 to 6.0.0
00fa0cd protobuf: Bump lower version to 3.12.0 (991)
d291104 build(deps): bump flake8 from 3.8.4 to 3.9.0