mediaqueue

package
v0.0.0-...-e9c30ff Latest Latest
Warning

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

Go to latest
Published: Apr 20, 2024 License: Apache-2.0 Imports: 26 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrInsufficientPermissionsToRemoveEntry = errors.New("insufficient permissions to remove queue entry")

ErrInsufficientPermissionsToRemoveEntry indicates the user has insufficient permissions to remove an entry

Functions

This section is empty.

Types

type EntryAddedEventArg

type EntryAddedEventArg struct {
	Index   int
	AddType EntryAddedPlacement
	Entry   media.QueueEntry
}

EntryAddedEventArg is the argument of the event for when a queue entry is added

type EntryAddedPlacement

type EntryAddedPlacement int

EntryAddedPlacement is whether the entry was added to play now/play next/play at the end

const (
	// EntryAddedPlacementPlayNow is used when the new queue entry is skipping the previously playing entry
	EntryAddedPlacementPlayNow EntryAddedPlacement = 0

	// EntryAddedPlacementPlayNext is used when the new queue entry is added immediately after the currently playing entry
	EntryAddedPlacementPlayNext EntryAddedPlacement = 1

	// EntryAddedPlacementEnqueue is used when the new queue entry is added to the end of the queue
	EntryAddedPlacementEnqueue EntryAddedPlacement = 2
)

type EntryMovedEventArg

type EntryMovedEventArg struct {
	PreviousIndex int
	CurrentIndex  int
	User          auth.User
	Entry         media.QueueEntry
	Up            bool
}

EntryMovedEventArg is the argument of the event for when a queue entry is moved

type EntryRemovedEventArg

type EntryRemovedEventArg struct {
	Index       int
	Entry       media.QueueEntry
	SelfRemoval bool
}

EntryRemovedEventArg is the argument of the event for when a queue entry is removed

type MediaQueue

type MediaQueue struct {
	// contains filtered or unexported fields
}

MediaQueue queues media for synced broadcast

func New

func New(ctx context.Context, log *log.Logger, statsClient *statsd.Client, persistenceFile string, mediaProviders map[types.MediaType]media.Provider) (*MediaQueue, error)

func (*MediaQueue) CanMoveEntryByIndex

func (q *MediaQueue) CanMoveEntryByIndex(index int, user auth.User, up bool) bool

func (*MediaQueue) ClearInsertCursor

func (q *MediaQueue) ClearInsertCursor()

func (*MediaQueue) CountEnqueuedOrRecentlyPlayedMediaRequestedBy

func (q *MediaQueue) CountEnqueuedOrRecentlyPlayedMediaRequestedBy(ctx context.Context, requester auth.User) (int, bool, error)

CountEnqueuedOrRecentlyPlayedMediaRequestedBy returns the number of entries which are currently in queue or which have been recently enqueued by the specified user.

func (*MediaQueue) CurrentlyPlaying

func (q *MediaQueue) CurrentlyPlaying() (media.QueueEntry, bool)

func (*MediaQueue) Enqueue

func (q *MediaQueue) Enqueue(newEntry media.QueueEntry)

func (*MediaQueue) Entries

func (q *MediaQueue) Entries() []media.QueueEntry

func (*MediaQueue) EntryAdded

func (q *MediaQueue) EntryAdded() event.Event[EntryAddedEventArg]

EntryAdded is the event that is fired when an entry is added to the queue

func (*MediaQueue) EntryMoved

func (q *MediaQueue) EntryMoved() event.Event[EntryMovedEventArg]

EntryMoved is the event that is fired when a queue entry is moved up or down

func (*MediaQueue) EntryRemoved

func (q *MediaQueue) EntryRemoved() event.Event[EntryRemovedEventArg]

EntryRemoved is the event that is fired when an entry is removed by any means: because it finished playing, because it was skipped, or because it was removed from the queue before it could begin playing

func (*MediaQueue) EntryReorderingAllowed

func (q *MediaQueue) EntryReorderingAllowed() bool

func (*MediaQueue) InsertCursor

func (q *MediaQueue) InsertCursor() (string, bool)

func (*MediaQueue) Length

func (q *MediaQueue) Length() int

func (*MediaQueue) LengthUpToCursor

func (q *MediaQueue) LengthUpToCursor() int

func (*MediaQueue) MediaChanged

func (q *MediaQueue) MediaChanged() event.Event[media.QueueEntry]

MediaChanged is the event that is fired when the currently playing entry changes

func (*MediaQueue) MoveEntry

func (q *MediaQueue) MoveEntry(entryID string, user auth.User, up bool) error

func (*MediaQueue) PlayAfterCurrent

func (q *MediaQueue) PlayAfterCurrent(entry media.QueueEntry)

func (*MediaQueue) PlayNow

func (q *MediaQueue) PlayNow(entry media.QueueEntry)

func (*MediaQueue) PlayingSince

func (q *MediaQueue) PlayingSince() time.Time

func (*MediaQueue) ProcessQueueWorker

func (q *MediaQueue) ProcessQueueWorker(ctx context.Context)

func (*MediaQueue) ProduceCheckpointForAPI

func (q *MediaQueue) ProduceCheckpointForAPI(ctx context.Context, userSerializer auth.APIUserSerializer, needsTitle bool) *proto.MediaConsumptionCheckpoint

func (*MediaQueue) QueueUpdated

func (q *MediaQueue) QueueUpdated() event.NoArgEvent

QueueUpdated is the event that is fired when the queue is updated in any way

func (*MediaQueue) RemovalOfOwnEntriesAllowed

func (q *MediaQueue) RemovalOfOwnEntriesAllowed() bool

func (*MediaQueue) RemoveEntry

func (q *MediaQueue) RemoveEntry(entryID string) (media.QueueEntry, error)

func (*MediaQueue) RemoveOwnEntry

func (q *MediaQueue) RemoveOwnEntry(ctx context.Context, entryID string, user auth.User) error

func (*MediaQueue) SetEntryReorderingAllowed

func (q *MediaQueue) SetEntryReorderingAllowed(allowed bool)

func (*MediaQueue) SetInsertCursor

func (q *MediaQueue) SetInsertCursor(entryID string) error

func (*MediaQueue) SetRemovalOfOwnEntriesAllowed

func (q *MediaQueue) SetRemovalOfOwnEntriesAllowed(allowed bool)

func (*MediaQueue) SetSkippingEnabled

func (q *MediaQueue) SetSkippingEnabled(enabled bool)

func (*MediaQueue) SkipCurrentEntry

func (q *MediaQueue) SkipCurrentEntry()

func (*MediaQueue) SkippingAllowedUpdated

func (q *MediaQueue) SkippingAllowedUpdated() event.NoArgEvent

SkippingAllowedUpdated is the event that is fired when the ability to skip entries is enabled or disabled

func (*MediaQueue) SkippingEnabled

func (q *MediaQueue) SkippingEnabled() bool

func (*MediaQueue) UserCanRemoveOwnEntries

func (q *MediaQueue) UserCanRemoveOwnEntries(ctx context.Context, user auth.User) (bool, error)

Jump to

Keyboard shortcuts

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