int __stdcall TagFileSimple(const str_ansi * pFilename, const char * pArtist, const char * pAlbum, const char * pTitle, const char * pComment, const char * pGenre, const char * pYear, const char * pTrack, BOOL bClearFirst, BOOL bUseOldID3) { CSmartPtr<wchar_t> spFilename(GetUTF16FromANSI(pFilename), TRUE); IO_CLASS_NAME FileIO; if (FileIO.Open(spFilename) != 0) return -1; CAPETag APETag(&FileIO, TRUE); if (bClearFirst) APETag.ClearFields(); APETag.SetFieldString(APE_TAG_FIELD_ARTIST, pArtist, TRUE); APETag.SetFieldString(APE_TAG_FIELD_ALBUM, pAlbum, TRUE); APETag.SetFieldString(APE_TAG_FIELD_TITLE, pTitle, TRUE); APETag.SetFieldString(APE_TAG_FIELD_GENRE, pGenre, TRUE); APETag.SetFieldString(APE_TAG_FIELD_YEAR, pYear, TRUE); APETag.SetFieldString(APE_TAG_FIELD_COMMENT, pComment, TRUE); APETag.SetFieldString(APE_TAG_FIELD_TRACK, pTrack, TRUE); if (APETag.Save(bUseOldID3) != 0) { return -1; } return 0; }
int __stdcall GetID3Tag(const str_ansi * pFilename, ID3_TAG * pID3Tag) { CSmartPtr<wchar_t> spFilename(GetUTF16FromANSI(pFilename), TRUE); IO_CLASS_NAME FileIO; if (FileIO.Open(spFilename) != 0) return -1; CAPETag APETag(&FileIO, TRUE); return APETag.CreateID3Tag(pID3Tag); }
IAPETag* __stdcall c_GetAPETag(const str_ansi * pFilename, bool bCheckID3Tag) { CSmartPtr<wchar_t> spFilename(GetUTF16FromANSI(pFilename), TRUE); IO_CLASS_NAME FileIO; if (FileIO.Open(spFilename) != 0) return NULL; CAPETag *pAPETag = new CAPETag(&FileIO, TRUE); printf("CREATED tag: %p\n", pAPETag); return pAPETag; }
CAPELink::CAPELink(const str_utf16 * pFilename) { // empty m_bIsLinkFile = FALSE; m_nStartBlock = 0; m_nFinishBlock = 0; m_cImageFilename[0] = 0; // open the file IO_CLASS_NAME ioLinkFile; if (ioLinkFile.Open(pFilename) == ERROR_SUCCESS) { // create a buffer CSmartPtr<char> spBuffer(new char [1024], TRUE); // fill the buffer from the file and null terminate it unsigned int nBytesRead = 0; ioLinkFile.Read(spBuffer.GetPtr(), 1023, &nBytesRead); spBuffer[nBytesRead] = 0; // call the other constructor (uses a buffer instead of opening the file) ParseData(spBuffer, pFilename); } }