Initial community commit
This commit is contained in:
parent
537bcbc862
commit
fc06254474
16440 changed files with 4239995 additions and 2 deletions
175
Src/id3v2/id3_misc_support.cpp
Normal file
175
Src/id3v2/id3_misc_support.cpp
Normal file
|
@ -0,0 +1,175 @@
|
|||
// The authors have released ID3Lib as Public Domain (PD) and claim no copyright,
|
||||
// patent or other intellectual property protection in this work. This means that
|
||||
// it may be modified, redistributed and used in commercial and non-commercial
|
||||
// software and hardware without restrictions. ID3Lib is distributed on an "AS IS"
|
||||
// basis, WITHOUT WARRANTY OF ANY KIND, either express or implied.
|
||||
//
|
||||
// The ID3Lib authors encourage improvements and optimisations to be sent to the
|
||||
// ID3Lib coordinator, currently Dirk Mahoney (dirk@id3.org). Approved
|
||||
// submissions may be altered, and will be included and released under these terms.
|
||||
//
|
||||
// Mon Nov 23 18:34:01 1998
|
||||
|
||||
|
||||
#include "id3_misc_support.h"
|
||||
|
||||
|
||||
int ID3_UnicodeToLatin(char *latin, const wchar_t *unicode, luint len, int inLen)
|
||||
{
|
||||
if (unicode && latin && len)
|
||||
return WideCharToMultiByte(28591, 0, unicode, inLen/*-1*/, latin, len, NULL, NULL) - 1;
|
||||
else if (latin && len)
|
||||
latin[0]=0;
|
||||
return 0;
|
||||
}
|
||||
|
||||
int ID3_UnicodeToLocal(char *local, const wchar_t *unicode, luint len, int inLen)
|
||||
{
|
||||
if (unicode && local && len)
|
||||
return WideCharToMultiByte(CP_ACP, 0, unicode, inLen/*-1*/, local, len, NULL, NULL)-1;
|
||||
else if (local && len)
|
||||
local[0]=0;
|
||||
return 0;
|
||||
}
|
||||
|
||||
int ID3_UnicodeToUTF8(char *local, const wchar_t *unicode, luint len, int inLen)
|
||||
{
|
||||
if (unicode && local && len)
|
||||
return WideCharToMultiByte(CP_UTF8, 0, unicode, inLen/*-1*/, local, len, NULL, NULL)-1;
|
||||
else if (local && len)
|
||||
local[0]=0;
|
||||
return 0;
|
||||
}
|
||||
|
||||
void ID3_AddArtist(ID3_Tag *tag, char *text)
|
||||
{
|
||||
if (tag->Find(ID3FID_LEADARTIST ) == NULL &&
|
||||
tag->Find (ID3FID_BAND ) == NULL &&
|
||||
tag->Find (ID3FID_CONDUCTOR ) == NULL &&
|
||||
tag->Find (ID3FID_COMPOSER ) == NULL &&
|
||||
text && text[0])
|
||||
{
|
||||
ID3_Frame *artistFrame=new ID3_Frame;
|
||||
artistFrame->SetID(ID3FID_LEADARTIST);
|
||||
artistFrame->Field(ID3FN_TEXT).SetLocal(text);
|
||||
tag->AddFrame(artistFrame, true);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
void ID3_AddArtist_Latin(ID3_Tag *tag, char *text)
|
||||
{
|
||||
if (tag->Find (ID3FID_LEADARTIST ) == NULL &&
|
||||
tag->Find (ID3FID_BAND ) == NULL &&
|
||||
tag->Find (ID3FID_CONDUCTOR ) == NULL &&
|
||||
tag->Find (ID3FID_COMPOSER ) == NULL &&
|
||||
text && text[0])
|
||||
{
|
||||
ID3_Frame *artistFrame= new ID3_Frame;
|
||||
|
||||
artistFrame->SetID (ID3FID_LEADARTIST);
|
||||
artistFrame->Field(ID3FN_TEXT).SetLatin(text);
|
||||
tag->AddFrame (artistFrame, true );
|
||||
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
|
||||
void ID3_AddAlbum(ID3_Tag *tag, char *text)
|
||||
{
|
||||
if (tag->Find (ID3FID_ALBUM ) == NULL && strlen (text ) > 0 )
|
||||
{
|
||||
ID3_Frame *albumFrame;
|
||||
|
||||
if (albumFrame = new ID3_Frame )
|
||||
{
|
||||
albumFrame->SetID (ID3FID_ALBUM );
|
||||
|
||||
albumFrame->Field(ID3FN_TEXT).SetLocal(text);
|
||||
tag->AddFrame (albumFrame, true );
|
||||
}
|
||||
else
|
||||
ID3_THROW (ID3E_NoMemory );
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
void ID3_AddAlbum_Latin(ID3_Tag *tag, char *text)
|
||||
{
|
||||
if (tag->Find(ID3FID_ALBUM) == NULL
|
||||
&& text && text[0])
|
||||
{
|
||||
ID3_Frame *albumFrame = new ID3_Frame;
|
||||
|
||||
albumFrame->SetID (ID3FID_ALBUM );
|
||||
|
||||
albumFrame->Field(ID3FN_TEXT).SetLocal(text);
|
||||
tag->AddFrame (albumFrame, true );
|
||||
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
void ID3_AddTitle(ID3_Tag *tag, char *text)
|
||||
{
|
||||
if (tag->Find(ID3FID_TITLE) == NULL
|
||||
&& text && text[0])
|
||||
{
|
||||
ID3_Frame *titleFrame;
|
||||
|
||||
if (titleFrame = new ID3_Frame)
|
||||
{
|
||||
titleFrame->SetID(ID3FID_TITLE);
|
||||
titleFrame->Field(ID3FN_TEXT).SetLocal(text);
|
||||
tag->AddFrame (titleFrame, true );
|
||||
}
|
||||
else
|
||||
ID3_THROW(ID3E_NoMemory);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
void ID3_AddTitle_Latin(ID3_Tag *tag, char *text)
|
||||
{
|
||||
if (tag->Find(ID3FID_TITLE) == NULL
|
||||
&& text && text[0])
|
||||
{
|
||||
ID3_Frame *titleFrame= new ID3_Frame;
|
||||
|
||||
titleFrame->SetID(ID3FID_TITLE);
|
||||
titleFrame->Field(ID3FN_TEXT).SetLatin(text);
|
||||
tag->AddFrame(titleFrame, true);
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
void ID3_AddLyrics(ID3_Tag *tag, char *text)
|
||||
{
|
||||
if (tag->Find (ID3FID_UNSYNCEDLYRICS ) == NULL && strlen (text ) > 0 )
|
||||
{
|
||||
ID3_Frame *lyricsFrame;
|
||||
|
||||
if (lyricsFrame = new ID3_Frame )
|
||||
{
|
||||
lyricsFrame->SetID (ID3FID_UNSYNCEDLYRICS );
|
||||
lyricsFrame->Field(ID3FN_LANGUAGE).SetLatin("eng");
|
||||
lyricsFrame->Field(ID3FN_TEXT ).SetLocal(text);
|
||||
tag->AddFrame (lyricsFrame, true );
|
||||
}
|
||||
else
|
||||
ID3_THROW (ID3E_NoMemory );
|
||||
}
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue