public override void Save()
        {
            if (!Enabled)
            {
                return;
            }

            base.Save();

            ISettingsManager      localSettings  = ServiceRegistration.Get <ISettingsManager>();
            IServerSettingsClient serverSettings = ServiceRegistration.Get <IServerSettingsClient>();

            AudioMetadataExtractorSettings settings = serverSettings.Load <AudioMetadataExtractorSettings>();

            settings.IncludeArtistDetails     = _selected.Contains(0);
            settings.IncludeComposerDetails   = _selected.Contains(1);
            settings.IncludeMusicLabelDetails = _selected.Contains(2);
            serverSettings.Save(settings);
            localSettings.Save(settings);

            NfoAudioMetadataExtractorSettings nfoSettings = serverSettings.Load <NfoAudioMetadataExtractorSettings>();

            nfoSettings.IncludeArtistDetails = settings.IncludeArtistDetails;
            serverSettings.Save(nfoSettings);
            localSettings.Save(nfoSettings);
        }
        public override void Load()
        {
            if (!Enabled)
            {
                return;
            }
            IServerSettingsClient          serverSettings = ServiceRegistration.Get <IServerSettingsClient>();
            AudioMetadataExtractorSettings settings       = serverSettings.Load <AudioMetadataExtractorSettings>();

            if (settings.IncludeArtistDetails)
            {
                _selected.Add(0);
            }
            if (settings.IncludeComposerDetails)
            {
                _selected.Add(1);
            }
            if (settings.IncludeConductorDetails)
            {
                _selected.Add(2);
            }
            if (settings.IncludeMusicLabelDetails)
            {
                _selected.Add(3);
            }
        }
예제 #3
0
        public override void Load()
        {
            if (!Enabled)
            {
                return;
            }
            IServerSettingsClient          serverSettings = ServiceRegistration.Get <IServerSettingsClient>();
            AudioMetadataExtractorSettings settings       = serverSettings.Load <AudioMetadataExtractorSettings>();

            if (!settings.SkipOnlineSearches && !settings.SkipFanArtDownload)
            {
                Selected = 0;
            }
            else if (!settings.SkipOnlineSearches)
            {
                Selected = 1;
            }
            else if (!settings.SkipFanArtDownload)
            {
                Selected = 2;
            }
            else
            {
                Selected = 3;
            }
        }
        public AudioFanArtHandler()
        {
            _metadata = new FanArtHandlerMetadata(FANARTHANDLER_ID, "Audio FanArt handler");

            AudioMetadataExtractorSettings settings = ServiceRegistration.Get <ISettingsManager>().Load <AudioMetadataExtractorSettings>();

            AUDIO_EXTENSIONS = new List <string>(settings.AudioExtensions.Select(e => e.ToLowerInvariant()));
        }
예제 #5
0
        static AudioMetadataExtractor()
        {
            MEDIA_CATEGORIES.Add(DefaultMediaCategories.Audio);

            AudioMetadataExtractorSettings settings = ServiceRegistration.Get <ISettingsManager>().Load <AudioMetadataExtractorSettings>();

            InitializeExtensions(settings);
            InitializeUnsplittableID3v23Values(settings);
            InitializeAdditionalSeparatorBehaviour(settings);
        }
        static AudioMetadataExtractor()
        {
            MEDIA_CATEGORIES.Add(DefaultMediaCategories.Audio);

            // All non-default media item aspects must be registered
            IMediaItemAspectTypeRegistration miatr = ServiceRegistration.Get <IMediaItemAspectTypeRegistration>();

            miatr.RegisterLocallyKnownMediaItemAspectType(TempAlbumAspect.Metadata);
            miatr.RegisterLocallyKnownMediaItemAspectType(TempPersonAspect.Metadata);

            AudioMetadataExtractorSettings settings = ServiceRegistration.Get <ISettingsManager>().Load <AudioMetadataExtractorSettings>();

            InitializeExtensions(settings);
            InitializeUnsplittableID3v23Values(settings);
            InitializeAdditionalSeparatorBehaviour(settings);
        }
예제 #7
0
        public override void Save()
        {
            if (!Enabled)
            {
                return;
            }

            base.Save();

            ISettingsManager               localSettings  = ServiceRegistration.Get <ISettingsManager>();
            IServerSettingsClient          serverSettings = ServiceRegistration.Get <IServerSettingsClient>();
            AudioMetadataExtractorSettings settings       = serverSettings.Load <AudioMetadataExtractorSettings>();

            settings.CacheOfflineFanArt = _selected.Contains(0);
            settings.CacheLocalFanArt   = _selected.Contains(1);
            serverSettings.Save(settings);
            localSettings.Save(settings);
        }
예제 #8
0
        public override void Load()
        {
            if (!Enabled)
            {
                return;
            }
            IServerSettingsClient          serverSettings = ServiceRegistration.Get <IServerSettingsClient>();
            AudioMetadataExtractorSettings settings       = serverSettings.Load <AudioMetadataExtractorSettings>();

            if (settings.CacheOfflineFanArt)
            {
                _selected.Add(0);
            }
            if (settings.CacheLocalFanArt)
            {
                _selected.Add(1);
            }
        }
예제 #9
0
        public override void Save()
        {
            if (!Enabled)
            {
                return;
            }

            base.Save();

            ISettingsManager      localSettings  = ServiceRegistration.Get <ISettingsManager>();
            IServerSettingsClient serverSettings = ServiceRegistration.Get <IServerSettingsClient>();

            AudioMetadataExtractorSettings settings = serverSettings.Load <AudioMetadataExtractorSettings>();

            if (Selected == 0)
            {
                settings.SkipOnlineSearches = false;
                settings.SkipFanArtDownload = false;
            }
            else if (Selected == 1)
            {
                settings.SkipOnlineSearches = false;
                settings.SkipFanArtDownload = true;
            }
            else if (Selected == 2)
            {
                settings.SkipOnlineSearches = true;
                settings.SkipFanArtDownload = false;
            }
            else
            {
                settings.SkipOnlineSearches = true;
                settings.SkipFanArtDownload = true;
            }
            serverSettings.Save(settings);
            localSettings.Save(settings);

            NfoAudioMetadataExtractorSettings nfoSettings = serverSettings.Load <NfoAudioMetadataExtractorSettings>();

            nfoSettings.SkipOnlineSearches = settings.SkipOnlineSearches;
            nfoSettings.SkipFanArtDownload = settings.SkipFanArtDownload;
            serverSettings.Save(nfoSettings);
            localSettings.Save(nfoSettings);
        }
예제 #10
0
 /// <summary>
 /// (Re)initializes the behaviour of this <see cref="AudioMetadataExtractor"/> regarding multiple values in single fields.
 /// </summary>
 /// <param name="settings">Settings object to read the data from.</param>
 internal static void InitializeAdditionalSeparatorBehaviour(AudioMetadataExtractorSettings settings)
 {
     USE_ADDITIONAL_SEPARATOR = settings.UseAdditionalSeparator;
     ADDITIONAL_SEPARATOR     = settings.AdditionalSeparator;
     UNSPLITTABLE_ADDITIONAL_SEPARATOR_VALUES = new List <string>(settings.UnsplittableAddditionalSeparatorValues.Select(e => e.ToLowerInvariant()));
 }
예제 #11
0
 /// <summary>
 /// (Re)initializes the unsplittable values collection for ID3v2.3 tags.
 /// </summary>
 /// <param name="settings">Settings object to read the data from.</param>
 internal static void InitializeUnsplittableID3v23Values(AudioMetadataExtractorSettings settings)
 {
     UNSPLITTABLE_ID3V23_VALUES = new List <string>(settings.UnsplittableID3v23Values.Select(v => v.ToLowerInvariant()));
 }
예제 #12
0
 /// <summary>
 /// (Re)initializes the audio extensions for which this <see cref="AudioMetadataExtractor"/> used.
 /// </summary>
 /// <param name="settings">Settings object to read the data from.</param>
 internal static void InitializeExtensions(AudioMetadataExtractorSettings settings)
 {
     AUDIO_EXTENSIONS = new List <string>(settings.AudioExtensions.Select(e => e.ToLowerInvariant()));
 }