ESPHome
2023.5.5
esphome
esphome
components
media_player
media_player.h
Go to the documentation of this file.
1
#pragma once
2
3
#include "
esphome/core/entity_base.h
"
4
#include "
esphome/core/helpers.h
"
5
6
namespace
esphome
{
7
namespace
media_player {
8
9
enum
MediaPlayerState
: uint8_t {
10
MEDIA_PLAYER_STATE_NONE
= 0,
11
MEDIA_PLAYER_STATE_IDLE
= 1,
12
MEDIA_PLAYER_STATE_PLAYING
= 2,
13
MEDIA_PLAYER_STATE_PAUSED
= 3
14
};
15
const
char
*
media_player_state_to_string
(
MediaPlayerState
state
);
16
17
enum
MediaPlayerCommand
: uint8_t {
18
MEDIA_PLAYER_COMMAND_PLAY
= 0,
19
MEDIA_PLAYER_COMMAND_PAUSE
= 1,
20
MEDIA_PLAYER_COMMAND_STOP
= 2,
21
MEDIA_PLAYER_COMMAND_MUTE
= 3,
22
MEDIA_PLAYER_COMMAND_UNMUTE
= 4,
23
MEDIA_PLAYER_COMMAND_TOGGLE
= 5,
24
MEDIA_PLAYER_COMMAND_VOLUME_UP
= 6,
25
MEDIA_PLAYER_COMMAND_VOLUME_DOWN
= 7,
26
};
27
const
char
*
media_player_command_to_string
(
MediaPlayerCommand
command);
28
29
class
MediaPlayer
;
30
31
class
MediaPlayerTraits
{
32
public
:
33
MediaPlayerTraits
() =
default
;
34
35
void
set_supports_pause
(
bool
supports_pause) { this->
supports_pause_
= supports_pause; }
36
37
bool
get_supports_pause
()
const
{
return
this->
supports_pause_
; }
38
39
protected
:
40
bool
supports_pause_
{
false
};
41
};
42
43
class
MediaPlayerCall
{
44
public
:
45
MediaPlayerCall
(
MediaPlayer
*parent) : parent_(parent) {}
46
47
MediaPlayerCall
&set_command(
MediaPlayerCommand
command);
48
MediaPlayerCall
&set_command(
optional<MediaPlayerCommand>
command);
49
MediaPlayerCall
&set_command(
const
std::string &command);
50
51
MediaPlayerCall
&set_media_url(
const
std::string &url);
52
53
MediaPlayerCall
&set_volume(
float
volume);
54
55
void
perform();
56
57
const
optional<MediaPlayerCommand>
&
get_command
()
const
{
return
command_; }
58
const
optional<std::string>
&
get_media_url
()
const
{
return
media_url_; }
59
const
optional<float>
&
get_volume
()
const
{
return
volume_; }
60
61
protected
:
62
void
validate_();
63
MediaPlayer
*
const
parent_
;
64
optional<MediaPlayerCommand>
command_
;
65
optional<std::string>
media_url_
;
66
optional<float>
volume_
;
67
};
68
69
class
MediaPlayer
:
public
EntityBase
{
70
public
:
71
MediaPlayerState
state
{
MEDIA_PLAYER_STATE_NONE
};
72
float
volume{1.0f};
73
74
MediaPlayerCall
make_call
() {
return
MediaPlayerCall
(
this
); }
75
76
void
publish_state();
77
78
void
add_on_state_callback(std::function<
void
()> &&callback);
79
80
virtual
bool
is_muted
()
const
{
return
false
; }
81
82
virtual
MediaPlayerTraits
get_traits() = 0;
83
84
protected
:
85
friend
MediaPlayerCall
;
86
87
virtual
void
control(
const
MediaPlayerCall
&call) = 0;
88
89
CallbackManager<void()>
state_callback_{};
90
};
91
92
}
// namespace media_player
93
}
// namespace esphome
esphome::media_player::MEDIA_PLAYER_COMMAND_STOP
Definition:
media_player.h:20
esphome::media_player::MEDIA_PLAYER_STATE_NONE
Definition:
media_player.h:10
esphome::media_player::MediaPlayerCall::volume_
optional< float > volume_
Definition:
media_player.h:66
esphome::media_player::MEDIA_PLAYER_COMMAND_PAUSE
Definition:
media_player.h:19
esphome::media_player::MediaPlayerTraits::MediaPlayerTraits
MediaPlayerTraits()=default
esphome::media_player::MEDIA_PLAYER_STATE_PLAYING
Definition:
media_player.h:12
esphome::media_player::MediaPlayer::MediaPlayerCall
friend MediaPlayerCall
Definition:
media_player.h:85
esphome::media_player::MEDIA_PLAYER_COMMAND_TOGGLE
Definition:
media_player.h:23
esphome::media_player::MEDIA_PLAYER_COMMAND_MUTE
Definition:
media_player.h:21
entity_base.h
esphome::media_player::MediaPlayer::is_muted
virtual bool is_muted() const
Definition:
media_player.h:80
esphome::media_player::MediaPlayerTraits::supports_pause_
bool supports_pause_
Definition:
media_player.h:40
esphome::media_player::MediaPlayerCall::get_volume
const optional< float > & get_volume() const
Definition:
media_player.h:59
esphome::media_player::media_player_state_to_string
const char * media_player_state_to_string(MediaPlayerState state)
Definition:
media_player.cpp:10
esphome::media_player::MediaPlayerCommand
MediaPlayerCommand
Definition:
media_player.h:17
esphome::media_player::MEDIA_PLAYER_STATE_PAUSED
Definition:
media_player.h:13
esphome::media_player::media_player_command_to_string
const char * media_player_command_to_string(MediaPlayerCommand command)
Definition:
media_player.cpp:24
esphome::media_player::MEDIA_PLAYER_COMMAND_UNMUTE
Definition:
media_player.h:22
esphome::EntityBase
Definition:
entity_base.h:16
esphome::media_player::MediaPlayer
Definition:
media_player.h:69
esphome::media_player::MEDIA_PLAYER_STATE_IDLE
Definition:
media_player.h:11
esphome::media_player::MediaPlayerTraits::get_supports_pause
bool get_supports_pause() const
Definition:
media_player.h:37
esphome::media_player::MEDIA_PLAYER_COMMAND_VOLUME_DOWN
Definition:
media_player.h:25
esphome::media_player::MediaPlayer::make_call
MediaPlayerCall make_call()
Definition:
media_player.h:74
esphome::media_player::MediaPlayerCall
Definition:
media_player.h:43
esphome::CallbackManager< void()>
esphome::media_player::MediaPlayerCall::get_command
const optional< MediaPlayerCommand > & get_command() const
Definition:
media_player.h:57
esphome::media_player::MediaPlayerCall::get_media_url
const optional< std::string > & get_media_url() const
Definition:
media_player.h:58
esphome::media_player::MediaPlayerCall::MediaPlayerCall
MediaPlayerCall(MediaPlayer *parent)
Definition:
media_player.h:45
esphome::optional< MediaPlayerCommand >
esphome::media_player::MEDIA_PLAYER_COMMAND_PLAY
Definition:
media_player.h:18
esphome::media_player::MEDIA_PLAYER_COMMAND_VOLUME_UP
Definition:
media_player.h:24
esphome::media_player::MediaPlayerTraits
Definition:
media_player.h:31
esphome::media_player::MediaPlayerCall::parent_
MediaPlayer *const parent_
Definition:
media_player.h:63
esphome
Definition:
a4988.cpp:4
helpers.h
esphome::media_player::MediaPlayerTraits::set_supports_pause
void set_supports_pause(bool supports_pause)
Definition:
media_player.h:35
state
bool state
Definition:
fan.h:34
esphome::media_player::MediaPlayerCall::media_url_
optional< std::string > media_url_
Definition:
media_player.h:65
esphome::media_player::MediaPlayerCall::command_
optional< MediaPlayerCommand > command_
Definition:
media_player.h:64
esphome::media_player::MediaPlayerState
MediaPlayerState
Definition:
media_player.h:9
Generated by
1.8.13