-
Notifications
You must be signed in to change notification settings - Fork 68
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Extend Functionality of Media_Player #911
base: main
Are you sure you want to change the base?
Changes from 36 commits
1914f27
21a57d0
1699d2b
633e149
4888fe9
6e2258a
373e826
b0c8106
fe9a3ae
ccaab5c
aa8c74e
0d48853
fd8b25b
64653aa
b916d4f
8860fe6
d36e0f5
b5c9cb5
925f0e9
6936b1e
4d3da49
c9ae2af
1bdd95c
25e84f3
fcf8b06
bad0fb8
55b480f
478db97
de036bc
e740562
e92395b
6217f7d
6d26ed7
f560cb9
2dea139
b0dd6b6
9ce8c22
cbcc04c
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
@@ -1126,13 +1126,32 @@ enum MediaPlayerState { | |||||||||||||||||||||
MEDIA_PLAYER_STATE_IDLE = 1; | ||||||||||||||||||||||
MEDIA_PLAYER_STATE_PLAYING = 2; | ||||||||||||||||||||||
MEDIA_PLAYER_STATE_PAUSED = 3; | ||||||||||||||||||||||
MEDIA_PLAYER_STATE_ANNOUNCING = 4; | ||||||||||||||||||||||
MEDIA_PLAYER_STATE_OFF = 5; | ||||||||||||||||||||||
MEDIA_PLAYER_STATE_ON = 6; | ||||||||||||||||||||||
|
||||||||||||||||||||||
} | ||||||||||||||||||||||
enum MediaPlayerCommand { | ||||||||||||||||||||||
MEDIA_PLAYER_COMMAND_PLAY = 0; | ||||||||||||||||||||||
MEDIA_PLAYER_COMMAND_PAUSE = 1; | ||||||||||||||||||||||
MEDIA_PLAYER_COMMAND_STOP = 2; | ||||||||||||||||||||||
MEDIA_PLAYER_COMMAND_MUTE = 3; | ||||||||||||||||||||||
MEDIA_PLAYER_COMMAND_UNMUTE = 4; | ||||||||||||||||||||||
MEDIA_PLAYER_COMMAND_TOGGLE = 5; | ||||||||||||||||||||||
MEDIA_PLAYER_COMMAND_VOLUME_UP = 6; | ||||||||||||||||||||||
MEDIA_PLAYER_COMMAND_VOLUME_DOWN = 7; | ||||||||||||||||||||||
MEDIA_PLAYER_COMMAND_NEXT_TRACK = 8; | ||||||||||||||||||||||
MEDIA_PLAYER_COMMAND_PREVIOUS_TRACK = 9; | ||||||||||||||||||||||
MEDIA_PLAYER_COMMAND_TURN_ON = 10; | ||||||||||||||||||||||
MEDIA_PLAYER_COMMAND_TURN_OFF = 11; | ||||||||||||||||||||||
MEDIA_PLAYER_COMMAND_CLEAR_PLAYLIST = 12; | ||||||||||||||||||||||
MEDIA_PLAYER_COMMAND_SHUFFLE = 13; | ||||||||||||||||||||||
MEDIA_PLAYER_COMMAND_UNSHUFFLE = 14; | ||||||||||||||||||||||
MEDIA_PLAYER_COMMAND_REPEAT_OFF = 15; | ||||||||||||||||||||||
MEDIA_PLAYER_COMMAND_REPEAT_ONE = 16; | ||||||||||||||||||||||
MEDIA_PLAYER_COMMAND_REPEAT_ALL = 17; | ||||||||||||||||||||||
MEDIA_PLAYER_COMMAND_JOIN = 18; | ||||||||||||||||||||||
MEDIA_PLAYER_COMMAND_UNJOIN = 19; | ||||||||||||||||||||||
} | ||||||||||||||||||||||
enum MediaPlayerFormatPurpose { | ||||||||||||||||||||||
MEDIA_PLAYER_FORMAT_PURPOSE_DEFAULT = 0; | ||||||||||||||||||||||
|
@@ -1162,8 +1181,10 @@ message ListEntitiesMediaPlayerResponse { | |||||||||||||||||||||
EntityCategory entity_category = 7; | ||||||||||||||||||||||
|
||||||||||||||||||||||
bool supports_pause = 8; | ||||||||||||||||||||||
|
||||||||||||||||||||||
repeated MediaPlayerSupportedFormat supported_formats = 9; | ||||||||||||||||||||||
bool supports_turn_off_on = 10; | ||||||||||||||||||||||
bool supports_grouping = 11; | ||||||||||||||||||||||
bool supports_next_previous_track = 12; | ||||||||||||||||||||||
} | ||||||||||||||||||||||
message MediaPlayerStateResponse { | ||||||||||||||||||||||
option (id) = 64; | ||||||||||||||||||||||
|
@@ -1174,6 +1195,13 @@ message MediaPlayerStateResponse { | |||||||||||||||||||||
MediaPlayerState state = 2; | ||||||||||||||||||||||
float volume = 3; | ||||||||||||||||||||||
bool muted = 4; | ||||||||||||||||||||||
string repeat = 5; | ||||||||||||||||||||||
bool shuffle = 6; | ||||||||||||||||||||||
string artist = 7; | ||||||||||||||||||||||
string album = 8; | ||||||||||||||||||||||
string title = 9; | ||||||||||||||||||||||
int32 duration = 10; | ||||||||||||||||||||||
int32 position = 11; | ||||||||||||||||||||||
Comment on lines
+1198
to
+1204
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Refine Data Types for
|
||||||||||||||||||||||
} | ||||||||||||||||||||||
message MediaPlayerCommandRequest { | ||||||||||||||||||||||
option (id) = 65; | ||||||||||||||||||||||
|
@@ -1194,6 +1222,12 @@ message MediaPlayerCommandRequest { | |||||||||||||||||||||
|
||||||||||||||||||||||
bool has_announcement = 8; | ||||||||||||||||||||||
bool announcement = 9; | ||||||||||||||||||||||
|
||||||||||||||||||||||
bool has_enqueue = 10; | ||||||||||||||||||||||
string enqueue = 11; | ||||||||||||||||||||||
|
||||||||||||||||||||||
bool has_group_members = 12; | ||||||||||||||||||||||
string group_members = 13; | ||||||||||||||||||||||
Comment on lines
+1226
to
+1230
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Adjust Data Types for
Suggested changes:
Ensure that the implementation handles these fields appropriately in the codebase. Committable suggestion
Suggested change
|
||||||||||||||||||||||
} | ||||||||||||||||||||||
|
||||||||||||||||||||||
// ==================== BLUETOOTH ==================== | ||||||||||||||||||||||
|
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -811,6 +811,9 @@ class MediaPlayerState(APIIntEnum): | |
IDLE = 1 | ||
PLAYING = 2 | ||
PAUSED = 3 | ||
ANNOUNCING = 4 | ||
OFF = 5 | ||
ON = 6 | ||
Comment on lines
+814
to
+816
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Reconsider including The addition of |
||
|
||
|
||
class MediaPlayerCommand(APIIntEnum): | ||
|
@@ -819,6 +822,22 @@ class MediaPlayerCommand(APIIntEnum): | |
STOP = 2 | ||
MUTE = 3 | ||
UNMUTE = 4 | ||
TOGGLE = 5 | ||
VOLUME_UP = 6 | ||
VOLUME_DOWN = 7 | ||
NEXT_TRACK = 8 | ||
PREVIOUS_TRACK = 9 | ||
TURN_ON = 10 | ||
TURN_OFF = 11 | ||
|
||
CLEAR_PLAYLIST = 12 | ||
SHUFFLE = 13 | ||
UNSHUFFLE = 14 | ||
REPEAT_OFF = 15 | ||
REPEAT_ONE = 16 | ||
REPEAT_ALL = 17 | ||
JOIN = 18 | ||
UNJOIN = 19 | ||
|
||
|
||
class MediaPlayerFormatPurpose(APIIntEnum): | ||
|
@@ -851,6 +870,9 @@ def convert_list(cls, value: list[Any]) -> list[MediaPlayerSupportedFormat]: | |
@_frozen_dataclass_decorator | ||
class MediaPlayerInfo(EntityInfo): | ||
supports_pause: bool = False | ||
supports_next_previous_track: bool = False | ||
supports_turn_off_on: bool = False | ||
supports_grouping: bool = False | ||
|
||
supported_formats: list[MediaPlayerSupportedFormat] = converter_field( | ||
default_factory=list, converter=MediaPlayerSupportedFormat.convert_list | ||
|
@@ -866,6 +888,14 @@ class MediaPlayerEntityState(EntityState): | |
default=0.0, converter=fix_float_single_double_conversion | ||
) | ||
muted: bool = False | ||
repeat: str = "" | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Use an enum for The Define the enum: class MediaPlayerRepeatMode(APIIntEnum):
OFF = 0
ONE = 1
ALL = 2 Update the -repeat: str = ""
+repeat: MediaPlayerRepeatMode | None = converter_field(
+ default=MediaPlayerRepeatMode.OFF, converter=MediaPlayerRepeatMode.convert
+) |
||
shuffle: bool = False | ||
|
||
artist: str = "" | ||
album: str = "" | ||
title: str = "" | ||
duration: int = 0 | ||
position: int = 0 | ||
|
||
|
||
# ==================== ALARM CONTROL PANEL ==================== | ||
|
Original file line number | Diff line number | Diff line change | ||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
@@ -798,6 +798,16 @@ async def test_select_command( | |||||||||||||||||||||||||||||||||||||||||||||||||||||
dict(key=1, volume=1.0), | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
dict(key=1, has_volume=True, volume=1.0), | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
), | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
( | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
dict(key=1, media_url="http://example.com", enqueue="replace"), | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
dict( | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
key=1, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
has_media_url=True, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
media_url="http://example.com", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
has_enqueue=True, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
enqueue="replace", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
), | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Comment on lines
+801
to
+809
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Fix syntax error in dictionary definition. There is a missing comma at the end of line 803. - media_url="http://example.com"
+ media_url="http://example.com", Committable suggestion
Suggested change
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
), | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
( | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
dict(key=1, media_url="http://example.com"), | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
dict(key=1, has_media_url=True, media_url="http://example.com"), | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
@@ -812,6 +822,20 @@ async def test_select_command( | |||||||||||||||||||||||||||||||||||||||||||||||||||||
announcement=True, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
), | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
), | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
( | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
dict( | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
key=1, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
command=MediaPlayerCommand.JOIN, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
group_members="media_player.media_player_2,", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
), | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
dict( | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
key=1, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
has_command=True, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
command=MediaPlayerCommand.JOIN, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
has_group_members=True, | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
group_members="media_player.media_player_2,", | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
), | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
Comment on lines
+825
to
+837
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Review: Syntax Error and Logic Check for Group Members Parameter The test case for the media player command with Consider removing the trailing comma for clarity and to prevent potential parsing issues: - group_members="media_player.media_player_2,",
+ group_members="media_player.media_player_2" Committable suggestion
Suggested change
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
), | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
], | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
async def test_media_player_command( | ||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Validate Field Numbers and Dependency Management in
ListEntitiesMediaPlayerResponse
The fields
supports_turn_off_on
,supports_grouping
, andsupports_next_previous_track
expand the capabilities of the media player entities. Ensure that:10
,11
,12
) do not conflict with existing fields.Verify the field numbering and update the documentation to reflect these new capabilities.