www.pudn.com > eMule0.47c-Sources.zip > demo_main.cpp


//  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 
 
 
#ifndef __DLL 
 
 
#include "id3/id3lib_streams.h" 
#include "id3/tag.h" 
 
using std::cout; 
using std::endl; 
using std::cerr; 
 
 
void MakeDummyTag(void) 
{ 
  ID3_Tag   myTag("dummy.tag"); 
  ID3_Frame myFrame[3]; 
 
  myFrame[0].SetID(ID3FID_USERTEXT); 
  myFrame[0].Field(ID3FN_TEXTENC)     = ID3TE_UNICODE; 
  myFrame[0].Field(ID3FN_DESCRIPTION) = "example #1"; 
  myFrame[0].Field(ID3FN_TEXT)        = "This is the text for example #1"; 
 
  myFrame[1].SetID(ID3FID_USERTEXT); 
  myFrame[1].Field(ID3FN_TEXTENC)     = ID3TE_ASCII; 
  myFrame[1].Field(ID3FN_DESCRIPTION) = "example #2"; 
  myFrame[1].Field(ID3FN_TEXT)        = "This is the text for example #2"; 
 
  myFrame[2].SetID(ID3FID_INVOLVEDPEOPLE); 
  myFrame[2].Field(ID3FN_TEXTENC)     = ID3TE_ASCII; 
  myFrame[2].Field(ID3FN_TEXT).Add("String 1"); 
  myFrame[2].Field(ID3FN_TEXT).Add("String 2"); 
  myFrame[2].Field(ID3FN_TEXT).Add("String 3"); 
  myFrame[2].Field(ID3FN_TEXT).Add("String 4"); 
 
  myTag.AddFrames(myFrame, 3); 
 
  //myTag.SetVersion(3, 0); 
  myTag.SetUnsync(false); 
  myTag.SetExtendedHeader(false); 
  myTag.SetCompression(false); 
  myTag.SetPadding(false); 
 
  myTag.Strip(); 
  myTag.Update(); 
 
  return; 
} 
 
 
void StripTags(char *file) 
{ 
  ID3_Tag myTag; 
 
  myTag.Link(file); 
  myTag.Strip(); 
 
  return; 
} 
 
 
void GetTestTag(void) 
{ 
  ID3_Tag  myTag("dummy.tag"); 
  ID3_Frame *myFrame; 
 
  if (myFrame = myTag.Find(ID3FID_PICTURE)) 
  { 
    cout << "Found a picture frame!\r\n" << endl; 
 
    char *dada = "output.jpg"; 
 
    myFrame->Field(ID3FN_DATA).ToFile(dada); 
  } 
 
  if (myFrame = myTag.Find(ID3FID_USERTEXT, ID3FN_DESCRIPTION, "example #1")) 
  { 
    cout << "Found a user text frame!\r\n" << endl; 
 
    char textBuff[1024]; 
 
    myFrame->Field(ID3FN_DESCRIPTION).Get(textBuff, 1024); 
    cout << "Desc: " << textBuff << endl; 
 
    myFrame->Field(ID3FN_TEXT).Get(textBuff, 1024); 
    cout << "Text: " << textBuff << endl; 
  } 
 
  for (luint i = 0; i < myTag.NumFrames(); i++) 
    if (myFrame = myTag[i]) 
      cout << "Frame " << i << " has ID " << (luint) myFrame->GetID() << endl; 
 
  return; 
} 
 
 
int main(int argc, char *argv[]) 
{ 
  try 
  { 
    //  CreateDemoTag1(); 
    //  MakeDummyTag(); 
    //  GetTestTag(); 
    StripTags("c:\\temp.mp3"); 
  } 
 
 
  catch(ID3_Error err) 
  { 
    cout << "Error in ID3Lib!" << endl; 
    cout << "Error: '" << err.GetErrorDesc() << "'" << endl; 
    cout << " File: '" << err.GetErrorFile() << "'" << endl; 
    cout << " Line: " << err.GetErrorLine() << endl; 
  } 
 
  return 0; 
} 
 
 
#endif