Documentation ¶
Index ¶
- Variables
- type Config
- type CurrentSongHandler
- type Handler
- type ImageProvider
- type ImagesHandler
- func (a *ImagesHandler) Changed() <-chan bool
- func (a *ImagesHandler) Close()
- func (a *ImagesHandler) ConvSong(s map[string][]string) (map[string][]string, bool)
- func (a *ImagesHandler) ConvSongs(s []map[string][]string) []map[string][]string
- func (a *ImagesHandler) ServeHTTP(w http.ResponseWriter, r *http.Request)
- func (a *ImagesHandler) Shutdown(ctx context.Context) error
- func (a *ImagesHandler) UpdateLibrarySongs(songs []map[string][]string)
- type LibraryHandler
- type LibrarySongsHandler
- type Logger
- type MPDCurrentSong
- type MPDLibrary
- type MPDLibrarySongs
- type MPDOutputs
- type MPDPlaylist
- type MPDPlaylistSongs
- type MPDStats
- type MPDStatus
- type MPDStorage
- type MPDVersion
- type NeighborsHandler
- type OutputsHandler
- type OutputsStreamHandler
- type PlaylistHandler
- func (a *PlaylistHandler) Changed() <-chan struct{}
- func (a *PlaylistHandler) Close()
- func (a *PlaylistHandler) ServeHTTP(w http.ResponseWriter, r *http.Request)
- func (a *PlaylistHandler) Shutdown(ctx context.Context) error
- func (a *PlaylistHandler) UpdateCurrent(pos int) error
- func (a *PlaylistHandler) UpdateLibrarySongs(i []map[string][]string)
- func (a *PlaylistHandler) UpdatePlaylistSongs(i []map[string][]string)
- func (a *PlaylistHandler) Wait(ctx context.Context) error
- type PlaylistSongsHandler
- func (a *PlaylistSongsHandler) Cache() []map[string][]string
- func (a *PlaylistSongsHandler) Changed() <-chan struct{}
- func (a *PlaylistSongsHandler) Close()
- func (a *PlaylistSongsHandler) ServeHTTP(w http.ResponseWriter, r *http.Request)
- func (a *PlaylistSongsHandler) Update(ctx context.Context) error
- type StatsHandler
- type Status
- type StatusHandler
- func (a *StatusHandler) BroadCast(s string)
- func (a *StatusHandler) Cache() *Status
- func (a *StatusHandler) Changed() <-chan struct{}
- func (a *StatusHandler) Close()
- func (a *StatusHandler) ServeHTTP(w http.ResponseWriter, r *http.Request)
- func (a *StatusHandler) Update(ctx context.Context) error
- func (a *StatusHandler) UpdateOptions(ctx context.Context) error
- type StorageHandler
- type VersionHandler
Constants ¶
This section is empty.
Variables ¶
var ( // ErrAlreadyShutdown returns if already Shutdown is called ErrAlreadyShutdown = errors.New("api: already shutdown") )
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct { AppVersion string // app version string for info BackgroundTimeout time.Duration // timeout for background mpd cache updating jobs AudioProxy map[string]string // audio device - mpd http server addr pair to proxy ImageProviders []ImageProvider Logger Logger // contains filtered or unexported fields }
Config is options for api Handler.
type CurrentSongHandler ¶ added in v0.12.0
type CurrentSongHandler struct {
// contains filtered or unexported fields
}
func NewCurrentSongHandler ¶ added in v0.12.0
func NewCurrentSongHandler(mpd MPDCurrentSong, songHook func(map[string][]string) map[string][]string) (*CurrentSongHandler, error)
func (*CurrentSongHandler) Changed ¶ added in v0.12.0
func (a *CurrentSongHandler) Changed() <-chan struct{}
func (*CurrentSongHandler) Close ¶ added in v0.12.0
func (a *CurrentSongHandler) Close()
func (*CurrentSongHandler) ServeHTTP ¶ added in v0.12.0
func (a *CurrentSongHandler) ServeHTTP(w http.ResponseWriter, r *http.Request)
type Handler ¶
type Handler struct {
// contains filtered or unexported fields
}
Handler implements http.Handler for vv json api.
func NewHandler ¶
NewHandler creates Handler and initialize mpd cache data.
func (*Handler) ServeHTTP ¶
func (h *Handler) ServeHTTP(w http.ResponseWriter, r *http.Request)
ServeHTTP serves vv json api.
type ImageProvider ¶
type ImageProvider interface { Update(context.Context, map[string][]string) error Rescan(context.Context, map[string][]string, string) error GetURLs(map[string][]string) ([]string, bool) }
ImageProvider represents http cover image image url api.
type ImagesHandler ¶ added in v0.12.0
type ImagesHandler struct {
// contains filtered or unexported fields
}
func NewImagesHandler ¶ added in v0.12.0
func NewImagesHandler(img []ImageProvider, logger Logger) (*ImagesHandler, error)
func (*ImagesHandler) Changed ¶ added in v0.12.0
func (a *ImagesHandler) Changed() <-chan bool
Changed returns response body changes event chan.
func (*ImagesHandler) Close ¶ added in v0.12.0
func (a *ImagesHandler) Close()
Close closes update event chan.
func (*ImagesHandler) ConvSongs ¶ added in v0.12.0
func (a *ImagesHandler) ConvSongs(s []map[string][]string) []map[string][]string
func (*ImagesHandler) ServeHTTP ¶ added in v0.12.0
func (a *ImagesHandler) ServeHTTP(w http.ResponseWriter, r *http.Request)
func (*ImagesHandler) Shutdown ¶ added in v0.12.0
func (a *ImagesHandler) Shutdown(ctx context.Context) error
Shutdown stops background image updater api.
func (*ImagesHandler) UpdateLibrarySongs ¶ added in v0.12.0
func (a *ImagesHandler) UpdateLibrarySongs(songs []map[string][]string)
UpdateLibrarySongs set songs for rescan images.
type LibraryHandler ¶ added in v0.12.0
type LibraryHandler struct {
// contains filtered or unexported fields
}
func NewLibraryHandler ¶ added in v0.12.0
func NewLibraryHandler(mpd MPDLibrary) (*LibraryHandler, error)
func (*LibraryHandler) Changed ¶ added in v0.12.0
func (a *LibraryHandler) Changed() <-chan struct{}
Changed returns library song list update event chan.
func (*LibraryHandler) Close ¶ added in v0.12.0
func (a *LibraryHandler) Close()
Close closes update event chan.
func (*LibraryHandler) ServeHTTP ¶ added in v0.12.0
func (a *LibraryHandler) ServeHTTP(w http.ResponseWriter, r *http.Request)
func (*LibraryHandler) UpdateStatus ¶ added in v0.12.0
func (a *LibraryHandler) UpdateStatus(updating bool) error
type LibrarySongsHandler ¶ added in v0.12.0
type LibrarySongsHandler struct {
// contains filtered or unexported fields
}
func NewLibrarySongsHandler ¶ added in v0.12.0
func NewLibrarySongsHandler(mpd MPDLibrarySongs, songsHook func([]map[string][]string) []map[string][]string) (*LibrarySongsHandler, error)
func (*LibrarySongsHandler) Cache ¶ added in v0.12.0
func (a *LibrarySongsHandler) Cache() []map[string][]string
func (*LibrarySongsHandler) Changed ¶ added in v0.12.0
func (a *LibrarySongsHandler) Changed() <-chan struct{}
Changed returns library song list update event chan.
func (*LibrarySongsHandler) Close ¶ added in v0.12.0
func (a *LibrarySongsHandler) Close()
Close closes update event chan.
func (*LibrarySongsHandler) ServeHTTP ¶ added in v0.12.0
func (a *LibrarySongsHandler) ServeHTTP(w http.ResponseWriter, r *http.Request)
ServeHTTP responses library song list as json format.
type MPDCurrentSong ¶ added in v0.12.0
type MPDLibrary ¶ added in v0.12.0
type MPDLibrarySongs ¶ added in v0.12.0
type MPDOutputs ¶ added in v0.12.0
type MPDPlaylist ¶ added in v0.12.0
type MPDPlaylistSongs ¶ added in v0.12.0
type MPDStatus ¶ added in v0.12.0
type MPDStatus interface { Status(context.Context) (map[string]string, error) ReplayGainStatus(context.Context) (map[string]string, error) SetVol(context.Context, int) error Repeat(context.Context, bool) error Random(context.Context, bool) error Single(context.Context, bool) error OneShot(context.Context) error Consume(context.Context, bool) error SeekCur(context.Context, float64) error ReplayGainMode(context.Context, string) error Crossfade(context.Context, time.Duration) error Play(context.Context, int) error Pause(context.Context, bool) error Next(context.Context) error Previous(context.Context) error }
type MPDStorage ¶ added in v0.12.0
type MPDStorage interface { ListMounts(context.Context) ([]map[string]string, error) Mount(context.Context, string, string) error Unmount(context.Context, string) error Update(context.Context, string) (map[string]string, error) }
MPDStorage represents mpd api for Storage API.
type MPDVersion ¶ added in v0.12.0
type MPDVersion interface {
Version() string
}
MPDVersion represents mpd api for Version API.
type NeighborsHandler ¶ added in v0.12.0
type NeighborsHandler struct {
// contains filtered or unexported fields
}
NeighborsHandler provides neighbor storage name and uri.
func NewNeighborsHandler ¶ added in v0.12.0
func NewNeighborsHandler(mpd interface { ListNeighbors(context.Context) ([]map[string]string, error) }, logger Logger) (*NeighborsHandler, error)
NewNeighborsHandler initilize Neighbors cache with mpd connection.
func (*NeighborsHandler) Changed ¶ added in v0.12.0
func (a *NeighborsHandler) Changed() <-chan struct{}
Changed returns neighbors list update event chan.
func (*NeighborsHandler) Close ¶ added in v0.12.0
func (a *NeighborsHandler) Close()
Close closes update event chan.
func (*NeighborsHandler) ServeHTTP ¶ added in v0.12.0
func (a *NeighborsHandler) ServeHTTP(w http.ResponseWriter, r *http.Request)
ServeHTTP responses neighbors list as json format.
type OutputsHandler ¶ added in v0.12.0
type OutputsHandler struct {
// contains filtered or unexported fields
}
func NewOutputsHandler ¶ added in v0.12.0
func NewOutputsHandler(mpd MPDOutputs, proxy map[string]string) (*OutputsHandler, error)
func (*OutputsHandler) Changed ¶ added in v0.12.0
func (a *OutputsHandler) Changed() <-chan struct{}
Changed returns outputs update event chan.
func (*OutputsHandler) Close ¶ added in v0.12.0
func (a *OutputsHandler) Close()
Close closes update event chan.
func (*OutputsHandler) ServeHTTP ¶ added in v0.12.0
func (a *OutputsHandler) ServeHTTP(w http.ResponseWriter, r *http.Request)
type OutputsStreamHandler ¶ added in v0.12.0
type OutputsStreamHandler struct {
// contains filtered or unexported fields
}
OutputsStreamHandler is a MPD HTTP audio proxy.
func NewOutputsStreamHandler ¶ added in v0.12.0
func NewOutputsStreamHandler(proxy map[string]string, logger Logger) (*OutputsStreamHandler, error)
NewOutputsStreamHandler initilize OutputsStreamHandler cache with mpd connection.
func (*OutputsStreamHandler) ServeHTTP ¶ added in v0.12.0
func (a *OutputsStreamHandler) ServeHTTP(w http.ResponseWriter, r *http.Request)
ServeHTTP responses audio stream.
func (*OutputsStreamHandler) Stop ¶ added in v0.12.0
func (a *OutputsStreamHandler) Stop()
Stop closes audio streams.
type PlaylistHandler ¶ added in v0.12.0
type PlaylistHandler struct {
// contains filtered or unexported fields
}
PlaylistHandler provides current playlist sort function.
func NewPlaylistHandler ¶ added in v0.12.0
func NewPlaylistHandler(mpd MPDPlaylist, config *Config) (*PlaylistHandler, error)
func (*PlaylistHandler) Changed ¶ added in v0.12.0
func (a *PlaylistHandler) Changed() <-chan struct{}
Changed returns library song list update event chan.
func (*PlaylistHandler) Close ¶ added in v0.12.0
func (a *PlaylistHandler) Close()
Close closes update event chan.
func (*PlaylistHandler) ServeHTTP ¶ added in v0.12.0
func (a *PlaylistHandler) ServeHTTP(w http.ResponseWriter, r *http.Request)
func (*PlaylistHandler) Shutdown ¶ added in v0.12.0
func (a *PlaylistHandler) Shutdown(ctx context.Context) error
Shutdown waits playlist updates. Shutdown does not allow no playlist updates request.
func (*PlaylistHandler) UpdateCurrent ¶ added in v0.12.0
func (a *PlaylistHandler) UpdateCurrent(pos int) error
func (*PlaylistHandler) UpdateLibrarySongs ¶ added in v0.12.0
func (a *PlaylistHandler) UpdateLibrarySongs(i []map[string][]string)
func (*PlaylistHandler) UpdatePlaylistSongs ¶ added in v0.12.0
func (a *PlaylistHandler) UpdatePlaylistSongs(i []map[string][]string)
type PlaylistSongsHandler ¶ added in v0.12.0
type PlaylistSongsHandler struct {
// contains filtered or unexported fields
}
func NewPlaylistSongsHandler ¶ added in v0.12.0
func NewPlaylistSongsHandler(mpd MPDPlaylistSongs, songsHook func([]map[string][]string) []map[string][]string) (*PlaylistSongsHandler, error)
func (*PlaylistSongsHandler) Cache ¶ added in v0.12.0
func (a *PlaylistSongsHandler) Cache() []map[string][]string
func (*PlaylistSongsHandler) Changed ¶ added in v0.12.0
func (a *PlaylistSongsHandler) Changed() <-chan struct{}
Changed returns neighbors list update event chan.
func (*PlaylistSongsHandler) Close ¶ added in v0.12.0
func (a *PlaylistSongsHandler) Close()
Close closes update event chan.
func (*PlaylistSongsHandler) ServeHTTP ¶ added in v0.12.0
func (a *PlaylistSongsHandler) ServeHTTP(w http.ResponseWriter, r *http.Request)
ServeHTTP responses neighbors list as json format.
type StatsHandler ¶ added in v0.12.0
type StatsHandler struct {
// contains filtered or unexported fields
}
StatsHandler provides mpd stats.
func NewStatsHandler ¶ added in v0.12.0
func NewStatsHandler(mpd MPDStats) (*StatsHandler, error)
NewStatsHandler initilize Stats cache with mpd connection.
func (*StatsHandler) Changed ¶ added in v0.12.0
func (a *StatsHandler) Changed() <-chan struct{}
Changed returns stats update event chan.
func (*StatsHandler) Close ¶ added in v0.12.0
func (a *StatsHandler) Close()
Close closes update event chan.
func (*StatsHandler) ServeHTTP ¶ added in v0.12.0
func (a *StatsHandler) ServeHTTP(w http.ResponseWriter, r *http.Request)
ServeHTTP responses stats as json format.
type Status ¶ added in v0.12.0
type Status struct { Volume *int `json:"volume,omitempty"` Repeat *bool `json:"repeat,omitempty"` Random *bool `json:"random,omitempty"` Single *bool `json:"single,omitempty"` Oneshot *bool `json:"oneshot,omitempty"` Consume *bool `json:"consume,omitempty"` State *string `json:"state,omitempty"` SongElapsed *float64 `json:"song_elapsed,omitempty"` ReplayGain *string `json:"replay_gain,omitempty"` Crossfade *int `json:"crossfade,omitempty"` Updating bool `json:"-"` Error *string `json:"-"` Song *int `json:"-"` }
type StatusHandler ¶ added in v0.12.0
type StatusHandler struct {
// contains filtered or unexported fields
}
func NewStatusHandler ¶ added in v0.12.0
func NewStatusHandler(mpd MPDStatus) (*StatusHandler, error)
func (*StatusHandler) BroadCast ¶ added in v0.12.0
func (a *StatusHandler) BroadCast(s string)
Broadcast broadcasts messages to websocket mpds.
func (*StatusHandler) Cache ¶ added in v0.12.0
func (a *StatusHandler) Cache() *Status
func (*StatusHandler) Changed ¶ added in v0.12.0
func (a *StatusHandler) Changed() <-chan struct{}
Changed returns status update event chan.
func (*StatusHandler) Close ¶ added in v0.12.0
func (a *StatusHandler) Close()
Close closes update event chan.
func (*StatusHandler) ServeHTTP ¶ added in v0.12.0
func (a *StatusHandler) ServeHTTP(w http.ResponseWriter, r *http.Request)
func (*StatusHandler) Update ¶ added in v0.12.0
func (a *StatusHandler) Update(ctx context.Context) error
func (*StatusHandler) UpdateOptions ¶ added in v0.12.0
func (a *StatusHandler) UpdateOptions(ctx context.Context) error
type StorageHandler ¶ added in v0.12.0
type StorageHandler struct {
// contains filtered or unexported fields
}
StorageHandler provides mount, unmount, list storage api.
func NewStorageHandler ¶ added in v0.12.0
func NewStorageHandler(mpd MPDStorage, logger Logger) (*StorageHandler, error)
func (*StorageHandler) Changed ¶ added in v0.12.0
func (a *StorageHandler) Changed() <-chan struct{}
Changed returns storage list update event chan.
func (*StorageHandler) Close ¶ added in v0.12.0
func (a *StorageHandler) Close()
Close closes update event chan.
func (*StorageHandler) ServeHTTP ¶ added in v0.12.0
func (a *StorageHandler) ServeHTTP(w http.ResponseWriter, r *http.Request)
ServeHTTP responses storage api.
type VersionHandler ¶ added in v0.12.0
type VersionHandler struct {
// contains filtered or unexported fields
}
func NewVersionHandler ¶ added in v0.12.0
func NewVersionHandler(mpd MPDVersion, version string) (*VersionHandler, error)
func (*VersionHandler) Changed ¶ added in v0.12.0
func (a *VersionHandler) Changed() <-chan struct{}
Changed returns version update event chan.
func (*VersionHandler) Close ¶ added in v0.12.0
func (a *VersionHandler) Close()
Close closes update event chan.
func (*VersionHandler) ServeHTTP ¶ added in v0.12.0
func (a *VersionHandler) ServeHTTP(w http.ResponseWriter, r *http.Request)
ServeHTTP responses version as json format.
func (*VersionHandler) Update ¶ added in v0.12.0
func (a *VersionHandler) Update() error
func (*VersionHandler) UpdateNoMPD ¶ added in v0.12.0
func (a *VersionHandler) UpdateNoMPD() error