private void initializeISDBSTab()
        {
            bool satelliteUsed = false;

            foreach (Tuner tuner in Tuner.TunerCollection)
            {
                if (!tuner.Name.ToUpper().Contains("DVBLINK") && tuner.Supports(TunerNodeType.ISDBS))
                {
                    satelliteUsed = true;
                }
            }

            if (!satelliteUsed)
            {
                tbcDeliverySystem.TabPages.RemoveByKey("tbpISDBSatellite");
                return;
            }

            cboISDBSatellite.DataSource   = ISDBSatelliteProvider.Providers;
            cboISDBSatellite.SelectedItem = cboISDBSatellite.Items[0];

            SatelliteDish satelliteDish = SatelliteDish.FirstDefault;

            txtLNBLow.Text    = satelliteDish.LNBLowBandFrequency.ToString();
            txtLNBHigh.Text   = satelliteDish.LNBHighBandFrequency.ToString();
            txtLNBSwitch.Text = satelliteDish.LNBSwitchFrequency.ToString();

            cboISDBDiseqc.DataSource = Enum.GetValues(typeof(DiseqcSettings));
            if (satelliteDish.DiseqcSwitch != null)
            {
                cboISDBDiseqc.Text = satelliteDish.DiseqcSwitch;
            }
        }
Exemple #2
0
        private void setLnbData(bool lnbPower, int turnon22Khz, int disEqcPort, SatelliteDish satelliteDish)
        {
            int thbdaLen  = 0x28;
            int disEqcLen = 20;

            Marshal.WriteByte(ptrDiseqc, 0, (byte)(lnbPower ? 1 : 0));                                  // 0: LNB_POWER
            Marshal.WriteByte(ptrDiseqc, 1, 0);                                                         // 1: Tone_Data_Burst (Tone_Data_OFF:0 | Tone_Burst_ON:1 | Data_Burst_ON:2)
            Marshal.WriteByte(ptrDiseqc, 2, 0);
            Marshal.WriteByte(ptrDiseqc, 3, 0);
            Marshal.WriteInt32(ptrDiseqc, 4, satelliteDish.LNBLowBandFrequency / 1000);     // 4: LNBLOF LowBand MHz
            Marshal.WriteInt32(ptrDiseqc, 8, satelliteDish.LNBHighBandFrequency / 1000);    // 8: LNBLOF HighBand MHz
            Marshal.WriteInt32(ptrDiseqc, 12, satelliteDish.LNBSwitchFrequency / 1000);     //12: LNBLOF HiLoSW MHz
            Marshal.WriteByte(ptrDiseqc, 16, (byte)turnon22Khz);                            //16: f22K_Output (F22K_Output_HiLo:0 | F22K_Output_Off:1 | F22K_Output_On:2
            Marshal.WriteByte(ptrDiseqc, 17, (byte)disEqcPort);                             //17: DiSEqC_Port
            Marshal.WriteByte(ptrDiseqc, 18, 0);
            Marshal.WriteByte(ptrDiseqc, 19, 0);
            Marshal.WriteInt32(thbdaBuf, 0, 0x255e0082);                                    //GUID_THBDA_CMD
            Marshal.WriteInt16(thbdaBuf, 4, 0x2017);
            Marshal.WriteInt16(thbdaBuf, 6, 0x4b03);
            Marshal.WriteByte(thbdaBuf, 8, 0x90);
            Marshal.WriteByte(thbdaBuf, 9, 0xf8);
            Marshal.WriteByte(thbdaBuf, 10, 0x85);
            Marshal.WriteByte(thbdaBuf, 11, 0x6a);
            Marshal.WriteByte(thbdaBuf, 12, 0x62);
            Marshal.WriteByte(thbdaBuf, 13, 0xcb);
            Marshal.WriteByte(thbdaBuf, 14, 0x3d);
            Marshal.WriteByte(thbdaBuf, 15, 0x67);
            Marshal.WriteInt32(thbdaBuf, 16, (int)THBDA_IOCTL_SET_LNB_DATA);                    //dwIoControlCode
            Marshal.WriteInt32(thbdaBuf, 20, (int)ptrDiseqc.ToInt32());                         //lpInBuffer
            Marshal.WriteInt32(thbdaBuf, 24, disEqcLen);                                        //nInBufferSize
            Marshal.WriteInt32(thbdaBuf, 28, (int)IntPtr.Zero);                                 //lpOutBuffer
            Marshal.WriteInt32(thbdaBuf, 32, 0);                                                //nOutBufferSize
            Marshal.WriteInt32(thbdaBuf, 36, (int)ptrDwBytesReturned);                          //lpBytesReturned

            IPin pin = DsFindPin.ByDirection(captureFilter, PinDirection.Input, 0);

            if (pin != null)
            {
                IKsPropertySet propertySet = pin as IKsPropertySet;
                if (propertySet != null)
                {
                    reply = propertySet.Set(THBDA_TUNER, 0, ptrOutBuffer2, 0x18, thbdaBuf, thbdaLen);
                    if (reply != 0)
                    {
                        Logger.Instance.Write("TwinHan/TechniSat SetLNB failed 0x" + reply.ToString("X"));
                    }
                    else
                    {
                        Logger.Instance.Write("TwinHan/TechniSat SetLNB OK 0x" + reply.ToString("X"));
                    }

                    Marshal.ReleaseComObject(propertySet);
                }

                Marshal.ReleaseComObject(pin);
            }
        }
        private void btISDBLNBDefaults_Click(object sender, EventArgs e)
        {
            SatelliteDish defaultSatellite = SatelliteDish.Default;

            txtISDBLNBLow.Text    = defaultSatellite.LNBLowBandFrequency.ToString();
            txtISDBLNBHigh.Text   = defaultSatellite.LNBHighBandFrequency.ToString();
            txtISDBLNBSwitch.Text = defaultSatellite.LNBSwitchFrequency.ToString();

            cboISDBDiseqc.SelectedIndex = 0;
        }