CString GetValue(const CTag* pTag) { CString strValue; if (pTag->IsStr()) strValue = pTag->GetStr(); else if (pTag->IsInt()) { if (pTag->GetNameID() == FT_MEDIA_LENGTH || pTag->GetNameID() == FT_LASTSEENCOMPLETE) SecToTimeLength(pTag->GetInt(), strValue); else if (pTag->GetNameID() == FT_FILERATING) strValue = GetRateString(pTag->GetInt()); else if (pTag->GetNameID() == 0x10 || pTag->GetNameID() >= 0xFA) strValue.Format(_T("%u"), pTag->GetInt()); else strValue = GetFormatedUInt(pTag->GetInt()); } else if (pTag->IsFloat()) strValue.Format(_T("%f"), pTag->GetFloat()); else if (pTag->IsHash()) strValue = md4str(pTag->GetHash()); else if (pTag->IsInt64(false)) strValue = GetFormatedUInt64(pTag->GetInt64()); else strValue.Format(_T("<Unknown value of type 0x%02X>"), pTag->GetType()); return strValue; }
void CSearchParamsWnd::SetParameters(const SSearchParams* pParams) { if (!pParams->bClientSharedFiles) { m_ctlName.SetWindowText(pParams->strExpression); m_ctlFileType.SelectItemDataStringA(pParams->strFileType); m_ctlOpts.SetItemText(orMinSize, 1, pParams->strMinSize); m_ctlOpts.SetItemText(orMaxSize, 1, pParams->strMaxSize); m_ctlOpts.SetItemText(orExtension, 1, pParams->strExtension); CString strBuff; if (pParams->uAvailability > 0) strBuff.Format(_T("%u"), pParams->uAvailability); else strBuff.Empty(); m_ctlOpts.SetItemText(orAvailability, 1, strBuff); if (pParams->uComplete > 0) strBuff.Format(_T("%u"), pParams->uComplete); else strBuff.Empty(); m_ctlOpts.SetItemText(orCompleteSources, 1, strBuff); m_ctlOpts.SetItemText(orCodec, 1, pParams->strCodec); if (pParams->ulMinBitrate > 0) strBuff.Format(_T("%u"), pParams->ulMinBitrate); else strBuff.Empty(); m_ctlOpts.SetItemText(orBitrate, 1, strBuff); if (pParams->ulMinLength > 0) SecToTimeLength(pParams->ulMinLength, strBuff); else strBuff.Empty(); m_ctlOpts.SetItemText(orLength, 1, strBuff); m_ctlOpts.SetItemText(orTitle, 1, pParams->strTitle); m_ctlOpts.SetItemText(orAlbum, 1, pParams->strAlbum); m_ctlOpts.SetItemText(orArtist, 1, pParams->strArtist); } }
CString GetValue(const Kademlia::CTag* pTag) { CString strValue; if (pTag->IsStr()) strValue = pTag->GetStr(); else if (pTag->IsInt()) { if ((BYTE)pTag->m_name[0] == 0x10 || (BYTE)pTag->m_name[0] > 0xFA) strValue.Format(_T("%u"), pTag->GetInt()); else if (pTag->m_name.Compare(TAG_MEDIA_LENGTH) == 0) SecToTimeLength(pTag->GetInt(), strValue); else strValue = GetFormatedUInt(pTag->GetInt()); } else if (pTag->m_type == 4) strValue.Format(_T("%f"), pTag->GetFloat()); else if (pTag->m_type == 5) strValue.Format(_T("%u"), pTag->GetInt()); else strValue.Format(_T("<Unknown value of type 0x%02X>"), pTag->m_type); return strValue; }
CString GetValue(const Kademlia::CKadTag* pTag) // FIXME LARGE FILES { CString strValue; if (pTag->IsStr()) strValue = pTag->GetStr(); else if (pTag->IsInt()) { if (pTag->m_name.Compare(TAG_MEDIA_LENGTH) == 0) SecToTimeLength((unsigned long)pTag->GetInt(), strValue); else if (pTag->m_name.Compare(TAG_FILERATING) == 0) strValue = GetRateString((UINT)pTag->GetInt()); else if ((BYTE)pTag->m_name[0] == 0x10 || (BYTE)pTag->m_name[0] >= 0xFA) strValue.Format(_T("%u"), pTag->GetInt()); else strValue = GetFormatedUInt((UINT)pTag->GetInt()); } else if (pTag->m_type == 4) strValue.Format(_T("%f"), pTag->GetFloat()); else if (pTag->m_type == 5) strValue.Format(_T("%u"), pTag->GetInt()); else strValue.Format(_T("<Unknown value of type 0x%02X>"), pTag->m_type); return strValue; }
SSearchParams* CSearchParamsWnd::GetParameters() { CString strExpression; m_ctlName.GetWindowText(strExpression); strExpression.Trim(); if (!IsValidEd2kString(strExpression)){ AfxMessageBox(GetResString(IDS_SEARCH_EXPRERROR) + _T("\n\n") + GetResString(IDS_SEARCH_INVALIDCHAR), MB_ICONWARNING | MB_HELP, eMule_FAQ_Search - HID_BASE_PROMPT); return NULL; } CStringA strFileType; int iItem = m_ctlFileType.GetCurSel(); if (iItem != CB_ERR) { LPCSTR pszED2KFileType = (LPCSTR)m_ctlFileType.GetItemDataPtr(iItem); ASSERT( pszED2KFileType != NULL ); strFileType = pszED2KFileType; } CString strMinSize = m_ctlOpts.GetItemText(orMinSize, 1); uint64 ullMinSize = GetSearchAttrSize(strMinSize); if (ullMinSize == (uint64)-1) { CString strError; strError.Format(GetResString(IDS_SEARCH_ATTRERR), m_ctlOpts.GetItemText(orMinSize, 0)); AfxMessageBox(GetResString(IDS_SEARCH_EXPRERROR) + _T("\n\n") + strError, MB_ICONWARNING | MB_HELP, eMule_FAQ_Search - HID_BASE_PROMPT); return NULL; } CString strMaxSize = m_ctlOpts.GetItemText(orMaxSize, 1); uint64 ullMaxSize = GetSearchAttrSize(strMaxSize); if (ullMaxSize == (uint64)-1) { CString strError; strError.Format(GetResString(IDS_SEARCH_ATTRERR), m_ctlOpts.GetItemText(orMaxSize, 0)); AfxMessageBox(GetResString(IDS_SEARCH_EXPRERROR) + _T("\n\n") + strError, MB_ICONWARNING | MB_HELP, eMule_FAQ_Search - HID_BASE_PROMPT); return NULL; } if (ullMaxSize < ullMinSize){ ullMaxSize = 0; // TODO: Create a message box for that m_ctlOpts.SetItemText(orMaxSize, 1, _T("")); } CString strExtension; if ((m_ctlOpts.GetItemData(orExtension) & 1) == 0) { strExtension = m_ctlOpts.GetItemText(orExtension, 1); strExtension.Trim(); if (!strExtension.IsEmpty() && strExtension[0] == _T('.')) { strExtension = strExtension.Mid(1); m_ctlOpts.SetItemText(orExtension, 1, strExtension); } } UINT uAvailability = 0; if ((m_ctlOpts.GetItemData(orAvailability) & 1) == 0) { CString strAvailability = m_ctlOpts.GetItemText(orAvailability, 1); uAvailability = GetSearchAttrNumber(strAvailability); if (uAvailability == (UINT)-1) { CString strError; strError.Format(GetResString(IDS_SEARCH_ATTRERR), m_ctlOpts.GetItemText(orAvailability, 0)); AfxMessageBox(GetResString(IDS_SEARCH_EXPRERROR) + _T("\n\n") + strError, MB_ICONWARNING | MB_HELP, eMule_FAQ_Search - HID_BASE_PROMPT); return NULL; } else if (uAvailability > 1000000) { uAvailability = 1000000; strAvailability.Format(_T("%u"), uAvailability); m_ctlOpts.SetItemText(orAvailability, 1, strAvailability); } } UINT uComplete = 0; if ((m_ctlOpts.GetItemData(orCompleteSources) & 1) == 0) { CString strComplete = m_ctlOpts.GetItemText(orCompleteSources, 1); uComplete = GetSearchAttrNumber(strComplete); if (uComplete == (UINT)-1) { CString strError; strError.Format(GetResString(IDS_SEARCH_ATTRERR), m_ctlOpts.GetItemText(orCompleteSources, 0)); AfxMessageBox(GetResString(IDS_SEARCH_EXPRERROR) + _T("\n\n") + strError, MB_ICONWARNING | MB_HELP, eMule_FAQ_Search - HID_BASE_PROMPT); return NULL; } else if (uComplete > 1000000) { uComplete = 1000000; strComplete.Format(_T("%u"), uComplete); m_ctlOpts.SetItemText(orCompleteSources, 1, strComplete); } } CString strCodec; if ((m_ctlOpts.GetItemData(orCodec) & 1) == 0) strCodec = m_ctlOpts.GetItemText(orCodec, 1); strCodec.Trim(); ULONG ulMinBitrate = 0; if ((m_ctlOpts.GetItemData(orBitrate) & 1) == 0) { CString strMinBitrate = m_ctlOpts.GetItemText(orBitrate, 1); ulMinBitrate = GetSearchAttrNumber(strMinBitrate); if (ulMinBitrate == (ULONG)-1) { CString strError; strError.Format(GetResString(IDS_SEARCH_ATTRERR), m_ctlOpts.GetItemText(orBitrate, 0)); AfxMessageBox(GetResString(IDS_SEARCH_EXPRERROR) + _T("\n\n") + strError, MB_ICONWARNING | MB_HELP, eMule_FAQ_Search - HID_BASE_PROMPT); return NULL; } else if (ulMinBitrate > 1000000) { ulMinBitrate = 1000000; strMinBitrate.Format(_T("%u"), ulMinBitrate); m_ctlOpts.SetItemText(orBitrate, 1, strMinBitrate); } } ULONG ulMinLength = 0; if ((m_ctlOpts.GetItemData(orLength) & 1) == 0) { CString strMinLength = m_ctlOpts.GetItemText(orLength, 1); ulMinLength = GetSearchAttrLength(strMinLength); if (ulMinLength == (ULONG)-1) { CString strError; strError.Format(GetResString(IDS_SEARCH_ATTRERR), m_ctlOpts.GetItemText(orLength, 0)); AfxMessageBox(GetResString(IDS_SEARCH_EXPRERROR) + _T("\n\n") + strError, MB_ICONWARNING | MB_HELP, eMule_FAQ_Search - HID_BASE_PROMPT); return NULL; } else if (ulMinLength > 3600*24) { ulMinLength = 3600*24; CString strValue; SecToTimeLength(ulMinLength, strValue); m_ctlOpts.SetItemText(orLength, 1, strValue); } } SSearchParams* pParams = new SSearchParams; pParams->strExpression = strExpression; pParams->eType = (ESearchType)m_ctlMethod.GetCurSel(); pParams->strFileType = strFileType; pParams->strMinSize = strMinSize; pParams->ullMinSize = ullMinSize; pParams->strMaxSize = strMaxSize; pParams->ullMaxSize = ullMaxSize; pParams->uAvailability = uAvailability; pParams->strExtension = strExtension; //pParams->bMatchKeywords = IsDlgButtonChecked(IDC_MATCH_KEYWORDS)!=0; pParams->uComplete = uComplete; pParams->strCodec = strCodec; pParams->ulMinBitrate = ulMinBitrate; pParams->ulMinLength = ulMinLength; if ((m_ctlOpts.GetItemData(orTitle) & 1) == 0) { pParams->strTitle = m_ctlOpts.GetItemText(orTitle, 1); pParams->strTitle.Trim(); } if ((m_ctlOpts.GetItemData(orAlbum) & 1) == 0) { pParams->strAlbum = m_ctlOpts.GetItemText(orAlbum, 1); pParams->strAlbum.Trim(); } if ((m_ctlOpts.GetItemData(orArtist) & 1) == 0) { pParams->strArtist = m_ctlOpts.GetItemText(orArtist, 1); pParams->strArtist.Trim(); } return pParams; }