Example #1
0
            private TuningConfig GetDefaultTuningConfigForChannelAndScannedLineup(SDChannel ch, Lineup lineup)
            {
                var         tunerType = ChannelEditing.GetTunerTypeForLineup(lineup);
                List <long> tunerIDs  = new List <long>();

                foreach (Device device in lineup.ScanDevices)
                {
                    tunerIDs.Add(device.Id);
                }
                TuningConfig tuning_config = new TuningConfig();

                tuning_config.tunerIDs = tunerIDs;
                switch (tunerType)
                {
                case ChannelEditing.TunerType.ATSC:
                    if (ch.atscMajor > 1 && ch.atscMinor > 0)
                    {
                        tuning_config.number    = ch.atscMajor;
                        tuning_config.subNumber = ch.atscMinor;
                    }
                    else
                    {
                        return(null);     // Tuner not compatible with channel
                    }
                    break;

                case ChannelEditing.TunerType.Aux:
                case ChannelEditing.TunerType.CableCARD:
                    if (ch.guideChannelMinor > 0)
                    {
                        return(null);                               // not compatible
                    }
                    tuning_config.number = ch.guideChannelMajor;
                    break;

                case ChannelEditing.TunerType.QAM:
                    if (ch.QAMMajor * ch.QAMMinor == 0)
                    {
                        return(null);                                    // not compatible
                    }
                    tuning_config.number    = ch.QAMMajor;
                    tuning_config.subNumber = ch.QAMMinor;
                    break;

                case ChannelEditing.TunerType.Analog:
                    if (ch.uhfVhf > 1)
                    {
                        tuning_config.number = ch.uhfVhf;
                    }
                    else if (ch.guideChannelMinor == 0)
                    {
                        tuning_config.number = ch.guideChannelMajor;
                    }
                    else
                    {
                        return(null);      // not compatible
                    }
                    break;

                case ChannelEditing.TunerType.DVBT:
                case ChannelEditing.TunerType.DVBS:
                case ChannelEditing.TunerType.DVBC:
                    if (ch.frequencyHz > 0)
                    {
                        tuning_config.deliverySystem   = ch.deliverySystem;
                        tuning_config.fec              = ch.fec;
                        tuning_config.frequencyHz      = ch.frequencyHz;
                        tuning_config.modulationSystem = ch.modulationSystem;
                        tuning_config.networkID        = ch.networkID;
                        tuning_config.polarization     = ch.polarization;
                        tuning_config.serviceID        = ch.serviceID;
                        tuning_config.symbolrate       = ch.symbolrate;
                        tuning_config.transportID      = ch.transportID;
                    }
                    else
                    {
                        return(null);      // not compatible
                    }
                    break;

                default:
                    Console.WriteLine("Channel not added with scanned lineup {0} because the tuner type is unrecognized", lineup.Name);
                    return(null);
                }  // end switch statement
                return(tuning_config);
            }