mirror of
https://gitlab.com/Kwoth/nadekobot.git
synced 2025-09-10 17:28:27 -04:00
39 lines
1.4 KiB
C#
39 lines
1.4 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Threading.Tasks;
|
|
using NadekoBot.Core.Services.Database.Models;
|
|
|
|
#nullable enable
|
|
namespace NadekoBot.Core.Modules.Music
|
|
{
|
|
public interface IMusicPlayer : IDisposable
|
|
{
|
|
float Volume { get; }
|
|
bool IsPaused { get; }
|
|
bool IsStopped { get; }
|
|
bool IsKilled { get; }
|
|
int CurrentIndex { get; }
|
|
public PlayerRepeatType Repeat { get; }
|
|
|
|
void Stop();
|
|
void Clear();
|
|
IReadOnlyCollection<IQueuedTrackInfo> GetQueuedTracks();
|
|
IQueuedTrackInfo? GetCurrentTrack(out int index);
|
|
void Next();
|
|
bool MoveTo(int index);
|
|
void SetVolume(int newVolume);
|
|
|
|
void Kill();
|
|
bool TryRemoveTrackAt(int index, out IQueuedTrackInfo? trackInfo);
|
|
|
|
|
|
Task<(IQueuedTrackInfo? QueuedTrack, int Index)> TryEnqueueTrackAsync(string query, string queuer, bool asNext, MusicPlatform? forcePlatform = null);
|
|
Task EnqueueManyAsync(IEnumerable<(string Query, MusicPlatform Platform)> queries, string queuer);
|
|
bool TogglePause();
|
|
IQueuedTrackInfo? MoveTrack(int from, int to);
|
|
void EnqueueTrack(ITrackInfo track, string queuer);
|
|
void EnqueueTracks(IEnumerable<ITrackInfo> tracks, string queuer);
|
|
void SetRepeat(PlayerRepeatType type);
|
|
void ShuffleQueue();
|
|
}
|
|
} |