paracusia v0.2.1 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 that latency is lower and no superfluous TCP messages are sent.

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)

Types

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}}

Functions

audio_outputs()

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

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.

queue()
queue :: %{optional(String.t) => String.t}

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

start_link()
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).

subscribe(pid)
unsubscribe(pid)