from music_assistant.common.models.enums import ProviderType
from music_assistant.common.models.provider import ProviderManifest
from music_assistant.constants import (
+ CONF_AUTO_PLAY,
CONF_CROSSFADE_DURATION,
CONF_EQ_BASS,
CONF_EQ_MID,
advanced=False,
)
+CONF_ENTRY_AUTO_PLAY = ConfigEntry(
+ key=CONF_AUTO_PLAY,
+ type=ConfigEntryType.BOOLEAN,
+ label="Automatically play/resume on power on",
+ default_value=False,
+ description="When this player is turned ON, automatically start playing "
+ "(if there are items in the queue).",
+)
+
CONF_ENTRY_OUTPUT_CHANNELS = ConfigEntry(
key=CONF_OUTPUT_CHANNELS,
type=ConfigEntryType.STRING,
DEFAULT_PLAYER_CONFIG_ENTRIES = (
CONF_ENTRY_VOLUME_NORMALIZATION,
CONF_ENTRY_FLOW_MODE,
+ CONF_ENTRY_AUTO_PLAY,
CONF_ENTRY_OUTPUT_CODEC,
CONF_ENTRY_VOLUME_NORMALIZATION_TARGET,
CONF_ENTRY_EQ_BASS,
CONF_BIND_IP: Final[str] = "bind_ip"
CONF_BIND_PORT: Final[str] = "bind_port"
CONF_PUBLISH_IP: Final[str] = "publish_ip"
+CONF_AUTO_PLAY: Final[str] = "auto_play"
# config default values
DEFAULT_HOST: Final[str] = "0.0.0.0"
raise FileNotFoundError(f"Unknown index/id: {index}")
queue.current_index = index
queue.index_in_buffer = index
- # power on player if needed
- await self.mass.players.cmd_power(queue_id, True)
# execute the play_media command on the player
queue_player = self.mass.players.get(queue_id)
need_multi_stream = (
UnsupportedFeaturedException,
)
from music_assistant.common.models.player import Player
-from music_assistant.constants import CONF_HIDE_GROUP_CHILDS, CONF_PLAYERS, ROOT_LOGGER_NAME
+from music_assistant.constants import (
+ CONF_AUTO_PLAY,
+ CONF_HIDE_GROUP_CHILDS,
+ CONF_PLAYERS,
+ ROOT_LOGGER_NAME,
+)
from music_assistant.server.helpers.api import api_command
from music_assistant.server.models.core_controller import CoreController
from music_assistant.server.models.player_provider import PlayerProvider
continue
if player_prov := self.get_player_provider(group_player.player_id):
await player_prov.on_child_power(group_player.player_id, player, powered)
+ break
+ else:
+ # auto play feature
+ if powered and self.mass.config.get_raw_player_config_value(
+ player_id, CONF_AUTO_PLAY, False
+ ):
+ await self.mass.player_queues.resume(player_id)
@api_command("players/cmd/volume_set")
async def cmd_volume_set(self, player_id: str, volume_level: int) -> None: