Coverage for src / bluetooth_sig / gatt / services / generic_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"""GenericMediaControl Service implementation."""
3from __future__ import annotations
5from typing import ClassVar
7from ..characteristics.registry import CharacteristicName
8from .base import BaseGattService
11class GenericMediaControlService(BaseGattService):
12 """Generic Media Control Service implementation (0x1849).
14 A generic instance of the Media Control Service that provides
15 a standardised interface across media players.
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.PARENT_GROUP_OBJECT_ID: False,
36 CharacteristicName.CURRENT_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 }