@@ -30,6 +30,7 @@ public class ArtistManager(
3030 public CancellationTokenSource ? GlobalCancellationTokenSource { get ; private set ; }
3131 public IMediaPlayer MediaPlayer { get ; } = mediaPlayer ;
3232 public IPlayable ? PlayingPlayable { get ; set ; }
33+
3334 public async Task < List < IPlayable > > GetPlayables ( )
3435 {
3536 var result = await Task . Run ( GetArtists ) ;
@@ -72,6 +73,32 @@ public void StartPlayable(IPlayable artist)
7273 } ) ;
7374 }
7475
76+ public event Action < bool > PlaybackStateChanged
77+ {
78+ add => player . PlaybackStateChanged += value ;
79+ remove => player . PlaybackStateChanged -= value ;
80+ }
81+
82+ public event Action TrackChanged
83+ {
84+ add => player . TrackChanged += value ;
85+ remove => player . TrackChanged -= value ;
86+ }
87+
88+ public event Action < bool > ShuffleChanged
89+ {
90+ add => _settings . Avalonix . ShuffleChanged += value ;
91+ remove => _settings . Avalonix . ShuffleChanged -= value ;
92+ }
93+
94+ public event Action < bool > LoopChanged
95+ {
96+ add => _settings . Avalonix . LoopChanged += value ;
97+ remove => _settings . Avalonix . LoopChanged -= value ;
98+ }
99+
100+ public event Action ? PlayableChanged ;
101+
75102 private async Task < List < Artist > > GetArtists ( )
76103 {
77104 await Task . Run ( LoadTracks ) ;
@@ -85,12 +112,12 @@ private async Task<List<Artist>> GetArtists()
85112 var allValidTracks = _tracks . Where ( track =>
86113 ! string . IsNullOrEmpty ( track . Metadata . Artist ) ) ;
87114
88- var albumGroups = allValidTracks . GroupBy ( track => new { track . Metadata . Artist } ) ;
115+ var albumGroups = allValidTracks . GroupBy ( track => new { track . Metadata . Artist } ) ;
89116
90117 return albumGroups . Select ( group =>
91118 new Artist ( group . ToList ( ) , player , logger , settingsManager . Settings . Avalonix . PlaySettings ) ) . ToList ( ) ;
92119 }
93-
120+
94121 private async Task LoadTracks ( )
95122 {
96123 var paths = diskManager . GetMusicFiles ( ) ;
@@ -111,30 +138,4 @@ private async Task LoadTracks()
111138 _tracks . AddRange ( tracks ) ;
112139 _tracksLoaded = true ;
113140 }
114-
115- public event Action < bool > PlaybackStateChanged
116- {
117- add => player . PlaybackStateChanged += value ;
118- remove => player . PlaybackStateChanged -= value ;
119- }
120-
121- public event Action TrackChanged
122- {
123- add => player . TrackChanged += value ;
124- remove => player . TrackChanged -= value ;
125- }
126-
127- public event Action < bool > ShuffleChanged
128- {
129- add => _settings . Avalonix . ShuffleChanged += value ;
130- remove => _settings . Avalonix . ShuffleChanged -= value ;
131- }
132-
133- public event Action < bool > LoopChanged
134- {
135- add => _settings . Avalonix . LoopChanged += value ;
136- remove => _settings . Avalonix . LoopChanged -= value ;
137- }
138-
139- public event Action ? PlayableChanged ;
140141}
0 commit comments