LRESULT CTunerScanDlg::OnNewChannel(WPARAM wParam, LPARAM lParam) { CDVBChannel Channel; CString strTemp; Channel.FromString((LPCTSTR)lParam); if (!m_bIgnoreEncryptedChannels || !Channel.IsEncrypted()) { int nItem, nChannelNumber; if (Channel.GetOriginNumber() != 0) { // LCN is available nChannelNumber = Channel.GetOriginNumber(); // Insert new channel so that channels are sorted by their logical number for (nItem = 0; nItem < m_ChannelList.GetItemCount(); nItem++) { if ((int)m_ChannelList.GetItemData(nItem) > nChannelNumber || (int)m_ChannelList.GetItemData(nItem) == 0) { break; } } } else { nChannelNumber = 0; nItem = m_ChannelList.GetItemCount(); } strTemp.Format(_T("%d"), nChannelNumber); nItem = m_ChannelList.InsertItem(nItem, strTemp); m_ChannelList.SetItemData(nItem, Channel.GetOriginNumber()); m_ChannelList.SetItemText(nItem, TSCC_NAME, Channel.GetName()); strTemp.Format(_T("%d"), Channel.GetFrequency()); m_ChannelList.SetItemText(nItem, TSCC_FREQUENCY, strTemp); strTemp = Channel.IsEncrypted() ? ResStr(IDS_DVB_CHANNEL_ENCRYPTED) : ResStr(IDS_DVB_CHANNEL_NOT_ENCRYPTED); m_ChannelList.SetItemText(nItem, TSCC_ENCRYPTED, strTemp); if (Channel.GetVideoType() == DVB_H264) { strTemp = _T(" H.264"); } else if (Channel.GetVideoPID()) { strTemp = _T("MPEG-2"); } else { strTemp = _T(" - "); } m_ChannelList.SetItemText(nItem, TSCC_VIDEO_FORMAT, strTemp); strTemp = Channel.GetVideoFpsDesc(); m_ChannelList.SetItemText(nItem, TSCC_VIDEO_FPS, strTemp); if (Channel.GetVideoWidth() || Channel.GetVideoHeight()) { strTemp.Format(_T("%dx%d"), Channel.GetVideoWidth(), Channel.GetVideoHeight()); } else { strTemp = _T(" - "); } m_ChannelList.SetItemText(nItem, TSCC_VIDEO_RES, strTemp); strTemp.Format(_T("%d/%d"), Channel.GetVideoARy(), Channel.GetVideoARx()); m_ChannelList.SetItemText(nItem, TSCC_VIDEO_AR, strTemp); m_ChannelList.SetItemText(nItem, TSCC_CHANNEL, (LPCTSTR) lParam); } return TRUE; }
LRESULT CTunerScanDlg::OnNewChannel(WPARAM wParam, LPARAM lParam) { CDVBChannel Channel; CString strTemp; Channel.FromString((LPCTSTR)lParam); if (!m_bIgnoreEncryptedChannels || !Channel.IsEncrypted()) { int nItem, nChannelNumber; if (Channel.GetOriginNumber() != 0) { // LCN is available nChannelNumber = Channel.GetOriginNumber(); // Insert new channel so that channels are sorted by their logical number for (nItem = 0; nItem < m_ChannelList.GetItemCount(); nItem++) { if ((int)m_ChannelList.GetItemData(nItem) > nChannelNumber) { break; } } } else { nChannelNumber = nItem = m_ChannelList.GetItemCount(); } strTemp.Format(_T("%d"), nChannelNumber); nItem = m_ChannelList.InsertItem(nItem, strTemp); m_ChannelList.SetItemData(nItem, Channel.GetOriginNumber()); m_ChannelList.SetItemText(nItem, TSCC_NAME, Channel.GetName()); strTemp.Format(_T("%d"), Channel.GetFrequency()); m_ChannelList.SetItemText(nItem, TSCC_FREQUENCY, strTemp); strTemp = Channel.IsEncrypted() ? ResStr(IDS_DVB_CHANNEL_ENCRYPTED) : ResStr(IDS_DVB_CHANNEL_NOT_ENCRYPTED); m_ChannelList.SetItemText(nItem, TSCC_ENCRYPTED, strTemp); m_ChannelList.SetItemText(nItem, TSCC_CHANNEL, (LPCTSTR) lParam); } return TRUE; }