Ejemplo n.º 1
0
    /// <summary>
    /// constructor for enabling technotrend ci 
    /// </summary>
    /// <param name="tunerFilter">tunerfilter</param>
    public TechnoTrendAPI(IBaseFilter tunerFilter)
    {
      m_deviceID = 0;
      m_slot = 0;
      m_ciStatus = 0;
      m_caErrorCount = 0;
      m_waitTimeout = 0;
      m_ciSlotAvailable = false;
      m_slotStatus = TTCiSlotStatus.SlotUnknownState;
      m_tunerFilter = tunerFilter;
      ptrPmt = Marshal.AllocCoTaskMem(1024); // buffer for handling pmt
      _ptrDataInstance = Marshal.AllocCoTaskMem(1024); // buffer for diseqc messages

      // detect card type
      DetectCardType();
      // if unknown exit
      if (m_deviceType == TTApiDeviceCat.UNKNOWN) return;

      // enumerate device id for opening hw
      GetDeviceID();

      // OpenCI
      OpenCI();
    }
Ejemplo n.º 2
0
    /// <summary>
    /// callback from driver for CI slot status
    /// </summary>
    /// <param name="Context">Can be used for a context pointer in the calling application. This parameter can be NULL.</param>
    /// <param name="nSlot">Is the Slot ID.</param>
    /// <param name="nStatus"></param>
    /// <param name="csInfo"></param>
    public unsafe void onSlotChange(
      IntPtr Context,
      byte nSlot,
      byte nStatus,
      SlotInfo* csInfo
      )
    {
      try
      {
        m_slotStatus = (TTCiSlotStatus)nStatus;
        Log.Log.Debug("TechnoTrend: slot {0} changed", nSlot);
        if (csInfo != null)
        {
          Log.Log.Debug("TechnoTrend:    CI status:{0} ", m_slotStatus);
          if (csInfo->pMenuTitleString != null)
          {
            Log.Log.Debug("TechnoTrend:    CI text  :{0} ", Marshal.PtrToStringAnsi(csInfo->pMenuTitleString));
          }

          for (int i = 0; i < csInfo->wNoOfCaSystemIDs; ++i)
          {
            Log.Log.Debug("TechnoTrend:      ca system id  :{0:X} ", csInfo->pCaSystemIDs[i]);
          }
        }
      }
      catch (Exception)
      {
        Log.Log.Debug("TechnoTrend: OnSlotChange() exception");
      }
    }