コード例 #1
0
ファイル: MetadataService.cs プロジェクト: pva-br/Dopamine
        public MetadataService(ICacheService cacheService, IPlaybackService playbackService, ITrackRepository trackRepository,
                               ITrackStatisticRepository trackStatisticRepository, IAlbumRepository albumRepository, IGenreRepository genreRepository,
                               IArtistRepository artistRepository, IFileMetadataFactory metadataFactory)
        {
            this.cacheService    = cacheService;
            this.playbackService = playbackService;

            this.trackStatisticRepository = trackStatisticRepository;
            this.trackRepository          = trackRepository;
            this.albumRepository          = albumRepository;
            this.genreRepository          = genreRepository;
            this.artistRepository         = artistRepository;
            this.metadataFactory          = metadataFactory;

            this.fileMetadataDictionary = new Dictionary <string, IFileMetadata>();

            this.updateFileMetadataTimer          = new Timer();
            this.updateFileMetadataTimer.Interval = this.updateFileMetadataLongTimeout;
            this.updateFileMetadataTimer.Elapsed += async(_, __) => await this.UpdateFileMetadataAsync();

            this.playbackService.PlaybackStopped += async(_, __) => await this.UpdateFileMetadataAsync();

            this.playbackService.PlaybackFailed += async(_, __) => await this.UpdateFileMetadataAsync();

            this.playbackService.PlaybackSuccess += async(_, __) => await this.UpdateFileMetadataAsync();
        }
コード例 #2
0
        public MetadataService(IPlaybackService playbackService, ICacheService cacheService, ITrackRepository trackRepository,
                               IAlbumArtworkRepository albumArtworkRepository, IFileMetadataFactory metadataFactory)
        {
            this.playbackService        = playbackService;
            this.cacheService           = cacheService;
            this.trackRepository        = trackRepository;
            this.albumArtworkRepository = albumArtworkRepository;
            this.metadataFactory        = metadataFactory;

            this.updater = new FileMetadataUpdater(this.playbackService, this.trackRepository);
        }
コード例 #3
0
ファイル: IndexingService.cs プロジェクト: tinycrate/Dopamine
        public IndexingService(ISQLiteConnectionFactory factory, ICacheService cacheService, ITrackRepository trackRepository,
                               IFolderRepository folderRepository, IFileMetadataFactory fileMetadataFactory)
        {
            this.cacheService        = cacheService;
            this.trackRepository     = trackRepository;
            this.folderRepository    = folderRepository;
            this.factory             = factory;
            this.fileMetadataFactory = fileMetadataFactory;

            this.watcherManager = new FolderWatcherManager(this.folderRepository);
            this.cache          = new IndexerCache(this.factory);

            SettingsClient.SettingChanged      += SettingsClient_SettingChanged;
            this.watcherManager.FoldersChanged += WatcherManager_FoldersChanged;

            this.isIndexing = false;
        }
コード例 #4
0
        public FileService(ICacheService cacheService, IFileMetadataFactory fileMetadataFactory,
                           ITrackRepository trackRepository, IContainerProvider container)
        {
            this.cacheService        = cacheService;
            this.fileMetadataFactory = fileMetadataFactory;
            this.trackRepository     = trackRepository;
            this.container           = container;

            // Unique identifier which will be used by this instance only to create cached artwork.
            // This prevents the cleanup function to delete artwork which is in use by this instance.
            this.instanceGuid = Guid.NewGuid().ToString();

            this.files                  = new List <string>();
            this.addFilesTimer          = new Timer();
            this.addFilesTimer.Interval = this.addFilesMilliseconds;
            this.addFilesTimer.Elapsed += AddFilesTimerElapsedHandler;
            this.DeleteFileArtworkFromCacheAsync(this.instanceGuid);
        }
コード例 #5
0
        public MetadataService(ICacheService cacheService, IPlaybackService playbackService, ITrackRepository trackRepository,
                               IFileMetadataFactory metadataFactory, IContainerProvider container)
        {
            this.cacheService    = cacheService;
            this.playbackService = playbackService;

            this.trackRepository = trackRepository;
            this.metadataFactory = metadataFactory;

            this.container = container;

            this.fileMetadataDictionary = new Dictionary <string, IFileMetadata>();

            this.updateFileMetadataTimer          = new Timer();
            this.updateFileMetadataTimer.Interval = this.updateFileMetadataLongTimeout;
            this.updateFileMetadataTimer.Elapsed += async(_, __) => await this.UpdateFileMetadataAsync();

            this.playbackService.PlaybackStopped += async(_, __) => await this.UpdateFileMetadataAsync();

            this.playbackService.PlaybackFailed += async(_, __) => await this.UpdateFileMetadataAsync();

            this.playbackService.PlaybackSuccess += async(_, __) => await this.UpdateFileMetadataAsync();
        }