public ProviderLights(Device.DvDevice aDevice, int aMode) : base(aDevice) { EnableActionGetCount(); EnableActionGetRoom(); EnableActionGetName(); EnableActionGetPosition(); EnableActionSetColor(); EnableActionGetColor(); EnableActionGetColorComponents(); iLights = new List <Light>(); switch (aMode) { case 1: InitMode1(); break; case 2: InitMode2(); break; case 3: InitMode3(); break; default: Debug.Assert(false); break; } }
public ProviderTestBasic(DvDevice aDevice) : base(aDevice) { EnablePropertyVarUint(); EnablePropertyVarInt(); EnablePropertyVarBool(); EnablePropertyVarStr(); EnablePropertyVarBin(); SetPropertyVarUint(0); SetPropertyVarInt(0); SetPropertyVarBool(false); string empty = ""; byte[] emptyBinary = new byte[0]; SetPropertyVarStr(empty); SetPropertyVarBin(emptyBinary); EnableActionIncrement(); EnableActionDecrement(); EnableActionToggle(); EnableActionEchoString(); EnableActionEchoBinary(); EnableActionSetUint(); EnableActionGetUint(); EnableActionSetInt(); EnableActionGetInt(); EnableActionSetBool(); EnableActionGetBool(); EnableActionSetString(); EnableActionGetString(); EnableActionSetBinary(); EnableActionGetBinary(); EnableActionSetMultiple(); }
public ProviderRemoteAccess(DvDevice aDevice, string aStoreDir, string aWebServiceHostName, ProxyServer aProxyServer, string aNetworkAdapter) : base(aDevice) { iDeviceUdn = aDevice.Udn(); iStoreDir = aStoreDir; iWebServiceHostName = (aWebServiceHostName ?? kDefaultWebServiceAddress); if (!iWebServiceHostName.StartsWith("https://")) iWebServiceHostName = "https://" + iWebServiceHostName; if (!iWebServiceHostName.EndsWith("/")) iWebServiceHostName += "/"; iProxyServer = aProxyServer; iNetworkAdapter = aNetworkAdapter; iThread = new Thread(RunThread); iCommands = new List<QueuedCommand>(); iCommandSem = new Semaphore(0, Int32.MaxValue); iThread.Start(this); iConnectionCheckTimer = new System.Timers.Timer { AutoReset = true, Enabled = false, Interval = kConnectionCheckIntervalMs }; iConnectionCheckTimer.Elapsed += CheckConnection; ServicePointManager.ServerCertificateValidationCallback += delegate { return true; }; ServicePointManager.SecurityProtocol = SecurityProtocolType.Ssl3; EnablePropertyUserName(); EnablePropertyPublicUri(); EnablePropertyEnabled(); EnablePropertyPasswordSet(); EnableActionSetUserName(); EnableActionSetPassword(); EnableActionReset(); EnableActionEnable(); EnableActionClearAuthenticatedClients(); string userDataFileName = FileFullName(kFileUserData); if (!File.Exists(userDataFileName)) WriteUserData(false, "", "", ""); string xml = File.ReadAllText(userDataFileName, Encoding.UTF8); XElement tree = XElement.Parse(xml); bool enabled = Convert.ToBoolean(tree.Element(kTagEnabled).Value); string userName = tree.Element(kTagUserName).Value; iPassword = tree.Element(kTagPassword).Value; string publicUrl = tree.Element(kTagPublicUrl).Value; SetPropertyUserName(userName); SetPropertyPublicUri(publicUrl); SetPropertyEnabled(enabled); SetPropertyPasswordSet((iPassword.Length > 0)); if (enabled) { try { Start(); } catch (Exception e) { Logger.ErrorFormat("Start failed: {0}", e.Message); } } }
/// <summary> /// Constructor /// </summary> /// <param name="aDevice">Device the service is being added to and will be offered by</param> /// <param name="aDomain">Domain of the vendor who defined the service</param> /// <param name="aType">Name of the service</param> /// <param name="aVersion">Version number of the service</param> protected DvProvider(DvDevice aDevice, String aDomain, String aType, uint aVersion) { IntPtr domain = InteropUtils.StringToHGlobalUtf8(aDomain); IntPtr type = InteropUtils.StringToHGlobalUtf8(aType); iHandle = DvProviderCreate(aDevice.Handle(), domain, type, aVersion); Marshal.FreeHGlobal(type); Marshal.FreeHGlobal(domain); iActions = new List <OpenHome.Net.Core.Action>(); iProperties = new List <OpenHome.Net.Core.Property>(); }
public AppListService(DvDevice aDevice, IAppShell aAppShell) { iDevice = aDevice; iProvider = new AppListProvider(iDevice); iDevice.SetEnabled(); iCallbackTracker = new SafeCallbackTracker(); iHandler = iCallbackTracker.Create<AppStatusChangeEventArgs>(OnAppStatusChanged); iAppShell = aAppShell; iAppShell.AppStatusChanged += iHandler; OnAppStatusChanged(this, new AppStatusChangeEventArgs()); }
public AppController(string aUdn) { iDevice = new DvDeviceStandard(aUdn); // Set initial values for the attributes mandated by UPnP iDevice.SetAttribute("Upnp.Domain", "openhome.org"); iDevice.SetAttribute("Upnp.Type", "AppManager"); iDevice.SetAttribute("Upnp.Version", "1"); iDevice.SetAttribute("Upnp.FriendlyName", "OpenHome App AppShell"); iDevice.SetAttribute("Upnp.Manufacturer", "N/A"); iDevice.SetAttribute("Upnp.ModelName", "OpenHome App AppShell"); iProvider = new AppManagerProvider(iDevice); iDevice.SetEnabled(); }
public ProviderApp(DvDevice aDevice, string aHostUdn, string aHostResourceUri, string aAppName, string aIconUri, string aDescriptionUri) : base(aDevice) { EnablePropertyName(); EnablePropertyIconUri(); EnablePropertyDescriptionUri(); EnableActionGetName(); EnableActionGetIconUri(); EnableActionGetDescriptionUri(); EnableActionGetHostDevice(); SetPropertyName(aAppName); SetPropertyIconUri(aIconUri); SetPropertyDescriptionUri(aDescriptionUri); iHostUdn = aHostUdn; iHostResourceUri = aHostResourceUri; }
public ProviderNode(DvDevice aDevice, ISystemClockProvider aSystemClockProvider, ILogControlProvider aLogControlProvider) : base(aDevice) { EnableActionWriteFile(); EnableActionGetAvailableTimeZones(); EnableActionGetTime(); EnableActionSetTimeZone(); EnableActionSetUtcTime(); EnableActionGetRecentLog(); EnableActionGetLogLevelsXml(); EnableActionSetLogLevelsXml(); EnablePropertyTimeSequenceNumber(); EnablePropertyTimeSequenceNumber(); SetPropertyTimeSequenceNumber(0); iSystemClockProvider = aSystemClockProvider; iLogControlProvider = aLogControlProvider; }
public AppContext( IAppServices aServices, string aStaticPath, string aStorePath, IConfigFileCollection aConfiguration, DvDevice aDevice, string aAppName, IXappServer aXappServer ) { iXappServer = aXappServer; Services = aServices; StaticPath = aStaticPath; StorePath = aStorePath; Configuration = aConfiguration; Device = aDevice; Name = aAppName; }
public AppManagerProvider(DvDevice aDevice, IAppManagerActionHandler aProvider, string aPresentationUri) : base(aDevice) { EnablePropertyDownloadCount(); EnablePropertyAppHandleArray(); EnablePropertyAppSequenceNumberArray(); EnableActionGetAppStatus(); EnableActionGetMultipleAppsStatus(); EnableActionGetAllDownloadsStatus(); EnableActionInstallAppFromUrl(); EnableActionRemoveApp(); EnableActionCancelDownload(); EnableActionUpdateApp(); EnableActionGetPresentationUri(); SetPropertyDownloadCount(0); SetPropertyAppHandleArray(Converter.ConvertUintListToNetworkOrderByteArray(new List<uint>())); SetPropertyAppSequenceNumberArray(Converter.ConvertUintListToNetworkOrderByteArray(new List<uint>())); //BumpDummySequenceNumber(); iProvider = aProvider; iPresentationUri = aPresentationUri; }
public CpDvDevicePresencePublisher(DvDevice aDvDevice, IDevicePresenceListener aListener) { iDvDevice = aDvDevice; iListener = aListener; }
public AppListProvider(DvDevice aDevice) : base(aDevice) { EnablePropertyRunningAppList(); SetPropertyRunningAppList("<runningAppList />"); }
public ProviderSystemUpdate(DvDevice aDevice, IUpdateService aUpdateService, string aDfltConfigFile, string aUserConfigFile) : base(aDevice) { iLogger = LogManager.GetLogger(typeof(ProviderSystemUpdate)); stateTable = new StringCollection(); stateTable.AddRange(StateNames); EnablePropertyState(); EnablePropertyProgress(); EnablePropertyServer(); EnablePropertyChannel(); EnablePropertyLastError(); EnablePropertyAutoUpdate(); EnableActionCheckForUpdate(); EnableActionDownloadUpdate(); EnableActionDoUpdate(); EnableActionCancelUpdate(); EnableActionSetSourceInfo(); EnableActionReboot(); EnableActionSetAutoUpdate(); SetPropertyProgress(0); SetLastError("Service created OK"); iUpdateService = aUpdateService; /* Set default values */ CurrentState = kStateIdle; SetPropertyServer(aUpdateService.Server); SetPropertyChannel(aUpdateService.Channel); SetPropertyAutoUpdate(true); /* Read the default config file first, if it exists */ if (aDfltConfigFile != null) { string file = aDfltConfigFile; // Path.Combine(aDfltConfigDir, kStorageFileName); try { LoadConfig(file); } catch (FileNotFoundException) { iLogger.Info("Default config file '" + file + "' not found. Using hard-coded values ..."); } catch (DirectoryNotFoundException) { iLogger.Info("Default config file '" + file + "' not found. Using hard-coded values ..."); } } /* Then try to read the user config file */ if (aUserConfigFile != null) { userConfigFile = aUserConfigFile; // Path.Combine(aUserConfigDir, kStorageFileName); try { LoadConfig(userConfigFile, out userConfigXml); } catch (FileNotFoundException) { iLogger.Info("User config file '" + userConfigFile + "' not found. Using defaults ..."); } catch (DirectoryNotFoundException) { iLogger.Info("User config file '" + userConfigFile + "' not found. Using defaults ..."); } } if (userConfigXml == null) { userConfigXml = new XElement("SystemUpdate"); } /* If the state read from the config file was UpdateAvailable then we set it * to Idle. The service will notify us if an update is still available. * If the state was RebootNeeded then this is our first reboot after a software update */ if ( (CurrentState == kStateUpdateAvailable) || (CurrentState == kStateRebootNeeded)) { CurrentState = kStateIdle; } UpdateUserConfig("State", PropertyState()); autoUpdateTimer = new Timer(OnAutoUpdateTimer); iUpdateService.Server = PropertyServer(); iUpdateService.Channel = PropertyChannel(); iUpdateService.UpdateEventHandler += HandleUpdateEvent; /* If we are in Idle state then start the service */ if (CurrentState == kStateIdle) { iUpdateService.Start(); } /* If autoupdate is on and an update has been downloaded then * kick-off the timer to apply it */ if (PropertyAutoUpdate() && (CurrentState == kStateUpdateDownloaded)) { autoUpdateTimer.Change(kAutoUpdateDelay, Timeout.Infinite); } }
/// <summary> /// Instruct a device to publish itself using (only) this server. /// </summary> /// <param name="aDevice"></param> public void AddDevice(DvDevice aDevice) { DvServerUpnpAddDevice(iHandle, aDevice.Handle()); }
/// <summary> /// Constructor /// </summary> /// <param name="aDevice">Device the service is being added to and will be offered by</param> /// <param name="aDomain">Domain of the vendor who defined the service</param> /// <param name="aType">Name of the service</param> /// <param name="aVersion">Version number of the service</param> protected unsafe DvProvider(DvDevice aDevice, String aDomain, String aType, uint aVersion) { IntPtr domain = InteropUtils.StringToHGlobalUtf8(aDomain); IntPtr type = InteropUtils.StringToHGlobalUtf8(aType); iHandle = DvProviderCreate(aDevice.Handle(), domain, type, aVersion); Marshal.FreeHGlobal(type); Marshal.FreeHGlobal(domain); iActions = new List<OpenHome.Net.Core.Action>(); iProperties = new List<OpenHome.Net.Core.Property>(); }
/// <summary> /// Instruct a device to publish itself using (only) this server. /// </summary> /// <param name="aDevice"></param> public void AddDevice(DvDevice aDevice) { DvServerUpnpAddDevice(iHandle, aDevice.Handle()); }
public AppManagerProvider(DvDevice aDevice) : base(aDevice) { EnablePropertyAppHandleArray(); EnablePropertyAppSequenceNumberArray(); // TODO: Initialize handle array. // TODO: Initialize seqno array. EnableActionGetAppStatus(); EnableActionGetMultipleAppsStatus(); EnableActionGetAllDownloadsStatus(); EnableActionInstallAppFromUrl(); EnableActionRemoveApp(); EnableActionCancelDownload(); EnableActionUpdateApp(); SetPropertyAppHandleArray(Platform.Converter.ConvertUintListToNetworkOrderByteArray(new List<uint> { DummyAppId })); BumpDummySequenceNumber(); }