示例#1
0
int main( unsigned int argc, char * const argv[])
{
  int ulFlag = ID3TT_ID3;
  ID3D_INIT_DOUT();
  gengetopt_args_info args;

  if (cmdline_parser(argc, argv, &args) != 0)
  {
    exit(1);
  }

#if defined ID3_ENABLE_DEBUG
  if (args.warning_flag)
  {
    ID3D_INIT_WARNING();
    ID3D_WARNING ( "warnings turned on" );
  }
  if (args.notice_flag)
  {
    ID3D_INIT_NOTICE();
    ID3D_NOTICE ( "notices turned on" );
  }
#endif

  if (args.v1tag_flag)
  {
    ulFlag = ID3TT_ID3V1;
  }

  if (args.v2tag_flag)
  {
    ulFlag = ID3TT_ID3V2;
  }
  

  if (args.inputs_num != 2)
  {
    cerr << "Usage: id3cp [OPTIONS] SOURCE DEST" << endl;
    exit(1);
  }

  const char *source = args.inputs[0], *dest = args.inputs[1];
  
  ID3_Tag myTag;
  
  cout << "Parsing " << source << ": ";
  
  myTag.Clear();
  myTag.Link(source, ID3TT_ALL);
  
  cout << "done.  Copying to " << dest << ": ";
  
  myTag.Link(dest, ID3TT_NONE);
  myTag.Update(ulFlag);
  
  cout << "done" << endl;
  
  return 0;
}
示例#2
0
bool ID3_Frame::Parse(ID3_Reader& reader)
{
  try // Klenotic: Catch errors and return false instead of crashing.
  { 
  return _impl->Parse(reader);
}
  catch(...)
  {
    ID3D_WARNING( "ID3_Frame::Parse: call to _impl->Parse() failed");
    return false;
  }
}