123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108 |
- using FISLib.LiveVideo;
- using System.Linq;
- using Vinno.FIS.Sonopost.Common;
- using Vinno.FIS.Sonopost.Managers.Interfaces;
- using Vinno.FIS.Sonopost.Settings;
- using Vinno.FIS.Sonopost.Settings.Config;
- using Vinno.IUS.Common.Log;
- namespace Vinno.FIS.Sonopost.Managers
- {
- internal class ConfigManager : SonopostManager, IConfigManager
- {
- private ILiveVideoManager _liveVideoManager;
- private readonly object _locker = new object();
- public string VCloudServerAddress { get; private set; }
- public int VCloudServerPort { get; private set; }
- public string VCloudServerName { get; private set; }
- public ConfigManager()
- {
- InitServerConfig();
- }
- public void Save()
- {
- lock (_locker)
- {
- SonopostSystemSettings.Instance.Save();
- SonopostUserDefinedSettings.Instance.Save();
- }
- }
- public void SwitchVCloudServer(string address, int port, string vcloudServerName)
- {
- VCloudServerAddress = address;
- VCloudServerPort = port;
- VCloudServerName = vcloudServerName;
- }
- /// <summary>
- /// 刷新默认服务器
- /// </summary>
- /// <param name="server"></param>
- public void RefreshFlyinsonoServer(ServerInfoSetting newFlyinsonoServer)
- {
- if (VCloudServerName == SonopostConstants.FlyinsonoServerName)
- {
- VCloudServerAddress = newFlyinsonoServer.Host;
- VCloudServerPort = newFlyinsonoServer.Port;
- VCloudServerName = newFlyinsonoServer.DisplayName;
- }
- }
- public void SaveVCloudServer()
- {
- var existItem = SonopostUserDefinedSettings.Instance.ServerSetting.Servers.FirstOrDefault(x => x.Host == VCloudServerAddress && x.Port == VCloudServerPort && x.DisplayName == VCloudServerName);
- if (existItem != null)
- {
- SonopostUserDefinedSettings.Instance.ServerSetting.DefaultServer = existItem;
- }
- else
- {
- var serverInfo = new ServerInfoSetting(VCloudServerAddress, VCloudServerPort, false);
- SonopostUserDefinedSettings.Instance.ServerSetting.DefaultServer = serverInfo;
- SonopostUserDefinedSettings.Instance.ServerSetting.Servers.Add(serverInfo);
- }
- if (_liveVideoManager == null)
- {
- _liveVideoManager = AppManager.Instance.GetManager<ILiveVideoManager>();
- }
- var mainConfig = SonopostUserDefinedSettings.Instance.HardwareSetting.VideoDeviceInfoList.FirstOrDefault(x => x.Category == FISLiveChannelCategory.Main);
- if (mainConfig != null)
- {
- if (!string.IsNullOrWhiteSpace(mainConfig.Brand))
- {
- var brandList = _liveVideoManager.GetBrandList();
- if (brandList == null || brandList.Count == 0 || !brandList.Contains(mainConfig.Brand))
- {
- mainConfig.Brand = null;
- mainConfig.Model = null;
- }
- else if (!string.IsNullOrWhiteSpace(mainConfig.Model))
- {
- var modelList = _liveVideoManager.GetModelList(mainConfig.Brand);
- if (modelList == null || modelList.Count == 0 || !modelList.Contains(mainConfig.Model))
- {
- mainConfig.Model = null;
- }
- }
- }
- }
- Save();
- }
- private void InitServerConfig()
- {
- var defaultServer = SonopostUserDefinedSettings.Instance.ServerSetting.DefaultServer;
- VCloudServerAddress = defaultServer.Host;
- VCloudServerPort = defaultServer.Port;
- VCloudServerName = defaultServer.DisplayName;
- Logger.WriteLineInfo($"ConfigManager InitServerConfig:ServerAddress:{VCloudServerAddress},VCloudServerPort:{VCloudServerPort},VCloudServerName:{VCloudServerName}");
- }
- }
- }
|