Пример #1
0
static int _id3_find_and_set_frame(ID3Tag *tag, ID3_FrameID id, const char *value)
{
  ID3Frame *frame;
  ID3Field *field;

  /* Remove existing tag to avoid issues with trashed frames. */
  while ((frame = ID3Tag_FindFrameWithID(tag, id)))
    ID3Tag_RemoveFrame(tag, frame);

  if (value && strlen(value) > 0) {
    frame = ID3Frame_NewID(id);
    g_assert(frame);

    ID3Tag_AttachFrame(tag, frame);

    field = ID3Frame_GetField(frame, ID3FN_TEXT);

    if (field)
      ID3Field_SetASCII(field, value); //TODO: UTF8
    else
      return 1;
  }

  return 0;
}
Пример #2
0
void
set_TagField (ID3Tag * myTag, char *data, ID3_FrameID id)
{
  ID3Frame *myFrame;
  ID3Frame *pFrame;
  char *conv_str = NULL;

  myFrame = ID3Frame_NewID (id);

  pFrame = ID3Tag_FindFrameWithID (myTag, id);

  if (pFrame != NULL)
    {
      ID3Tag_RemoveFrame (myTag, pFrame);
    }

  conv_str = g_locale_from_utf8 (data, -1, NULL, NULL, NULL);

  ID3Field_SetASCII (ID3Frame_GetField (myFrame, ID3FN_TEXT), conv_str);
  ID3Tag_AttachFrame (myTag, myFrame);

  g_free (conv_str);

  return;
}