private ChannelMapEntryWrapper(ChannelMapEntry entry) { channel_map_entry_ = entry; qam_status_ = DetermineQAMChannelStatus(entry, out exists_as_ota_); selected_action_ = CorrectiveAction.None; }
private static CorrectiveAction GetDefaultActionByStatus(QAMChannelStatus status) { switch (status) { case QAMChannelStatus.IncorrectQAM: return CorrectiveAction.ReplaceIncorrectQAM; case QAMChannelStatus.ConflictingCCFirst: return CorrectiveAction.RemoveOtherCCChannel; case QAMChannelStatus.ConflictingCCNotFirst: return CorrectiveAction.RemoveThisCCChannel; case QAMChannelStatus.NoCCChannelWithQAM: return CorrectiveAction.MergeCCChannelToQAMWithNumberUpdate; case QAMChannelStatus.NoCCChannelOrQAM: return CorrectiveAction.CreateCCChannel; case QAMChannelStatus.ProperlyMergedWithExtraneousCCard: return CorrectiveAction.RemoveBogusCCChannel; case QAMChannelStatus.OTAOnly: return CorrectiveAction.CreateQAMAndMerge; case QAMChannelStatus.ExistingDupeCCard: case QAMChannelStatus.ExistingUnmerged: return CorrectiveAction.MergeQAM; case QAMChannelStatus.NotExisting: case QAMChannelStatus.ProperlyMerged: return CorrectiveAction.None; default: throw new Exception("Unknown status value in GetDefaultActionByStatus!"); } }
public void UpdateStatus() { merged_channels_ = null; listings_ = null; QAMChannelStatus old_status = qam_status_; qam_status_ = DetermineQAMChannelStatus(channel_map_entry_, out exists_as_ota_); if (qam_status_ != old_status) { CorrectiveAction old_corrective_action = selected_action_; selected_action_ = CorrectiveAction.None; NotifyStatusChanged(new StatusChangedEventArgs(old_corrective_action, old_status, qam_status_)); } }
private static CorrectiveAction[] GetCorrectiveActionsForStatus(QAMChannelStatus status) { if (actions_by_status_ == null) { actions_by_status_ = new CorrectiveAction[(int)QAMChannelStatus.StatusValueCount][]; actions_by_status_[(int)QAMChannelStatus.IncorrectQAM] = new CorrectiveAction[] { CorrectiveAction.None, CorrectiveAction.ReplaceIncorrectQAM, CorrectiveAction.RemoveIncorrectQAM }; actions_by_status_[(int)QAMChannelStatus.ConflictingCCFirst] = new CorrectiveAction[] { CorrectiveAction.None, CorrectiveAction.RemoveOtherCCChannel, CorrectiveAction.RemoveThisCCChannel }; // same options whether this channel has the 1st tuner info or not, may as well make it same actual array. actions_by_status_[(int)QAMChannelStatus.ConflictingCCNotFirst] = actions_by_status_[(int)QAMChannelStatus.ConflictingCCFirst]; actions_by_status_[(int)QAMChannelStatus.NoCCChannelWithQAM] = new CorrectiveAction[] { CorrectiveAction.None, CorrectiveAction.CreateCCChannel, CorrectiveAction.MergeCCChannelToQAMWithNumberUpdate }; actions_by_status_[(int)QAMChannelStatus.NoCCChannelOrQAM] = new CorrectiveAction[] { CorrectiveAction.None, CorrectiveAction.CreateCCChannel, CorrectiveAction.CreateMergedCCAndQAMChannels, CorrectiveAction.CreateUnmergedCCAndQAMChannels }; actions_by_status_[(int)QAMChannelStatus.ProperlyMergedWithExtraneousCCard] = new CorrectiveAction[] { CorrectiveAction.None, CorrectiveAction.RemoveBogusCCChannel }; actions_by_status_[(int)QAMChannelStatus.OTAOnly] = new CorrectiveAction[] { CorrectiveAction.None, CorrectiveAction.CreateQAMAndMerge, CorrectiveAction.CreateQAMWithoutMerge }; actions_by_status_[(int)QAMChannelStatus.ExistingDupeCCard] = new CorrectiveAction[] { CorrectiveAction.None, CorrectiveAction.MergeQAM }; actions_by_status_[(int)QAMChannelStatus.ExistingUnmerged] = actions_by_status_[(int)QAMChannelStatus.ExistingDupeCCard]; actions_by_status_[(int)QAMChannelStatus.NotExisting] = actions_by_status_[(int)QAMChannelStatus.OTAOnly]; actions_by_status_[(int)QAMChannelStatus.ProperlyMerged] = new CorrectiveAction[] { CorrectiveAction.None }; } return actions_by_status_[(int)status]; }
public StatusChangedEventArgs( CorrectiveAction old_corrective_action, QAMChannelStatus old_status, QAMChannelStatus new_status) : base() { old_corrective_action_ = old_corrective_action; old_status_ = old_status; new_status_ = new_status; }