use crate::state::{
AlbumId, Category, ContextId, Item, ItemId, PlayableId, Playback, PlaylistId, TrackId,
};
#[derive(Clone, Debug)]
pub enum PlayerRequest {
NextTrack,
PreviousTrack,
Resume,
Pause,
ResumePause,
SeekTrack(chrono::Duration),
Repeat,
Shuffle,
Volume(u8),
ToggleMute,
TransferPlayback(String, bool),
StartPlayback(Playback, Option<bool>),
}
#[derive(Clone, Debug)]
pub enum ClientRequest {
GetCurrentUser,
GetDevices,
GetBrowseCategories,
GetBrowseCategoryPlaylists(Category),
GetUserPlaylists,
GetUserSavedAlbums,
GetUserSavedShows,
GetUserFollowedArtists,
GetContext(ContextId),
GetCurrentPlayback,
Search(String),
AddPlayableToQueue(PlayableId<'static>),
AddAlbumToQueue(AlbumId<'static>),
AddPlayableToPlaylist(PlaylistId<'static>, PlayableId<'static>),
DeleteTrackFromPlaylist(PlaylistId<'static>, TrackId<'static>),
ReorderPlaylistItems {
playlist_id: PlaylistId<'static>,
insert_index: usize,
range_start: usize,
range_length: Option<usize>,
snapshot_id: Option<String>,
},
AddToLibrary(Item),
DeleteFromLibrary(ItemId),
Player(PlayerRequest),
GetCurrentUserQueue,
GetLyrics {
track_id: TrackId<'static>,
},
#[cfg(feature = "streaming")]
RestartIntegratedClient,
CreatePlaylist {
playlist_name: String,
public: bool,
collab: bool,
desc: String,
},
}