Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions daemon/app.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ type App struct {
log librespot.Logger
cfg *Config

stateStore StateStore
stateStore librespot.StateStore

client *http.Client

Expand Down Expand Up @@ -219,7 +219,7 @@ func (app *App) newAppPlayer(ctx context.Context, creds any) (_ *AppPlayer, err
ClientToken: app.clientToken,
Resolver: app.resolver,
Client: app.client,
AppState: app.state,
StateStore: app.stateStore,
Credentials: creds,
}); err != nil {
return nil, err
Expand Down
2 changes: 1 addition & 1 deletion daemon/options.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import (
type Options struct {
Logger librespot.Logger
Config *Config
StateStore StateStore
StateStore librespot.StateStore

APIServer ApiServer
MediaPlayer mpris.Server
Expand Down
11 changes: 0 additions & 11 deletions daemon/state_store.go

This file was deleted.

2 changes: 1 addition & 1 deletion events/impl/impl.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ import (
type Impl struct {
}

func (p Impl) NewEventManager(librespot.Logger, *librespot.AppState, *mercury.Client, *spclient.Spclient, string) (player.EventManager, error) {
func (p Impl) NewEventManager(librespot.Logger, librespot.StateStore, *mercury.Client, *spclient.Spclient, string) (player.EventManager, error) {
return dummyEventManager{}, nil
}

Expand Down
2 changes: 1 addition & 1 deletion events/plugin/interface.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,5 +8,5 @@ import (
)

type Interface interface {
NewEventManager(log librespot.Logger, state *librespot.AppState, hg *mercury.Client, sp *spclient.Spclient, username string) (player.EventManager, error)
NewEventManager(log librespot.Logger, stateStore librespot.StateStore, hg *mercury.Client, sp *spclient.Spclient, username string) (player.EventManager, error)
}
7 changes: 4 additions & 3 deletions session/options.go
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
package session

import (
"net/http"

librespot "github.com/devgianlu/go-librespot"
"github.com/devgianlu/go-librespot/apresolve"
devicespb "github.com/devgianlu/go-librespot/proto/spotify/connectstate/devices"
"net/http"
)

type Options struct {
Expand All @@ -26,8 +27,8 @@ type Options struct {
// Client is the HTTP client to use for the session, leave empty for a new one.
Client *http.Client

// AppState is the app state to use.
AppState *librespot.AppState
// StateStore is the state store to use for the session.
StateStore librespot.StateStore
}

type InteractiveCredentials struct {
Expand Down
2 changes: 1 addition & 1 deletion session/session.go
Original file line number Diff line number Diff line change
Expand Up @@ -201,7 +201,7 @@ func NewSessionFromOptions(ctx context.Context, opts *Options) (*Session, error)
s.audioKey = audio.NewAudioKeyProvider(opts.Log, s.ap)

// init event sender
s.events, err = events.Plugin.NewEventManager(opts.Log, opts.AppState, s.hg, s.sp, s.ap.Username())
s.events, err = events.Plugin.NewEventManager(opts.Log, opts.StateStore, s.hg, s.sp, s.ap.Username())
if err != nil {
return nil, fmt.Errorf("failed initializing event sender: %w", err)
}
Expand Down
5 changes: 5 additions & 0 deletions state.go
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,11 @@ import (
"sync"
)

type StateStore interface {
Load() (*AppState, error)
Save(*AppState) error
}

type AppState struct {
sync.Mutex

Expand Down
Loading