lib/exshome_player/variables/pause.ex
defmodule ExshomePlayer.Variables.Pause do
@moduledoc """
Playback pause data.
"""
alias ExshomePlayer.Services.PlayerState
use Exshome.Dependency.GenServerDependency,
name: "player_pause",
dependencies: [{PlayerState, :player}]
@impl GenServerDependency
def handle_dependency_change(%DependencyState{deps: %{player: %PlayerState{} = player}} = state) do
player_has_track = !player.path
update_value(state, player_has_track || player.pause)
end
end