public static ReadWriteAudioServiceData Start(string path, IAudioServiceBase service)
        {
            ReadWriteAudioServiceData dataService = new ReadWriteAudioServiceData(path, service);

            dataService.Init();
            return(dataService);
        }
Exemple #2
0
 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;
 }
Exemple #3
0
        public override Task SetService(IAudioServiceBase service, BuildStatusToken statusToken)
        {
            Unsubscribe(Service);
            Service = service;
            Subscribe(Service);

            return(SyncService(statusToken));
        }
Exemple #4
0
 public void Enqueue(IAudioServiceBase service)
 {
     Enqueue(service.SourcePlaylists);
     Enqueue(service.Playlists);
     Enqueue(service.CurrentPlaylist?.ID ?? Guid.Empty);
     Enqueue(service.Volume);
     Enqueue((int)service.PlayState);
 }
Exemple #5
0
        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);
     }
 }
Exemple #7
0
        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();
        }
Exemple #8
0
        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;
 }