public DVBSTuning() { InitializeComponent(); int hr = 0; this.tuningSpace = (IDVBSTuningSpace) new DVBSTuningSpace(); hr = this.tuningSpace.put_UniqueName("DVBS TuningSpace"); hr = this.tuningSpace.put_FriendlyName("DVBS TuningSpace"); hr = this.tuningSpace.put__NetworkType(typeof(DVBSNetworkProvider).GUID); hr = this.tuningSpace.put_SystemType(DVBSystemType.Satellite); hr = this.tuningSpace.put_LowOscillator(9750000); hr = this.tuningSpace.put_HighOscillator(10600000); ITuneRequest tr = null; hr = this.tuningSpace.CreateTuneRequest(out tr); DsError.ThrowExceptionForHR(hr); this.tuneRequest = (IDVBTuneRequest)tr; hr = this.tuneRequest.put_ONID(-1); hr = this.tuneRequest.put_TSID(-1); hr = this.tuneRequest.put_SID(-1); IDVBSLocator locator = (IDVBSLocator) new DVBSLocator(); hr = locator.put_CarrierFrequency(-1); hr = locator.put_SymbolRate(-1); hr = tr.put_Locator(locator as ILocator); }
public DVBSTuning() { InitializeComponent(); int hr = 0; this.tuningSpace = (IDVBSTuningSpace) new DVBSTuningSpace(); hr = this.tuningSpace.put_UniqueName("DVBS TuningSpace"); hr = this.tuningSpace.put_FriendlyName("DVBS TuningSpace"); hr = this.tuningSpace.put__NetworkType(typeof(DVBSNetworkProvider).GUID); hr = this.tuningSpace.put_SystemType(DVBSystemType.Satellite); hr = this.tuningSpace.put_LowOscillator(9750000); hr = this.tuningSpace.put_HighOscillator(10600000); ITuneRequest tr = null; hr = this.tuningSpace.CreateTuneRequest(out tr); DsError.ThrowExceptionForHR(hr); this.tuneRequest = (IDVBTuneRequest) tr; hr = this.tuneRequest.put_ONID(-1); hr = this.tuneRequest.put_TSID(-1); hr = this.tuneRequest.put_SID(-1); IDVBSLocator locator = (IDVBSLocator) new DVBSLocator(); hr = locator.put_CarrierFrequency(-1); hr = locator.put_SymbolRate(-1); hr = tr.put_Locator(locator as ILocator); }
public void DoTests() { try { // No special HW required for this sample tuningSpace = (IDVBSTuningSpace)BDAUtils.GetTuningSpace(BDANetworkType.DVBS); TestHighOscillator(); TestInputRange(); TestLNBSwitch(); TestLowOscillator(); TestSpectralInversion(); } finally { Marshal.ReleaseComObject(tuningSpace); } }
/// <summary> /// Nettoyage des ressources utilisées. /// </summary> protected override void Dispose(bool disposing) { if (disposing) { if (components != null) { components.Dispose(); } // Release the COM objects if (this.tuneRequest != null) { Marshal.ReleaseComObject(this.tuneRequest); this.tuneRequest = null; } if (this.tuningSpace != null) { Marshal.ReleaseComObject(this.tuningSpace); this.tuningSpace = null; } } base.Dispose(disposing); }
private bool BeforeTune(ref int subChannelId, IChannel channel) { DVBSChannel dvbsChannel = channel as DVBSChannel; if (dvbsChannel == null) { Log.Log.WriteFile("Channel is not a DVBS channel!!! {0}", channel.GetType().ToString()); return(false); } /*if (CurrentChannel != null) * { * //@FIX this fails for back-2-back recordings * //if (oldChannel.Equals(channel)) return _mapSubChannels[0]; * }*/ if (dvbsChannel.SwitchingFrequency < 10) { dvbsChannel.SwitchingFrequency = 11700000; } Log.Log.WriteFile("dvbs: Tune:{0}", channel); if (_graphState == GraphState.Idle) { BuildGraph(); } if (_mapSubChannels.ContainsKey(subChannelId) == false) { subChannelId = GetNewSubChannel(channel); } if (useInternalNetworkProvider) { //set the DisEqC parameters if (_conditionalAccess != null) { //int hr2 = ((IMediaControl)_graphBuilder).Pause(); _diseqCsucceded = _conditionalAccess.SendDiseqcCommand(_parameters, dvbsChannel); //hr2 = ((IMediaControl)_graphBuilder).Run(); //move diseqc motor to correct satellite if (dvbsChannel != null && dvbsChannel.SatelliteIndex > 0 && _conditionalAccess.DiSEqCMotor != null) { _conditionalAccess.DiSEqCMotor.GotoPosition((byte)dvbsChannel.SatelliteIndex); } } return(true); } if (_previousChannel == null || _previousChannel.IsDifferentTransponder(dvbsChannel)) { //_pmtPid = -1; ILocator locator; int lowOsc; int hiOsc; int lnbSwitch; BandTypeConverter.GetDefaultLnbSetup(Parameters, dvbsChannel.BandType, out lowOsc, out hiOsc, out lnbSwitch); Log.Log.Info("LNB low:{0} hi:{1} switch:{2}", lowOsc, hiOsc, lnbSwitch); if (lnbSwitch == 0) { lnbSwitch = 18000; } IDVBSTuningSpace tuningSpace = (IDVBSTuningSpace)_tuningSpace; tuningSpace.put_LNBSwitch(lnbSwitch * 1000); tuningSpace.put_LowOscillator(lowOsc * 1000); tuningSpace.put_HighOscillator(hiOsc * 1000); ITuneRequest request; _tuningSpace.CreateTuneRequest(out request); _tuneRequest = (IDVBTuneRequest)request; _tuningSpace.get_DefaultLocator(out locator); IDVBSLocator dvbsLocator = (IDVBSLocator)locator; IDVBTuneRequest tuneRequest = (IDVBTuneRequest)_tuneRequest; tuneRequest.put_ONID(dvbsChannel.NetworkId); tuneRequest.put_SID(dvbsChannel.ServiceId); tuneRequest.put_TSID(dvbsChannel.TransportId); locator.put_CarrierFrequency((int)dvbsChannel.Frequency); dvbsLocator.put_SymbolRate(dvbsChannel.SymbolRate); dvbsLocator.put_SignalPolarisation(dvbsChannel.Polarisation); // Set DVB-S2 and manufacturer specific tuning parameters here. //------------------------------------------------------------------- // Important: the original dvbsChannel object *must not* be modified // otherwise IsDifferentTransponder() will sometimes returns true // when it shouldn't. See mantis 0002979. //------------------------------------------------------------------- DVBSChannel tuneChannel = new DVBSChannel(dvbsChannel); if (_conditionalAccess != null) { tuneChannel = _conditionalAccess.SetDVBS2Modulation(_parameters, tuneChannel); } dvbsLocator.put_Modulation(tuneChannel.ModulationType); Log.Log.WriteFile("dvbs:channel modulation is set to {0}", tuneChannel.ModulationType); dvbsLocator.put_InnerFECRate(tuneChannel.InnerFecRate); Log.Log.WriteFile("dvbs:channel FECRate is set to {0}", tuneChannel.InnerFecRate); _tuneRequest.put_Locator(locator); //set the DisEqC parameters if (_conditionalAccess != null) { //int hr2 = ((IMediaControl)_graphBuilder).Pause(); _diseqCsucceded = _conditionalAccess.SendDiseqcCommand(_parameters, dvbsChannel); //hr2 = ((IMediaControl)_graphBuilder).Run(); //move diseqc motor to correct satellite if (dvbsChannel != null && dvbsChannel.SatelliteIndex > 0 && _conditionalAccess.DiSEqCMotor != null) { _conditionalAccess.DiSEqCMotor.GotoPosition((byte)dvbsChannel.SatelliteIndex); } } } _dvbsChannel = dvbsChannel; return(true); }