player

package
v0.0.0-...-7857e79 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 11, 2024 License: MIT Imports: 14 Imported by: 0

Documentation

Overview

Package player provides audio playback management.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func GetMD5Hash

func GetMD5Hash(text string) string

Types

type IPlayer

type IPlayer interface {
	Play(startAt int, song *Song) error
	Skip() error
	Enqueue(song *Song)
	Dequeue() (*Song, error)
	ClearQueue() error
	Stop() error
	Pause() error
	Unpause(channelID string) error
	Lock()
	Unlock()
	GetCurrentStatus() PlaybackStatus
	SetCurrentStatus(status PlaybackStatus)
	GetSongQueue() []*Song
	SetSongQueue(queue []*Song)
	GetVoiceConnection() *discordgo.VoiceConnection
	SetVoiceConnection(voiceConnection *discordgo.VoiceConnection)
	GetEncodingSession() *dca.EncodeSession
	GetStreamingSession() *dca.StreamingSession
	GetCurrentSong() *Song
	SetCurrentSong(song *Song)
	GetChannelID() string
	SetChannelID(channelID string)
	GetDiscordSession() *discordgo.Session
	SetDiscordSession(session *discordgo.Session)
	GetGuildID() string
	SetGuildID(guildID string)
}

func NewPlayer

func NewPlayer(guildID string, session *discordgo.Session) IPlayer

type PlaybackStatus

type PlaybackStatus int32
const (
	StatusResting PlaybackStatus = iota
	StatusPlaying
	StatusPaused
	StatusError
)

func (PlaybackStatus) String

func (status PlaybackStatus) String() string

func (PlaybackStatus) StringEmoji

func (status PlaybackStatus) StringEmoji() string

type Player

type Player struct {
	sync.Mutex

	SkipInterrupt          chan bool
	StopInterrupt          chan bool
	SwitchChannelInterrupt chan bool
	// contains filtered or unexported fields
}

func (*Player) ClearQueue

func (p *Player) ClearQueue() error

func (*Player) Dequeue

func (p *Player) Dequeue() (*Song, error)

func (*Player) Enqueue

func (p *Player) Enqueue(song *Song)

func (*Player) GetChannelID

func (p *Player) GetChannelID() string

func (*Player) GetCurrentSong

func (p *Player) GetCurrentSong() *Song

func (*Player) GetCurrentStatus

func (p *Player) GetCurrentStatus() PlaybackStatus

func (*Player) GetDiscordSession

func (p *Player) GetDiscordSession() *discordgo.Session

func (*Player) GetEncodingSession

func (p *Player) GetEncodingSession() *dca.EncodeSession

func (*Player) GetGuildID

func (p *Player) GetGuildID() string

func (*Player) GetHistory

func (p *Player) GetHistory() history.IHistory

func (*Player) GetSongQueue

func (p *Player) GetSongQueue() []*Song

func (*Player) GetStreamingSession

func (p *Player) GetStreamingSession() *dca.StreamingSession

func (*Player) GetVoiceConnection

func (p *Player) GetVoiceConnection() *discordgo.VoiceConnection

func (*Player) Lock

func (p *Player) Lock()

func (*Player) Pause

func (p *Player) Pause() error

func (*Player) Play

func (p *Player) Play(startAt int, song *Song) error

func (*Player) SetChannelID

func (p *Player) SetChannelID(channelID string)

func (*Player) SetCurrentSong

func (p *Player) SetCurrentSong(song *Song)

func (*Player) SetCurrentStatus

func (p *Player) SetCurrentStatus(status PlaybackStatus)

func (*Player) SetDiscordSession

func (p *Player) SetDiscordSession(session *discordgo.Session)

func (*Player) SetEncodingSession

func (p *Player) SetEncodingSession(encoding *dca.EncodeSession)

func (*Player) SetGuildID

func (p *Player) SetGuildID(guildID string)

func (*Player) SetSongQueue

func (p *Player) SetSongQueue(queue []*Song)

func (*Player) SetStreamingSession

func (p *Player) SetStreamingSession(stream *dca.StreamingSession)

func (*Player) SetVoiceConnection

func (p *Player) SetVoiceConnection(vc *discordgo.VoiceConnection)

func (*Player) Skip

func (p *Player) Skip() error

func (*Player) Stop

func (p *Player) Stop() error

func (*Player) Unlock

func (p *Player) Unlock()

func (*Player) Unpause

func (p *Player) Unpause(channelID string) error

type Song

type Song struct {
	Title     string        // Title of the song
	URL       string        // URL provided by the user
	Filepath  string        // Path/URL for downloading the song
	Thumbnail Thumbnail     // Thumbnail image for the song
	Duration  time.Duration // Duration of the song
	SongID    string        // Unique ID for the song
	Source    SongSource    // Source type of the song
}

type SongSource

type SongSource int32
const (
	SourceYouTube SongSource = iota
	SourceStream
	SourceLocalFile
)

func (SongSource) String

func (source SongSource) String() string

type Thumbnail

type Thumbnail struct {
	URL    string
	Width  uint
	Height uint
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL