Exemplo n.º 1
0
        public bool?WriteGuide(string guide, [FromBody] GuideSettings settings)
        {
            // Check mode
            if (settings.Duration < 1)
            {
                // Create settings
                var disable = VCRConfiguration.Current.BeginUpdate(SettingNames.EPGDuration);

                // Store
                disable[SettingNames.EPGDuration].NewValue = "0";

                // Process
                return(ServerRuntime.Update(disable.Values));
            }

            // Prepare to update
            var update = VCRConfiguration.Current.BeginUpdate(SettingNames.EPGDuration, SettingNames.EPGStations, SettingNames.EPGHours, SettingNames.EPGIncludeFreeSat, SettingNames.EPGInterval, SettingNames.EPGJoinThreshold);

            // Fill it
            update[SettingNames.EPGHours].NewValue          = string.Join(", ", settings.Hours.Select(hour => hour.ToString()));
            update[SettingNames.EPGIncludeFreeSat].NewValue = settings.WithUKGuide.ToString();
            update[SettingNames.EPGStations].NewValue       = string.Join(", ", settings.Sources);
            update[SettingNames.EPGJoinThreshold].NewValue  = settings.Threshold.ToString();
            update[SettingNames.EPGInterval].NewValue       = settings.Interval.ToString();
            update[SettingNames.EPGDuration].NewValue       = settings.Duration.ToString();

            // Process
            return(ServerRuntime.Update(update.Values));
        }
Exemplo n.º 2
0
        public bool?WriteProfiles(string devices, [FromBody] ProfileSettings settings)
        {
            // Validate
            ServerRuntime.TestAdminAccess();

            // List of profiles to use
            var profiles = settings.SystemProfiles.Where(profile => profile.UsedForRecording).Select(profile => profile.Name).ToList();

            // Move default to the front
            var defaultIndex = profiles.IndexOf(settings.DefaultProfile);

            if (defaultIndex >= 0)
            {
                // Insert at the very beginning
                profiles.Insert(0, profiles[defaultIndex]);
                profiles.RemoveAt(defaultIndex + 1);
            }

            // Prepare
            var update = VCRConfiguration.Current.BeginUpdate(SettingNames.Profiles);

            // Fill
            update[SettingNames.Profiles].NewValue = string.Join("|", profiles);

            // Process
            return(ServerRuntime.Update(update.Values, ServerRuntime.VCRServer.UpdateProfiles(settings.SystemProfiles, profile => profile.Name, (profile, device) => profile.WriteBack(device))));
        }
Exemplo n.º 3
0
        public bool?WriteSecurity(string security, [FromBody] SecuritySettings settings)
        {
            // Prepare to update
            var update = VCRConfiguration.Current.BeginUpdate(SettingNames.RequiredUserRole, SettingNames.RequiredAdminRole);

            // Change settings
            update[SettingNames.RequiredAdminRole].NewValue = settings.AdminRole;
            update[SettingNames.RequiredUserRole].NewValue  = settings.UserRole;

            // Process
            return(ServerRuntime.Update(update.Values));
        }
Exemplo n.º 4
0
        public bool?WriteDirectory(string directory, [FromBody] DirectorySettings settings)
        {
            // Prepare to update
            var update = VCRConfiguration.Current.BeginUpdate(SettingNames.VideoRecorderDirectory, SettingNames.AdditionalRecorderPaths, SettingNames.FileNamePattern);

            // Change settings
            update[SettingNames.AdditionalRecorderPaths].NewValue = string.Join(", ", settings.TargetDirectories.Skip(1));
            update[SettingNames.VideoRecorderDirectory].NewValue  = settings.TargetDirectories.FirstOrDefault();
            update[SettingNames.FileNamePattern].NewValue         = settings.RecordingPattern;

            // Process
            return(ServerRuntime.Update(update.Values));
        }
Exemplo n.º 5
0
        public bool?WriteSourceScan(string scan, [FromBody] SourceScanSettings settings)
        {
            // Check mode
            if (settings.Interval == 0)
            {
                // Create settings
                var disable = VCRConfiguration.Current.BeginUpdate(SettingNames.ScanInterval);

                // Store
                disable[SettingNames.ScanInterval].NewValue = "0";

                // Process
                return(ServerRuntime.Update(disable.Values));
            }

            // Check mode
            if (settings.Interval < 0)
            {
                // Create settings
                var manual = VCRConfiguration.Current.BeginUpdate(SettingNames.ScanDuration, SettingNames.MergeScanResult, SettingNames.ScanInterval);

                // Store
                manual[SettingNames.MergeScanResult].NewValue = settings.MergeLists.ToString();
                manual[SettingNames.ScanDuration].NewValue    = settings.Duration.ToString();
                manual[SettingNames.ScanInterval].NewValue    = "-1";

                // Process
                return(ServerRuntime.Update(manual.Values));
            }

            // Prepare to update
            var update = VCRConfiguration.Current.BeginUpdate(SettingNames.ScanDuration, SettingNames.MergeScanResult, SettingNames.ScanInterval, SettingNames.ScanHours, SettingNames.ScanJoinThreshold);

            // Fill it
            update[SettingNames.ScanHours].NewValue         = string.Join(", ", settings.Hours.Select(hour => hour.ToString()));
            update[SettingNames.ScanJoinThreshold].NewValue = settings.Threshold.ToString();
            update[SettingNames.MergeScanResult].NewValue   = settings.MergeLists.ToString();
            update[SettingNames.ScanInterval].NewValue      = settings.Interval.ToString();
            update[SettingNames.ScanDuration].NewValue      = settings.Duration.ToString();

            // Process
            return(ServerRuntime.Update(update.Values));
        }
Exemplo n.º 6
0
        public bool?WriteOther(string other, [FromBody] OtherSettings settings)
        {
            // Prepare to update
            var update =
                VCRConfiguration.Current.BeginUpdate
                (
                    SettingNames.SuppressDelayAfterForcedHibernation,
                    SettingNames.DisablePCRFromMPEG2Generation,
                    SettingNames.DisablePCRFromH264Generation,
                    SettingNames.DelayAfterForcedHibernation,
                    SettingNames.UseStandByForHibernation,
                    SettingNames.MayHibernateSystem,
                    SettingNames.HibernationDelay,
                    SettingNames.ArchiveLifeTime,
                    SettingNames.LoggingLevel,
                    SettingNames.LogLifeTime,
                    SettingNames.AllowBasic,
                    SettingNames.TCPPort,
                    SettingNames.SSLPort,
                    SettingNames.UseSSL
                );

            // Change
            update[SettingNames.SuppressDelayAfterForcedHibernation].NewValue = settings.SuppressDelayAfterForcedHibernation.ToString();
            update[SettingNames.DelayAfterForcedHibernation].NewValue         = settings.DelayAfterForcedHibernation.ToString();
            update[SettingNames.DisablePCRFromMPEG2Generation].NewValue       = settings.DisablePCRFromMPEG2.ToString();
            update[SettingNames.DisablePCRFromH264Generation].NewValue        = settings.DisablePCRFromH264.ToString();
            update[SettingNames.UseStandByForHibernation].NewValue            = settings.UseStandBy.ToString();
            update[SettingNames.HibernationDelay].NewValue   = settings.HibernationDelay.ToString();
            update[SettingNames.MayHibernateSystem].NewValue = settings.AllowHibernate.ToString();
            update[SettingNames.ArchiveLifeTime].NewValue    = settings.ArchiveTime.ToString();
            update[SettingNames.LogLifeTime].NewValue        = settings.ProtocolTime.ToString();
            update[SettingNames.AllowBasic].NewValue         = settings.AllowBasic.ToString();
            update[SettingNames.LoggingLevel].NewValue       = settings.Logging.ToString();
            update[SettingNames.SSLPort].NewValue            = settings.SSLPort.ToString();
            update[SettingNames.TCPPort].NewValue            = settings.WebPort.ToString();
            update[SettingNames.UseSSL].NewValue             = settings.UseSSL.ToString();

            // Process
            return(ServerRuntime.Update(update.Values));
        }