コード例 #1
0
        /// <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);
        }
コード例 #2
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);
        }