ID3v2_tag* new_tag() { ID3v2_tag* tag = (ID3v2_tag*) malloc(sizeof(ID3v2_tag)); tag->tag_header = new_header(); tag->frames = new_frame_list(); return tag; }
ID3v2_tag* new_tag() { ID3v2_tag* tag = (ID3v2_tag*) malloc(sizeof(ID3v2_tag)); if (tag!=NULL){ tag->frames = new_frame_list(); if (tag->frames==NULL){ free(tag); return NULL; } } return tag; }
void add_to_list(ID3v2_frame_list* main, ID3v2_frame* frame) { // if empty list if(main->start == NULL) { main->start = main; main->frame = frame; } else { ID3v2_frame_list* current = new_frame_list(); current->frame = frame; current->start = main->start; } }
int get_tag_size(ID3v2_tag* tag) { int size = 0; ID3v2_frame_list* frame_list = new_frame_list(); if(tag->frames == NULL) { return size; } frame_list = tag->frames->start; while(frame_list != NULL) { size += frame_list->frame->size + 10; frame_list = frame_list->next; } return size; }