У меня есть функция, определенная следующим образом (в C):
gchar **Scan_Return_File_Tag_Field_From_Mask_Code (File_Tag *FileTag, gchar code)
{
switch (code)
{
case 't': /* Title */
return &FileTag->title;
case 'a': /* Artist */
return &FileTag->artist;
case 'b': /* Album */
return &FileTag->album;
case 'd': /* Disc Number */
return &FileTag->disc_number;
case 'y': /* Year */
return &FileTag->year;
case 'n': /* Track */
return &FileTag->track;
case 'l': /* Track Total */
return &FileTag->track_total;
case 'g': /* Genre */
return &FileTag->genre;
case 'c': /* Comment */
return &FileTag->comment;
case 'p': /* Composer */
return &FileTag->composer;
case 'o': /* Orig. Artist */
return &FileTag->orig_artist;
case 'r': /* Copyright */
return &FileTag->copyright;
case 'u': /* URL */
return &FileTag->url;
case 'e': /* Encoded by */
return &FileTag->encoded_by;
case 'i': /* Ignored */
return NULL;
default:
Log_Print(LOG_ERROR,"Scanner: Invalid code '%%%c' found!",code);
return NULL;
}
}
Я пытаюсь добавить новое условие в оператор switch, например
case 'f':
В котором будет возвращен первый символ & FileTag-> artist.
Я искал весь интернет в поисках решения, но пришел с пустыми руками. У кого-нибудь есть идеи?
Обновление:
Если это помогает, эта функция является частью приложения EasyTag. Из того, что я видел, просматривая код, именно здесь определяется новое имя файла для функции сортировки файлов easytag. Я пытаюсь добавить новую переменную, чтобы приложение могло сортировать музыку по каталогам следующим образом: <First letter of artist name>/<Artist>/<Album>/<Tracks>
Всегда есть вероятность, что я могу смотреть на неправильную функцию, но насколько я знаю, я.
Другое обновление:
Я получил эту функцию, работающую так, как я хотел (указатели - забавные мелочи), но, как указано ниже, она не выполняет то, что ожидал Спасибо за помощь и терпение!