/// <summary> /// Sends the diseq command. /// </summary> /// <param name="tuningSpec">A tuning spec instance.</param> /// <param name="port">The LNB port (eg AB).</param> internal override bool SendDiseqcCommand(TuningSpec tuningSpec, string port) { if (commandInterface == null) { return(true); } int reply = commandInterface.put_EnableDiseqCommands(1); if (reply != 0) { Logger.Instance.Write("DiSEqC enble command failed: error code 0x" + reply.ToString("X")); } else { int lnbNumber = GetLnbNumber(port); reply = commandInterface.put_DiseqLNBSource(lnbNumber - 1); if (reply != 0) { Logger.Instance.Write("DiSEqC command failed: error code 0x" + reply.ToString("X")); } } return(reply == 0); }
private bool disableDiseqcCommands(IBaseFilter tunerFilter) { IBDA_DeviceControl deviceControl = (IBDA_DeviceControl)tunerFilter; if (deviceControl != null) { reply = deviceControl.StartChanges(); if (reply == 0) { Logger.Instance.Write("Win7API DiSEqC handler: disabling driver diseqc commands"); reply = commandInterface.put_EnableDiseqCommands(0x00); if (reply != 0) { Logger.Instance.Write("Win7API DiSEqC handler: Put Enable command failed: error code 0x" + reply.ToString("X")); } else { reply = deviceControl.CheckChanges(); if (reply == 0) { reply = deviceControl.CommitChanges(); if (reply == 0) { return(true); } Logger.Instance.Write("Win7API DiSEqC Handler: Commit Changes failed with reply 0x" + reply.ToString("X")); deviceControl.StartChanges(); deviceControl.CommitChanges(); } else { Logger.Instance.Write("Win7API DiSEqC Handler: Check Changes failed with reply 0x" + reply.ToString("X")); } } } else { Logger.Instance.Write("Win7API DiSEqC Handler: Start Changes failed with reply 0x" + reply.ToString("X")); } } else { Logger.Instance.Write("Win7API DiSEqC Handler: failed to get device control interface"); } return(false); }