ESPHome 2025.5.2
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
media_player.h
Go to the documentation of this file.
1#pragma once
2
5
6namespace esphome {
7namespace media_player {
8
17
33
34enum class MediaPlayerFormatPurpose : uint8_t {
37};
38
46
47class MediaPlayer;
48
50 public:
51 MediaPlayerTraits() = default;
52
53 void set_supports_pause(bool supports_pause) { this->supports_pause_ = supports_pause; }
54
55 bool get_supports_pause() const { return this->supports_pause_; }
56
57 std::vector<MediaPlayerSupportedFormat> &get_supported_formats() { return this->supported_formats_; }
58
59 protected:
60 bool supports_pause_{false};
61 std::vector<MediaPlayerSupportedFormat> supported_formats_{};
62};
63
65 public:
66 MediaPlayerCall(MediaPlayer *parent) : parent_(parent) {}
67
70 MediaPlayerCall &set_command(const std::string &command);
71
72 MediaPlayerCall &set_media_url(const std::string &url);
73
74 MediaPlayerCall &set_volume(float volume);
75 MediaPlayerCall &set_announcement(bool announce);
76
77 void perform();
78
79 const optional<MediaPlayerCommand> &get_command() const { return this->command_; }
80 const optional<std::string> &get_media_url() const { return this->media_url_; }
81 const optional<float> &get_volume() const { return this->volume_; }
82 const optional<bool> &get_announcement() const { return this->announcement_; }
83
84 protected:
85 void validate_();
91};
92
93class MediaPlayer : public EntityBase {
94 public:
96 float volume{1.0f};
97
99
100 void publish_state();
101
102 void add_on_state_callback(std::function<void()> &&callback);
103
104 virtual bool is_muted() const { return false; }
105
107
108 protected:
110
111 virtual void control(const MediaPlayerCall &call) = 0;
112
114};
115
116} // namespace media_player
117} // namespace esphome
const optional< bool > & get_announcement() const
MediaPlayerCall & set_media_url(const std::string &url)
MediaPlayerCall & set_volume(float volume)
const optional< std::string > & get_media_url() const
const optional< MediaPlayerCommand > & get_command() const
const optional< float > & get_volume() const
optional< std::string > media_url_
MediaPlayerCall & set_announcement(bool announce)
MediaPlayerCall & set_command(MediaPlayerCommand command)
optional< MediaPlayerCommand > command_
virtual void control(const MediaPlayerCall &call)=0
CallbackManager< void()> state_callback_
virtual MediaPlayerTraits get_traits()=0
void add_on_state_callback(std::function< void()> &&callback)
std::vector< MediaPlayerSupportedFormat > supported_formats_
std::vector< MediaPlayerSupportedFormat > & get_supported_formats()
void set_supports_pause(bool supports_pause)
bool state
Definition fan.h:0
const char * media_player_command_to_string(MediaPlayerCommand command)
const char * media_player_state_to_string(MediaPlayerState state)
Providing packet encoding functions for exchanging data with a remote host.
Definition a01nyub.cpp:7