Files
nadekobot/NadekoBot.Core/Modules/Music/Common/IMusicQueue.cs
2021-09-06 21:29:22 +02:00

27 lines
898 B
C#

#nullable enable
using System;
using System.Collections.Generic;
namespace NadekoBot.Core.Modules.Music
{
public interface IMusicQueue
{
IQueuedTrackInfo Enqueue(ITrackInfo trackInfo, string queuer, out int index);
IQueuedTrackInfo EnqueueNext(ITrackInfo song, string queuer, out int index);
void EnqueueMany(IEnumerable<ITrackInfo> tracks, string queuer);
public IReadOnlyCollection<IQueuedTrackInfo> List();
IQueuedTrackInfo? GetCurrent(out int index);
void Advance();
void Clear();
bool SetIndex(int index);
bool TryRemoveAt(int index, out IQueuedTrackInfo? trackInfo, out bool isCurrent);
int Index { get; }
int Count { get; }
void RemoveCurrent();
IQueuedTrackInfo? MoveTrack(int from, int to);
void Shuffle(Random rng);
bool IsLast();
}
}