Coverage for src / bluetooth_sig / gatt / services / media_control.py: 100%
6 statements
« prev ^ index » next coverage.py v7.13.5, created at 2026-04-03 16:41 +0000
« prev ^ index » next coverage.py v7.13.5, created at 2026-04-03 16:41 +0000
1"""MediaControl Service implementation."""
3from __future__ import annotations
5from typing import ClassVar
7from ..characteristics.registry import CharacteristicName
8from .base import BaseGattService
11class MediaControlService(BaseGattService):
12 """Media Control Service implementation (0x1848).
14 Controls media playback including play/pause, track navigation,
15 and media player state reporting.
16 """
18 service_characteristics: ClassVar[dict[CharacteristicName, bool]] = {
19 CharacteristicName.MEDIA_PLAYER_NAME: True,
20 CharacteristicName.MEDIA_STATE: True,
21 CharacteristicName.TRACK_CHANGED: True,
22 CharacteristicName.TRACK_TITLE: True,
23 CharacteristicName.TRACK_DURATION: True,
24 CharacteristicName.TRACK_POSITION: True,
25 CharacteristicName.CONTENT_CONTROL_ID: True,
26 CharacteristicName.MEDIA_CONTROL_POINT: False,
27 CharacteristicName.MEDIA_CONTROL_POINT_OPCODES_SUPPORTED: False,
28 CharacteristicName.MEDIA_PLAYER_ICON_OBJECT_ID: False,
29 CharacteristicName.MEDIA_PLAYER_ICON_URL: False,
30 CharacteristicName.PLAYBACK_SPEED: False,
31 CharacteristicName.SEEKING_SPEED: False,
32 CharacteristicName.CURRENT_TRACK_SEGMENTS_OBJECT_ID: False,
33 CharacteristicName.CURRENT_TRACK_OBJECT_ID: False,
34 CharacteristicName.NEXT_TRACK_OBJECT_ID: False,
35 CharacteristicName.CURRENT_GROUP_OBJECT_ID: False,
36 CharacteristicName.PARENT_GROUP_OBJECT_ID: False,
37 CharacteristicName.PLAYING_ORDER: False,
38 CharacteristicName.PLAYING_ORDERS_SUPPORTED: False,
39 CharacteristicName.SEARCH_CONTROL_POINT: False,
40 CharacteristicName.SEARCH_RESULTS_OBJECT_ID: False,
41 }