Ejemplo n.º 1
0
        private void Config()
        {
            int hr = 0;
            ITuningSpaceContainer tsContainer = (ITuningSpaceContainer) new SystemTuningSpaces();
            ITuningSpace          ts          = null;

            // The third System TuningSpace is an ATSC one...
            // see HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Tuning Spaces\3
            hr = tsContainer.get_Item(3, out ts);
            DsError.ThrowExceptionForHR(hr);

            tuningSpace = (IATSCTuningSpace)ts;

            Marshal.ReleaseComObject(tsContainer);
        }
Ejemplo n.º 2
0
        private void Config()
        {
            int hr = 0;
            IATSCTuningSpace ts = (IATSCTuningSpace) new ATSCTuningSpace();
            ITuneRequest     tr = null;

            hr = ts.put_MaxChannel(50);
            DsError.ThrowExceptionForHR(hr);

            hr = ts.put_MinChannel(5);
            DsError.ThrowExceptionForHR(hr);

            hr = ts.CreateTuneRequest(out tr);
            DsError.ThrowExceptionForHR(hr);

            atscChannelTR = (IATSCChannelTuneRequest)tr;

            Marshal.ReleaseComObject(ts);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Creates the tuning space.
        /// </summary>
        protected void CreateTuningSpace()
        {
            Log.Log.WriteFile("atsc:CreateTuningSpace()");
            ITuner                tuner = (ITuner)_filterNetworkProvider;
            SystemTuningSpaces    systemTuningSpaces = new SystemTuningSpaces();
            ITuningSpaceContainer container          = systemTuningSpaces as ITuningSpaceContainer;

            if (container == null)
            {
                Log.Log.Error("CreateTuningSpace() Failed to get ITuningSpaceContainer");
                return;
            }
            IEnumTuningSpaces enumTuning;

            ITuningSpace[] spaces = new ITuningSpace[2];
            ITuneRequest   request;

            container.get_EnumTuningSpaces(out enumTuning);
            while (true)
            {
                int fetched;
                enumTuning.Next(1, spaces, out fetched);
                if (fetched != 1)
                {
                    break;
                }
                string name;
                spaces[0].get_UniqueName(out name);
                if (name == "MediaPortal ATSC TuningSpace")
                {
                    Log.Log.WriteFile("atsc:found correct tuningspace {0}", name);
                    _tuningSpace = (IATSCTuningSpace)spaces[0];
                    tuner.put_TuningSpace(_tuningSpace);
                    _tuningSpace.CreateTuneRequest(out request);
                    _tuneRequest = (IATSCChannelTuneRequest)request;
                    return;
                }
                Release.ComObject("ITuningSpace", spaces[0]);
            }
            Release.ComObject("IEnumTuningSpaces", enumTuning);
            Log.Log.WriteFile("atsc:Create new tuningspace");
            _tuningSpace = (IATSCTuningSpace) new ATSCTuningSpace();
            IATSCTuningSpace tuningSpace = (IATSCTuningSpace)_tuningSpace;

            tuningSpace.put_UniqueName("MediaPortal ATSC TuningSpace");
            tuningSpace.put_FriendlyName("MediaPortal ATSC TuningSpace");
            tuningSpace.put__NetworkType(typeof(ATSCNetworkProvider).GUID);
            tuningSpace.put_CountryCode(0);
            tuningSpace.put_InputType(TunerInputType.Antenna);
            tuningSpace.put_MaxMinorChannel(999);    //minor channels per major
            tuningSpace.put_MaxPhysicalChannel(158); //69 for OTA 158 for QAM
            tuningSpace.put_MaxChannel(99);          //major channels
            tuningSpace.put_MinMinorChannel(0);
            tuningSpace.put_MinPhysicalChannel(1);   //OTA 1, QAM 2
            tuningSpace.put_MinChannel(1);

            IATSCLocator locator = (IATSCLocator) new ATSCLocator();

            locator.put_CarrierFrequency(-1);
            locator.put_InnerFEC(FECMethod.MethodNotSet);
            locator.put_InnerFECRate(BinaryConvolutionCodeRate.RateNotSet);
            locator.put_Modulation(ModulationType.Mod8Vsb); //OTA modultation, QAM = .Mod256Qam
            locator.put_OuterFEC(FECMethod.MethodNotSet);
            locator.put_OuterFECRate(BinaryConvolutionCodeRate.RateNotSet);
            locator.put_PhysicalChannel(-1);
            locator.put_SymbolRate(-1);
            locator.put_TSID(-1);
            object newIndex;

            _tuningSpace.put_DefaultLocator(locator);
            container.Add(_tuningSpace, out newIndex);
            tuner.put_TuningSpace(_tuningSpace);
            Release.ComObject("TuningSpaceContainer", container);
            _tuningSpace.CreateTuneRequest(out request);
            _tuneRequest = (IATSCChannelTuneRequest)request;
        }