public PlaylistPlayer(HohoemaPlaylist hohoemaPlaylist, PlaylistSettings playlistSettings) { HohoemaPlaylist = hohoemaPlaylist; PlaylistSettings = playlistSettings; _SettingsObserveDisposer = Observable.Merge( PlaylistSettings.ObserveProperty(x => x.IsShuffleEnable).ToUnit(), PlaylistSettings.ObserveProperty(x => x.RepeatMode).ToUnit(), PlaylistSettings.ObserveProperty(x => x.IsReverseModeEnable).ToUnit() ) .Subscribe(async _ => { using (var releaser = await _PlaylistUpdateLock.LockAsync()) { _RepeatMode = PlaylistSettings.RepeatMode; ResetRandmizedItems(); CurrentIndex = PlaylistSettings.IsShuffleEnable ? 0 : (SourceItems?.IndexOf(Current) ?? 0); RaisePropertyChanged(nameof(CanGoBack)); RaisePropertyChanged(nameof(CanGoNext)); } }); }
public PlaylistPlayer(HohoemaPlaylist hohoemaPlaylist, PlaylistSettings playlistSettings) { HohoemaPlaylist = hohoemaPlaylist; PlaylistSettings = playlistSettings; _SettingsObserveDisposer = Observable.Merge( PlaylistSettings.ObserveProperty(x => x.IsShuffleEnable).ToUnit(), PlaylistSettings.ObserveProperty(x => x.RepeatMode).ToUnit() ) .Subscribe(_ => { ResetPlayer(); }); }