Documentation ¶
Index ¶
- Variables
- type ErrorHandler
- type Firestore
- type MediaPlayer
- type MockPlayer
- func (m *MockPlayer) LoopStatus() bool
- func (m *MockPlayer) NowPlaying() *pkg.Song
- func (m *MockPlayer) Play(ctx context.Context, query, userID, guildID, channelID string) (*pkg.Song, error)
- func (m *MockPlayer) RadioStatus() bool
- func (m *MockPlayer) SetLoop(ctx context.Context, b bool)
- func (m *MockPlayer) SetRadio(ctx context.Context, b bool, guildID, channelID string) error
- func (m *MockPlayer) Skip(ctx context.Context)
- func (m *MockPlayer) SongStatus() pkg.SessionStats
- func (m *MockPlayer) Status() pkg.PlayerStatus
- type Player
- func (p *Player) Connect(ctx context.Context, guildID, channelID string)
- func (p *Player) Disconnect(ctx context.Context)
- func (p *Player) LoopStatus() bool
- func (p *Player) NowPlaying() *pkg.Song
- func (p *Player) Play(ctx context.Context, s *pkg.Song)
- func (p *Player) SetLoop(ctx context.Context, b bool)
- func (p *Player) Skip(ctx context.Context)
- func (p *Player) SongStatus() pkg.SessionStats
- func (p *Player) Stop(ctx context.Context)
- func (p *Player) SubscribeOnErrors(h ErrorHandler)
- type Queue
- type Service
- func (s *Service) Disconnect(ctx context.Context)
- func (s *Service) Play(ctx context.Context, query, userID, guildID, channelID string) (*pkg.Song, error)
- func (s *Service) RadioStatus() bool
- func (s *Service) Random(ctx context.Context, n int) ([]*pkg.Song, error)
- func (s *Service) SetRadio(ctx context.Context, b bool, guildID, channelID string) error
- func (s *Service) Status() pkg.PlayerStatus
- func (s *Service) Stop(ctx context.Context)
- func (s *Service) SubscribeOnErrors(h ErrorHandler)
- type VoiceClient
- type YouTube
Constants ¶
This section is empty.
Variables ¶
View Source
var ErrNotConnected = errors.New("player not connected")
View Source
var ErrQueueEmpty = errors.New("queue is empty")
Functions ¶
This section is empty.
Types ¶
type ErrorHandler ¶
type ErrorHandler func(err error)
type MediaPlayer ¶
type MediaPlayer interface { Process(requests <-chan *audio.SongRequest) <-chan error Stats() pkg.SessionStats IsPlaying() bool Stop() }
type MockPlayer ¶
type MockPlayer struct {
// contains filtered or unexported fields
}
func (*MockPlayer) LoopStatus ¶
func (m *MockPlayer) LoopStatus() bool
func (*MockPlayer) NowPlaying ¶
func (m *MockPlayer) NowPlaying() *pkg.Song
func (*MockPlayer) RadioStatus ¶
func (m *MockPlayer) RadioStatus() bool
func (*MockPlayer) Skip ¶
func (m *MockPlayer) Skip(ctx context.Context)
func (*MockPlayer) SongStatus ¶
func (m *MockPlayer) SongStatus() pkg.SessionStats
func (*MockPlayer) Status ¶
func (m *MockPlayer) Status() pkg.PlayerStatus
type Player ¶
type Player struct {
// contains filtered or unexported fields
}
Player all public methods are concurrent and most private methods are designed to be synchronous
func NewPlayer ¶
func NewPlayer(ctx context.Context, voice VoiceClient, audio MediaPlayer) *Player
func (*Player) Disconnect ¶
func (*Player) LoopStatus ¶
func (*Player) NowPlaying ¶
func (*Player) SongStatus ¶
func (p *Player) SongStatus() pkg.SessionStats
func (*Player) SubscribeOnErrors ¶
func (p *Player) SubscribeOnErrors(h ErrorHandler)
type Queue ¶
type Queue struct {
// contains filtered or unexported fields
}
func (*Queue) LoopStatus ¶
type Service ¶
type Service struct { *Player // contains filtered or unexported fields }
func NewMusicService ¶
func NewMusicService(ctx context.Context, storage Firestore, youtube YouTube, voice VoiceClient, audio MediaPlayer) *Service
func (*Service) Disconnect ¶
func (*Service) RadioStatus ¶
func (*Service) Status ¶
func (s *Service) Status() pkg.PlayerStatus
func (*Service) SubscribeOnErrors ¶
func (s *Service) SubscribeOnErrors(h ErrorHandler)
type VoiceClient ¶
Click to show internal directories.
Click to hide internal directories.