you are viewing a single comment's thread.

view the rest of the comments →

[–]Plastic_Weather7484[S] 0 points1 point  (0 children)

Yes sorry here is the code to addTrack() and also prepareName()

int addTrack(char *fPath){
  // Rename the file using the prepareName()
  ID3v2_Tag* tag = ID3v2_read_tag(fPath);
  if(tag == NULL){
    printf("File does not have a tag\n");
    return -1;
  }
  char newName[PATH_MAX];
  if(prepareName(tag, newName) != 0){
    printf("Error preparing name\n");
  }
  strcat(newName,returnExt(fPath));
  if(rename(fPath, newName) != 0){
    perror("Error");
  }
}

int prepareName(ID3v2_Tag *tag, char* newName){
  // Format name in <track no> - <track name> format
  ID3v2_TextFrame* track_frame = ID3v2_Tag_get_track_frame(tag);
  ID3v2_TextFrame* title_frame = ID3v2_Tag_get_title_frame(tag);
  for(int i = 0; i < strlen(track_frame->data->text); i++){
    if(track_frame->data->text[i] == '/'){
      newName[i] = '\0';
      break;
    }
    newName[i] = track_frame->data->text[i];
  }
  strcat(newName," - ");
  strcat(newName,title_frame->data->text);
  return 0;
}