public static ReadWriteAudioServiceData Start(string path, IAudioServiceBase service) { ReadWriteAudioServiceData dataService = new ReadWriteAudioServiceData(path, service); dataService.Init(); return(dataService); }
public AudioServiceData(IAudioServiceBase service) { SourcePlaylists = service.SourcePlaylists.Select(p => new SourcePlaylistData(p)).ToArray(); Playlists = service.Playlists.Select(p => new PlaylistData(p)).ToArray(); CurrentPlaylistID = service.CurrentPlaylist?.ID.ToString(); Volume = service.Volume; }
public override Task SetService(IAudioServiceBase service, BuildStatusToken statusToken) { Unsubscribe(Service); Service = service; Subscribe(Service); return(SyncService(statusToken)); }
public void Enqueue(IAudioServiceBase service) { Enqueue(service.SourcePlaylists); Enqueue(service.Playlists); Enqueue(service.CurrentPlaylist?.ID ?? Guid.Empty); Enqueue(service.Volume); Enqueue((int)service.PlayState); }
private void Subscribe(IAudioServiceBase service) { if (service == null) { return; } service.AudioDataChanged += Service_AudioDataChanged; }
public static IEnumerable <IPlaylistBase> GetAllPlaylists(this IAudioServiceBase service) { foreach (ISourcePlaylist playlist in service.SourcePlaylists) { yield return(playlist); } foreach (IPlaylist playlist in service.Playlists) { yield return(playlist); } }
public void DequeueService(IAudioServiceBase service, Func <Guid, ISourcePlaylistBase> createSourcePlaylistFunc, Func <Guid, IPlaylistBase> createPlaylistFunc) { service.SourcePlaylists = DequeueSourcePlaylists(createSourcePlaylistFunc); service.Playlists = DequeuePlaylists(createPlaylistFunc); Guid currentPlaylistId = DequeueGuid(); service.CurrentPlaylist = service.GetAllPlaylists() .FirstOrDefault(p => p.ID == currentPlaylistId) ?? service.GetAllPlaylists().FirstOrDefault(); service.Volume = DequeueFloat(); service.PlayState = (PlaybackState)DequeueInt(); }
public override async Task SetService(IAudioServiceBase service, BuildStatusToken statusToken) { try { IsSyncing = true; Unsubscribe(Service); Service = service; InitPlaylists(); await SyncService(statusToken, false); } finally { IsSyncing = false; } }
private ReadWriteAudioServiceData(string path, IAudioServiceBase service) { this.path = path; Service = service; }