mxl_player_components/ui/playlist/
messages.rs

1use mxl_relm4_components::relm4::prelude::DynamicIndex;
2use std::path::PathBuf;
3
4#[derive(Debug, Clone, Copy)]
5pub enum PlaylistState {
6    Stopped,
7    Playing,
8    Stopping,
9}
10
11#[derive(Debug, Clone, Copy, Default)]
12pub enum RepeatMode {
13    #[default]
14    Off,
15    All,
16}
17
18#[derive(Debug, Clone, Copy)]
19pub enum SortOrder {
20    StartTime,
21    ShortUri,
22}
23
24#[derive(Debug, Clone, Copy)]
25pub enum PlaylistChange {
26    Added,
27    Removed,
28    Updated,
29    Reordered,
30}
31
32#[derive(Debug)]
33pub enum PlaylistComponentInput {
34    Start,
35    Stop,
36    Previous,
37    Next,
38    PlayerPlaying,
39    PlayerStopped,
40    Activate(usize),
41    Switch(DynamicIndex),
42    EndOfPlaylist(DynamicIndex),
43    Add(Vec<PathBuf>),
44    AddBefore(DynamicIndex, Vec<PathBuf>),
45    AddAfter(DynamicIndex, Vec<PathBuf>),
46    Remove(DynamicIndex),
47    Updated(DynamicIndex),
48    Move(DynamicIndex, usize),
49    FetchMetadata,
50    FileChooserRequest,
51    Sort(SortOrder),
52    ToggleRepeat,
53    FetchMetadataForUri(
54        String,
55        mxl_relm4_components::relm4::Sender<super::factory::PlaylistEntryInput>,
56    ),
57}
58
59#[derive(Debug)]
60pub enum PlaylistComponentOutput {
61    PlaylistChanged(PlaylistChange),
62    SwitchUri(String),
63    EndOfPlaylist,
64    StateChanged(PlaylistState),
65    FileChooserRequest,
66}
67
68#[derive(Debug)]
69pub enum PlaylistCommandOutput {
70    ShowPlaceholder(bool),
71}