Changeset 834

Show
Ignore:
Timestamp:
2003-04-02 22:55:52 (6 years ago)
Author:
robert
Message:

Finished writing more ID3/Vorbis comment tags

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • mb_tagger/trunk/defs.h

    r833 r834  
    1313    AnsiString trackId; 
    1414    AnsiString artistId;    
     15    AnsiString albumId;    
    1516    AnsiString fileTrm; 
    1617    unsigned long duration; 
     
    2526        trackId = other.trackId; 
    2627        artistId = other.artistId; 
     28        albumId = other.albumId; 
    2729        fileTrm = other.fileTrm; 
    2830        duration = other.duration; 
     
    3941            trackId == other.trackId && 
    4042            artistId == other.artistId && 
     43            albumId == other.albumId && 
    4144            fileTrm == other.fileTrm && 
    4245            duration == other.duration) 
     
    5457        fileTrm = ""; 
    5558        duration = 0; 
     59        artistId = ""; 
     60        trackId = ""; 
     61        albumId = ""; 
    5662    } 
    5763 
  • mb_tagger/trunk/lookup.cpp

    r832 r834  
    77#include "lookup.h" 
    88#include "mb_c.h" 
     9#include "debug.h" 
    910 
    1011#define DB Debug_v("%s:%d", __FILE__, __LINE__); 
     
    1718    char          *args[7]; 
    1819    int            ret, trackNum; 
    19     char           error[255], data[255], trackURI[256], artistURI[256]; 
     20    char           error[255], data[255]; 
     21    char           trackURI[256], artistURI[256], albumURI[256]; 
    2022    char           temp[100], duration[100], status[100]; 
    2123 
     
    102104           mdata.album = AnsiString(data); 
    103105 
     106        mb_GetResultData(o, MBE_AlbumGetAlbumId, albumURI, 256); 
     107        mb_GetIDFromURL(o, albumURI, data, 256); 
     108        mdata.albumId = AnsiString(data); 
     109 
    104110        result.push_back(mdata); 
    105111    } 
     
    185191    // Extract the track duration 
    186192    result.duration = mb_GetResultInt(o, MBE_QuickGetTrackDuration); 
     193    result.albumId = albumId; 
    187194 
    188195    // and clean up the musicbrainz object 
  • mb_tagger/trunk/mbid3.cpp

    r829 r834  
    143143    } 
    144144 
     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 
    145202    delete [] pData; 
    146203    ID3Tag_Delete(pTag); 
     
    276333    } 
    277334 
     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 
    278452    ID3_Err err = ID3Tag_UpdateByTagType(pTag, flag); 
    279453    ID3Tag_Delete(pTag); 
  • mb_tagger/trunk/vorbis.cpp

    r831 r834  
    178178    add_comment(tagmap, "artist", metadata.artist.c_str()); 
    179179    add_comment(tagmap, "album", metadata.album.c_str()); 
     180    add_comment(tagmap, "musicbrainz_artistid", metadata.artistId.c_str()); 
     181    add_comment(tagmap, "musicbrainz_albumid", metadata.albumId.c_str()); 
    180182    add_comment(tagmap, "musicbrainz_trackid", metadata.trackId.c_str()); 
    181183    add_comment(tagmap, "musicbrainz_trmid", metadata.fileTrm.c_str()); 
     
    273275    if (get_comment(tagmap, "musicbrainz_trmid", val)) 
    274276        metadata->fileTrm = AnsiString(val.c_str()); 
     277    if (get_comment(tagmap, "musicbrainz_artistid", val)) 
     278        metadata->artistId = AnsiString(val.c_str()); 
     279    if (get_comment(tagmap, "musicbrainz_albumid", val)) 
     280        metadata->albumId = AnsiString(val.c_str()); 
    275281 
    276282    vcedit_clear(state);