Esempio n. 1
0
 public Playlist(IPlaylistProvider <Playlist <TMedia>, TMedia> playlistProvider)
 {
     _playlistProvider = playlistProvider;
     _provider         = _playlistProvider as IQueryProvider;
     _expression       = Expression.Constant(this);
     // _medias = _playlistProvider.Pull().ToList();
 }
Esempio n. 2
0
 public Playlist(IQueryProvider playlistProvider, Expression expression)
 {
     _playlistProvider = playlistProvider as IPlaylistProvider <Playlist <TMedia>, TMedia>;
     _provider         = playlistProvider;
     _expression       = expression;
     // _medias = _playlistProvider.Pull().ToList();
 }
Esempio n. 3
0
        public ChannelHandler(IPlaylistProvider playlistProvider, IChatProviderFactory chatProviderFactory, string name)
        {
            _chatProviderFactory = chatProviderFactory;
            Playlist             = playlistProvider;
            SongsByID            = new Dictionary <string, Song>();

            Name = name;
        }
        private void LoadPlaylists()
        {
            if (CurrentActivity == null)
            {
                return;
            }
            else if (CurrentActivity.State != ActivityState.Connected)
            {
                Hyena.Log.Debug(String.Format("activity state {0} is invalid.", CurrentActivity.State));
                return;
            }
            else if (CurrentState != State.LoadedMetadata)
            {
                Hyena.Log.Debug(String.Format("state {0} is invalid.", CurrentState));
                return;
            }

            try {
                IMetadataProviderService service = CurrentActivity.GetDBusObject <IMetadataProviderService> (MetadataProviderService.BusName, MetadataProviderService.ObjectPath);
                int [] playlist_ids = service.GetPlaylistIds(LibraryType.Music);

                download_monitor.Reset();

                if (playlist_ids.Length == 0)
                {
                    CurrentState = State.Loaded;
                }
                else
                {
                    foreach (int id in playlist_ids)
                    {
                        string            playlist_path     = service.CreatePlaylistProvider(id).ToString();
                        IPlaylistProvider playlist_provider = CurrentActivity.GetDBusObject <IPlaylistProvider>
                                                                  (PlaylistProvider.BusName, playlist_path);

                        LibraryDownload download = new LibraryDownload();
                        download_monitor.Add(playlist_path, download);
                        //download_monitor.AssociateObject (playlist_path, new ContactPlaylistSource (playlist_provider.GetName (), this));

                        download.ProcessIncomingPayloads(delegate(object sender, object [] o) {
                            OnPlaylistTracksDownloaded(new DownloadedTracksEventArgs(sender as LibraryDownload, o, playlist_provider.GetName()));
                        });

                        playlist_provider.ChunkReady += OnPlaylistChunkReady;
                        playlist_provider.GetChunks(chunk_length);
                    }

                    download_monitor.Start();
                }
            } catch (Exception e) {
                Hyena.Log.Warning(e);
                ResetState();
                OnError(new TubeManagerErrorEventArgs(ErrorReason.ErrorDuringPlaylistLoad));
            }
        }