Exemplo n.º 1
0
        private void epgWorkerDoWork(object sender, DoWorkEventArgs e)
        {
            BackgroundWorker worker = sender as BackgroundWorker;
            if (worker == null)
                throw (new ArgumentException("EPG worker thread has been started with an incorrecect sender"));

            BackgroundParameters parameters = e.Argument as BackgroundParameters;
            if (parameters == null)
                throw (new ArgumentException("EPG worker thread has been started with incorrect parameters"));

            if (RunParameters.IsWindows)
                Thread.CurrentThread.Name = "EPG Controller Worker Thread";
            Thread.CurrentThread.Priority = ThreadPriority.BelowNormal;

            collector = getCollector(parameters.Frequency);

            CollectorReply reply = collector.Process(parameters.DataProvider, worker);
            collector.Stop();
            collector.FinishFrequency();

            Logger.Instance.Write("Sample stats: Sync byte searches: " + parameters.DataProvider.SyncByteSearches +
                " Samples dropped: " + parameters.DataProvider.SamplesDropped +
                " Max sample size: " + parameters.DataProvider.MaximumSampleSize);

            e.Cancel = true;

            Logger.Instance.Write("Background worker thread finished");

            resetEvent.Set();
        }
Exemplo n.º 2
0
        private IEPGCollector getCollector(TuningFrequency frequency)
        {
            IEPGCollector collector;

            switch (frequency.CollectionType)
            {
                case CollectionType.EIT:
                    collector = new EITController();
                    Logger.Instance.Write("EPG delivery system is EIT on frequency " + frequency.Frequency);
                    break;
                case CollectionType.MHEG5:
                    collector = new DSMCCController();
                    Logger.Instance.Write("EPG delivery system is MHEG5 on frequency " + frequency.Frequency);
                    break;
                case CollectionType.OpenTV:
                    collector = new OpenTVController();
                    Logger.Instance.Write("EPG delivery system is OpenTV on frequency " + frequency.Frequency);
                    break;
                case CollectionType.MediaHighway1:
                    collector = new MediaHighway1Controller();
                    Logger.Instance.Write("EPG delivery system is MediaHighway1 on frequency " + frequency.Frequency);
                    break;
                case CollectionType.MediaHighway2:
                    collector = new MediaHighway2Controller();
                    Logger.Instance.Write("EPG delivery system is MediaHighway2 on frequency " + frequency.Frequency);
                    break;
                case CollectionType.FreeSat:
                    collector = new FreeSatController();
                    Logger.Instance.Write("EPG delivery system is FreeSat on frequency " + frequency.Frequency);
                    break;
                case CollectionType.PSIP:
                    collector = new AtscPsipController();
                    Logger.Instance.Write("EPG delivery system is ATSC PSIP on frequency " + frequency.Frequency);
                    break;
                case CollectionType.DishNetwork:
                    collector = new DishNetworkController();
                    Logger.Instance.Write("EPG delivery system is Dish Network on frequency " + frequency.Frequency);
                    break;
                case CollectionType.BellTV:
                    collector = new BellTVController();
                    Logger.Instance.Write("EPG delivery system is Bell TV on frequency " + frequency.Frequency);
                    break;
                case CollectionType.SiehfernInfo:
                    collector = new SiehFernInfoController();
                    Logger.Instance.Write("EPG delivery system is SiehFern Info on frequency " + frequency.Frequency);
                    break;
                default:
                    throw (new InvalidEnumArgumentException("CollectionType"));
            }

            addCollectorToList(collector);

            return (collector);
        }
Exemplo n.º 3
0
        private void addCollectorToList(IEPGCollector newCollector)
        {
            if (collectors == null)
                collectors = new Collection<IEPGCollector>();

            foreach (IEPGCollector oldCollector in collectors)
            {
                if (oldCollector.GetType().FullName == newCollector.GetType().FullName)
                    return;
            }

            collectors.Add(newCollector);
        }