示例#1
0
        /// <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)
   {
   }
 }