paracusia v0.2.4 Paracusia.PlayerState

Provides access to the current state of MPD, without having to send messages over the socket.

All functions in this module have a pendant in a submodule of Paracusia.MpdClient (but not vice versa). Using these functions instead of the ones in Paracusia.MpdClient has the advantage that latency is lower and no superfluous TCP messages are sent.

Link to this section Summary

Functions

Similar to Paracusia.MpdClient.AudioOutputs.all/0, but always returns the outputs (instead of :error)

Similar to Paracusia.MpdClient.Status.current_song/0, but returns nil if no song is available

Similar to Paracusia.MpdClient.Queue.songs_info/0, but always returns the queue (instead of :error)

Similar to Paracusia.MpdClient.Status.status/0, but always returns the status (instead of :error)

Link to this section Types

Link to this type t()
t() :: %Paracusia.PlayerState{current_song: nil | map(), outputs: list(), queue: list(), status: %Paracusia.PlayerState.Status{audio: term(), bitrate: term(), consume: term(), elapsed: term(), error: term(), mixrampdb: term(), mixrampdelay: term(), next_song_id: term(), next_song_pos: term(), playlist: term(), playlist_length: term(), random: term(), repeat: term(), single: term(), song_id: term(), song_pos: term(), state: term(), time: term(), timestamp: term(), updating_db: term(), volume: term(), xfade: term()}}

Link to this section Functions

Link to this function audio_outputs()

Similar to Paracusia.MpdClient.AudioOutputs.all/0, but always returns the outputs (instead of :error).

Link to this function current_song()
current_song() :: %{optional(String.t()) => String.t()} | nil

Similar to Paracusia.MpdClient.Status.current_song/0, but returns nil if no song is available.

Link to this function queue()
queue() :: %{optional(String.t()) => String.t()}

Similar to Paracusia.MpdClient.Queue.songs_info/0, but always returns the queue (instead of :error).

Link to this function start_link(agent)
Link to this function status()
status() :: %Paracusia.PlayerState.Status{audio: term(), bitrate: term(), consume: term(), elapsed: term(), error: term(), mixrampdb: term(), mixrampdelay: term(), next_song_id: term(), next_song_pos: term(), playlist: term(), playlist_length: term(), random: term(), repeat: term(), single: term(), song_id: term(), song_pos: term(), state: term(), time: term(), timestamp: term(), updating_db: term(), volume: term(), xfade: term()}

Similar to Paracusia.MpdClient.Status.status/0, but always returns the status (instead of :error).

Link to this function unsubscribe(pid)