/// <summary> /// /// </summary> private void StartFireDTVComms() { if (_enabled) { // Open driver _enabled = _fireDTV.OpenDrivers(); if (!_enabled) { Log.Error("FireDTVRemote: Failed to open driver"); return; } // Search for the named sourcefilter FireDTVSourceFilterInfo sourceFilter = _fireDTV.SourceFilters.ItemByName(_name); if (sourceFilter != null) { sourceFilter.StartFireDTVRemoteControlSupport(); } else { Log.Error("FireDTVRemote: SourceFilter {0} Not Found", _name); } } }
/// <summary> /// Open the communication channels with the FireDTV's. /// </summary> /// <returns>true if success</returns> internal bool OpenDrivers() { if (!LibrayInitialized) { return false; } int BDADriverCount = getBDACount(); int WDMDriverCount = getWDMCount(); for (int BDACount = 0; BDACount < BDADriverCount; BDACount++) { FireDTVSourceFilterInfo bdaSourceFilter = new FireDTVSourceFilterInfo(OpenBDADevice(BDACount), _windowHandle); _sourceFilterCollection.Add(bdaSourceFilter); } for (int WDMCount = 0; WDMCount < WDMDriverCount; WDMCount++) { FireDTVSourceFilterInfo wdmSourceFilter = new FireDTVSourceFilterInfo(OpenWDMDevice(WDMCount), _windowHandle); _sourceFilterCollection.Add(wdmSourceFilter); } return true; }
internal void CloseFireDTVHandle(FireDTVSourceFilterInfo currentSourceFilter) { try { uint returnCode = FireDTVAPI.FS_CloseDeviceHandle(currentSourceFilter.Handle); if ((FireDTVConstants.FireDTVStatusCodes)returnCode != FireDTVConstants.FireDTVStatusCodes.Success) { throw new FireDTVException((FireDTVConstants.FireDTVStatusCodes)returnCode, "Device Close Failure"); } } catch (Exception) { } }