Exemplo n.º 1
0
        /// <summary>
        /// EPGデータの更新があれば再読み込みする
        /// </summary>
        /// <returns></returns>
        public ErrCode ReloadEpgData()
        {
            ErrCode ret = ErrCode.CMD_SUCCESS;

            try
            {
                if (updateEpgData == true && (noAutoReloadEpg == false || oneTimeReloadEpg == true))
                {
                    if (cmd == null)
                    {
                        return(ErrCode.CMD_ERR);
                    }

                    serviceEventList = new Dictionary <ulong, EpgServiceEventInfo>();
                    var list = new List <EpgServiceEventInfo>();

                    ret = (ErrCode)cmd.SendEnumPgAll(ref list);
                    if (ret != ErrCode.CMD_SUCCESS)
                    {
                        return(ret);
                    }

                    list.ForEach(info => serviceEventList.Add(info.serviceInfo.Create64Key(), info));

                    updateEpgData    = false;
                    oneTimeReloadEpg = false;
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message + "\r\n" + ex.StackTrace);
            }
            return(ret);
        }
Exemplo n.º 2
0
        /// <summary>
        /// EPGデータの更新があれば再読み込みする
        /// </summary>
        /// <returns></returns>
        public ErrCode ReloadEpgData()
        {
            ErrCode ret = ErrCode.CMD_SUCCESS;

            try
            {
                if (noAutoReloadEpg == true)
                {
                    if (updateEpgData == true && oneTimeReloadEpg == true)
                    {
                        if (cmd == null)
                        {
                            ret = ErrCode.CMD_ERR;
                        }
                        else
                        {
                            serviceEventList.Clear();
                            serviceEventList = null;
                            serviceEventList = new Dictionary <ulong, EpgServiceEventInfo>();
                            List <EpgServiceEventInfo> list = new List <EpgServiceEventInfo>();
                            ret = (ErrCode)cmd.SendEnumPgAll(ref list);
                            if (ret == ErrCode.CMD_SUCCESS)
                            {
                                foreach (EpgServiceEventInfo info in list)
                                {
                                    UInt64 id = CommonManager.Create64Key(
                                        info.serviceInfo.ONID,
                                        info.serviceInfo.TSID,
                                        info.serviceInfo.SID);
                                    serviceEventList.Add(id, info);
                                }
                                updateEpgData    = false;
                                oneTimeReloadEpg = false;
                            }
                            list.Clear();
                            list = null;
                        }
                    }
                }
                else
                {
                    if (updateEpgData == true)
                    {
                        if (cmd == null)
                        {
                            ret = ErrCode.CMD_ERR;
                        }
                        else
                        {
                            serviceEventList.Clear();
                            serviceEventList = null;
                            serviceEventList = new Dictionary <ulong, EpgServiceEventInfo>();
                            List <EpgServiceEventInfo> list = new List <EpgServiceEventInfo>();
                            ret = (ErrCode)cmd.SendEnumPgAll(ref list);
                            if (ret == ErrCode.CMD_SUCCESS)
                            {
                                foreach (EpgServiceEventInfo info in list)
                                {
                                    UInt64 id = CommonManager.Create64Key(
                                        info.serviceInfo.ONID,
                                        info.serviceInfo.TSID,
                                        info.serviceInfo.SID);
                                    serviceEventList.Add(id, info);
                                }
                                updateEpgData = false;
                            }
                            list.Clear();
                            list = null;
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message + "\r\n" + ex.StackTrace);
            }
            return(ret);
        }