/// <summary> /// Ensures that the navigator has the correct current channel (retrieved from the Recorder). /// </summary> public void UpdateCurrentChannel() { Channel newChannel = null; //if current card is watching tv then use that channel int id; if (TVHome.Connected) { if (TVHome.Card.IsTimeShifting || TVHome.Card.IsRecording) { id = TVHome.Card.IdChannel; if (id >= 0) { newChannel = Channel.Retrieve(id); } } else { // else if any card is recording // then get & use that channel if (TVHome.IsAnyCardRecording) { TvServer server = new TvServer(); for (int i = 0; i < server.Count; ++i) { User user = new User(); VirtualCard card = server.CardByIndex(user, i); if (card.IsRecording) { id = card.IdChannel; if (id >= 0) { newChannel = Channel.Retrieve(id); break; } } } } } if (newChannel == null) { newChannel = m_currentChannel; } int currentChannelId = 0; int newChannelId = 0; if (m_currentChannel != null) { currentChannelId = m_currentChannel.IdChannel; } if (newChannel != null) { newChannelId = newChannel.IdChannel; } if (currentChannelId != newChannelId) { m_currentChannel = newChannel; m_currentChannel.CurrentGroup = CurrentGroup; } } }