| | 145 | iter = ID3Tag_CreateIterator(pTag); |
|---|
| | 146 | if (iter) |
|---|
| | 147 | { |
|---|
| | 148 | for(;;) |
|---|
| | 149 | { |
|---|
| | 150 | pFrame = ID3TagIterator_GetNext(iter); |
|---|
| | 151 | if (pFrame == NULL) |
|---|
| | 152 | break; |
|---|
| | 153 | |
|---|
| | 154 | if (ID3Frame_GetID(pFrame) == ID3FID_USERTEXT) |
|---|
| | 155 | { |
|---|
| | 156 | pData[0] = 0; |
|---|
| | 157 | pField = ID3Frame_GetField(pFrame, ID3FN_DESCRIPTION); |
|---|
| | 158 | ID3Field_GetASCII(pField, pData, iDataFieldLen); |
|---|
| | 159 | |
|---|
| | 160 | if (strcmp(pData, "MusicBrainz TRM Id") == 0) |
|---|
| | 161 | { |
|---|
| | 162 | pField = ID3Frame_GetField(pFrame, ID3FN_TEXT); |
|---|
| | 163 | pData[0] = 0; |
|---|
| | 164 | ID3Field_GetASCII(pField, pData, iDataFieldLen); |
|---|
| | 165 | if (pData[0] != 0) |
|---|
| | 166 | { |
|---|
| | 167 | data.fileTrm = pData; |
|---|
| | 168 | continue; |
|---|
| | 169 | } |
|---|
| | 170 | } |
|---|
| | 171 | |
|---|
| | 172 | if (strcmp(pData, "MusicBrainz Artist Id") == 0) |
|---|
| | 173 | { |
|---|
| | 174 | pField = ID3Frame_GetField(pFrame, ID3FN_TEXT); |
|---|
| | 175 | pData[0] = 0; |
|---|
| | 176 | ID3Field_GetASCII(pField, pData, iDataFieldLen); |
|---|
| | 177 | if (pData[0] != 0) |
|---|
| | 178 | { |
|---|
| | 179 | data.artistId = pData; |
|---|
| | 180 | continue; |
|---|
| | 181 | } |
|---|
| | 182 | } |
|---|
| | 183 | |
|---|
| | 184 | if (strcmp(pData, "MusicBrainz Album Id") == 0) |
|---|
| | 185 | { |
|---|
| | 186 | pField = ID3Frame_GetField(pFrame, ID3FN_TEXT); |
|---|
| | 187 | pData[0] = 0; |
|---|
| | 188 | ID3Field_GetASCII(pField, pData, iDataFieldLen); |
|---|
| | 189 | if (pData[0] != 0) |
|---|
| | 190 | { |
|---|
| | 191 | data.albumId = pData; |
|---|
| | 192 | continue; |
|---|
| | 193 | } |
|---|
| | 194 | } |
|---|
| | 195 | |
|---|
| | 196 | } |
|---|
| | 197 | } |
|---|
| | 198 | |
|---|
| | 199 | ID3TagIterator_Delete(iter); |
|---|
| | 200 | } |
|---|
| | 201 | |
|---|
| | 335 | wroteId = false; |
|---|
| | 336 | iter = ID3Tag_CreateIterator(pTag); |
|---|
| | 337 | if (iter) |
|---|
| | 338 | { |
|---|
| | 339 | for(;;) |
|---|
| | 340 | { |
|---|
| | 341 | pFrame = ID3TagIterator_GetNext(iter); |
|---|
| | 342 | if (pFrame == NULL) |
|---|
| | 343 | break; |
|---|
| | 344 | |
|---|
| | 345 | if (ID3Frame_GetID(pFrame) == ID3FID_USERTEXT) |
|---|
| | 346 | { |
|---|
| | 347 | pData[0] = 0; |
|---|
| | 348 | pField = ID3Frame_GetField(pFrame, ID3FN_DESCRIPTION); |
|---|
| | 349 | ID3Field_GetASCII(pField, pData, iDataFieldLen); |
|---|
| | 350 | if (strcmp(pData, "MusicBrainz Artist Id") == 0) |
|---|
| | 351 | { |
|---|
| | 352 | pField = ID3Frame_GetField(pFrame, ID3FN_TEXT); |
|---|
| | 353 | ID3Field_SetASCII(pField, data.artistId.c_str()); |
|---|
| | 354 | wroteId = true; |
|---|
| | 355 | break; |
|---|
| | 356 | } |
|---|
| | 357 | } |
|---|
| | 358 | } |
|---|
| | 359 | |
|---|
| | 360 | ID3TagIterator_Delete(iter); |
|---|
| | 361 | } |
|---|
| | 362 | |
|---|
| | 363 | if (!wroteId) |
|---|
| | 364 | { |
|---|
| | 365 | pFrame = ID3Frame_NewID(ID3FID_USERTEXT); |
|---|
| | 366 | pField = ID3Frame_GetField(pFrame, ID3FN_DESCRIPTION); |
|---|
| | 367 | ID3Field_SetASCII(pField, "MusicBrainz Artist Id"); |
|---|
| | 368 | |
|---|
| | 369 | pField = ID3Frame_GetField(pFrame, ID3FN_TEXT); |
|---|
| | 370 | ID3Field_SetASCII(pField, data.artistId.c_str()); |
|---|
| | 371 | ID3Tag_AttachFrame(pTag, pFrame); |
|---|
| | 372 | } |
|---|
| | 373 | |
|---|
| | 374 | wroteId = false; |
|---|
| | 375 | iter = ID3Tag_CreateIterator(pTag); |
|---|
| | 376 | if (iter) |
|---|
| | 377 | { |
|---|
| | 378 | for(;;) |
|---|
| | 379 | { |
|---|
| | 380 | pFrame = ID3TagIterator_GetNext(iter); |
|---|
| | 381 | if (pFrame == NULL) |
|---|
| | 382 | break; |
|---|
| | 383 | |
|---|
| | 384 | if (ID3Frame_GetID(pFrame) == ID3FID_USERTEXT) |
|---|
| | 385 | { |
|---|
| | 386 | pData[0] = 0; |
|---|
| | 387 | pField = ID3Frame_GetField(pFrame, ID3FN_DESCRIPTION); |
|---|
| | 388 | ID3Field_GetASCII(pField, pData, iDataFieldLen); |
|---|
| | 389 | if (strcmp(pData, "MusicBrainz Album Id") == 0) |
|---|
| | 390 | { |
|---|
| | 391 | pField = ID3Frame_GetField(pFrame, ID3FN_TEXT); |
|---|
| | 392 | ID3Field_SetASCII(pField, data.albumId.c_str()); |
|---|
| | 393 | wroteId = true; |
|---|
| | 394 | break; |
|---|
| | 395 | } |
|---|
| | 396 | } |
|---|
| | 397 | } |
|---|
| | 398 | |
|---|
| | 399 | ID3TagIterator_Delete(iter); |
|---|
| | 400 | } |
|---|
| | 401 | |
|---|
| | 402 | if (!wroteId) |
|---|
| | 403 | { |
|---|
| | 404 | pFrame = ID3Frame_NewID(ID3FID_USERTEXT); |
|---|
| | 405 | pField = ID3Frame_GetField(pFrame, ID3FN_DESCRIPTION); |
|---|
| | 406 | ID3Field_SetASCII(pField, "MusicBrainz Album Id"); |
|---|
| | 407 | |
|---|
| | 408 | pField = ID3Frame_GetField(pFrame, ID3FN_TEXT); |
|---|
| | 409 | ID3Field_SetASCII(pField, data.albumId.c_str()); |
|---|
| | 410 | ID3Tag_AttachFrame(pTag, pFrame); |
|---|
| | 411 | } |
|---|
| | 412 | |
|---|
| | 413 | wroteId = false; |
|---|
| | 414 | iter = ID3Tag_CreateIterator(pTag); |
|---|
| | 415 | if (iter) |
|---|
| | 416 | { |
|---|
| | 417 | for(;;) |
|---|
| | 418 | { |
|---|
| | 419 | pFrame = ID3TagIterator_GetNext(iter); |
|---|
| | 420 | if (pFrame == NULL) |
|---|
| | 421 | break; |
|---|
| | 422 | |
|---|
| | 423 | if (ID3Frame_GetID(pFrame) == ID3FID_USERTEXT) |
|---|
| | 424 | { |
|---|
| | 425 | pData[0] = 0; |
|---|
| | 426 | pField = ID3Frame_GetField(pFrame, ID3FN_DESCRIPTION); |
|---|
| | 427 | ID3Field_GetASCII(pField, pData, iDataFieldLen); |
|---|
| | 428 | if (strcmp(pData, "MusicBrainz TRM Id") == 0) |
|---|
| | 429 | { |
|---|
| | 430 | pField = ID3Frame_GetField(pFrame, ID3FN_TEXT); |
|---|
| | 431 | ID3Field_SetASCII(pField, data.fileTrm.c_str()); |
|---|
| | 432 | wroteId = true; |
|---|
| | 433 | break; |
|---|
| | 434 | } |
|---|
| | 435 | } |
|---|
| | 436 | } |
|---|
| | 437 | |
|---|
| | 438 | ID3TagIterator_Delete(iter); |
|---|
| | 439 | } |
|---|
| | 440 | |
|---|
| | 441 | if (!wroteId) |
|---|
| | 442 | { |
|---|
| | 443 | pFrame = ID3Frame_NewID(ID3FID_USERTEXT); |
|---|
| | 444 | pField = ID3Frame_GetField(pFrame, ID3FN_DESCRIPTION); |
|---|
| | 445 | ID3Field_SetASCII(pField, "MusicBrainz TRM Id"); |
|---|
| | 446 | |
|---|
| | 447 | pField = ID3Frame_GetField(pFrame, ID3FN_TEXT); |
|---|
| | 448 | ID3Field_SetASCII(pField, data.fileTrm.c_str()); |
|---|
| | 449 | ID3Tag_AttachFrame(pTag, pFrame); |
|---|
| | 450 | } |
|---|
| | 451 | |
|---|