mirror of
https://github.com/esphome/aioesphomeapi.git
synced 2025-02-27 03:32:15 +01:00
Add MediaPlayerSupportedFormat (#925)
Co-authored-by: Jesse Hills <3060199+jesserockz@users.noreply.github.com>
This commit is contained in:
parent
7d071972cd
commit
2ba7774360
@ -1134,6 +1134,19 @@ enum MediaPlayerCommand {
|
||||
MEDIA_PLAYER_COMMAND_MUTE = 3;
|
||||
MEDIA_PLAYER_COMMAND_UNMUTE = 4;
|
||||
}
|
||||
enum MediaPlayerFormatPurpose {
|
||||
MEDIA_PLAYER_FORMAT_PURPOSE_DEFAULT = 0;
|
||||
MEDIA_PLAYER_FORMAT_PURPOSE_ANNOUNCEMENT = 1;
|
||||
}
|
||||
message MediaPlayerSupportedFormat {
|
||||
option (id) = 119;
|
||||
option (ifdef) = "USE_MEDIA_PLAYER";
|
||||
|
||||
string format = 1;
|
||||
uint32 sample_rate = 2;
|
||||
uint32 num_channels = 3;
|
||||
MediaPlayerFormatPurpose purpose = 4;
|
||||
}
|
||||
message ListEntitiesMediaPlayerResponse {
|
||||
option (id) = 63;
|
||||
option (source) = SOURCE_SERVER;
|
||||
@ -1149,6 +1162,8 @@ message ListEntitiesMediaPlayerResponse {
|
||||
EntityCategory entity_category = 7;
|
||||
|
||||
bool supports_pause = 8;
|
||||
|
||||
repeated MediaPlayerSupportedFormat supported_formats = 9;
|
||||
}
|
||||
message MediaPlayerStateResponse {
|
||||
option (id) = 64;
|
||||
|
File diff suppressed because one or more lines are too long
@ -820,10 +820,40 @@ class MediaPlayerCommand(APIIntEnum):
|
||||
UNMUTE = 4
|
||||
|
||||
|
||||
class MediaPlayerFormatPurpose(APIIntEnum):
|
||||
DEFAULT = 0
|
||||
ANNOUNCEMENT = 1
|
||||
|
||||
|
||||
@_frozen_dataclass_decorator
|
||||
class MediaPlayerSupportedFormat(APIModelBase):
|
||||
format: str
|
||||
sample_rate: int
|
||||
num_channels: int
|
||||
purpose: MediaPlayerFormatPurpose | None = converter_field(
|
||||
default=MediaPlayerFormatPurpose.DEFAULT,
|
||||
converter=MediaPlayerFormatPurpose.convert,
|
||||
)
|
||||
|
||||
@classmethod
|
||||
def convert_list(cls, value: list[Any]) -> list[MediaPlayerSupportedFormat]:
|
||||
ret = []
|
||||
for x in value:
|
||||
if isinstance(x, dict):
|
||||
ret.append(MediaPlayerSupportedFormat.from_dict(x))
|
||||
else:
|
||||
ret.append(MediaPlayerSupportedFormat.from_pb(x))
|
||||
return ret
|
||||
|
||||
|
||||
@_frozen_dataclass_decorator
|
||||
class MediaPlayerInfo(EntityInfo):
|
||||
supports_pause: bool = False
|
||||
|
||||
supported_formats: list[MediaPlayerSupportedFormat] = converter_field(
|
||||
default_factory=list, converter=MediaPlayerSupportedFormat.convert_list
|
||||
)
|
||||
|
||||
|
||||
@_frozen_dataclass_decorator
|
||||
class MediaPlayerEntityState(EntityState):
|
||||
|
Loading…
Reference in New Issue
Block a user