freedb.org -> CD-TOC Informationen vom Server abrufen



  • Hi zusammen,

    Mein Vorhaben:
    Ich möchte gerne anhand der 'Table of Contents' ID einer Audio CD die Daten vom freedb.org-Server laden.

    Könnt ihr mir sagen wie ich das machen muss?

    Mein Problem ist, dass ich nicht genau weiß wie ich die Daten interpretieren soll, bzw. was ich dem Server zusenden muss...

    Vielen Dank für Hilfe 😉 .



  • Wenn du mit der IOCTL_CDROM_READ_TOC_EX den Ex-Toc holst, kannst du die "Seriennummer" der CD anfordern. Die musst du dann der freedb übergeben.



  • CDROM_READ_TOC_EX TocEx;
    ZeroMemory( &TocEx, sizeof(TocEx) );
    TocEx.Format = CDROM_READ_TOC_FORMAT_CDTEXT;
    
    DWORD Dummy;
    char Buffer[10000];
    CDROM_TOC_CD_TEXT_DATA* pData = (CDROM_TOC_CD_TEXT_DATA*) Buffer;
    DeviceIoControl( hDC, IOCTL_CDROM_READ_TOC, &TocEx, sizeof(TocEx), Buffer, 10000, &Dummy, NULL );
    
    for ( ULONG i=0; pData->Descriptors.SequenceNumber==i; i++ )
    {
        if ( pData->Descriptors[i].PackType == CDROM_CD_TEXT_PACK_DISC_ID )
            MessageBox( NULL, pData->Descriptors[i].Text, "", 0 );
        if ( pData->Descriptors[i].PackType == CDROM_CD_TEXT_PACK_UPC_EAN )
            MessageBox( NULL, pData->Descriptors[i].Text, "", 0 );
    }
    

    So oder so ähnlich 😃
    Allerdings weiß ich auch nicht, ob jetzt [i]DISC_ID* oder UPC_EAN der Wert für freedb sind. Einfach mal ausgeben lassen 🤡

    Edit: War übrigends auch nur geraten, dass der Code in Descriptor->Text ist... Erschien mir aber das einzig logische...
    Und: Für die Definitionen von CDROM_READ_TOC_EX brauchst du glaubich das DDK. Oder halt nicht, wenn du die Definitionen hast, die findest du nämlich hier im letzten Re: CD Text.



  • Hi und danke 👍 👍 aber....

    Mit gings eigentlich darum:

    Me schrieb:

    Mein Problem ist, dass ich nicht genau weiß wie ich die Daten interpretieren soll, bzw. was ich dem Server zusenden muss...

    Ich hab den TOC-Index ja schon, ich weiß nur eben nicht, wie ich anhand dieser Nummer die Infos vom freedb-Server hole...

    Kannst du mir da nochmal helfen, bitte 🙄



  • Auf freedb.org steht nicht wirklich was (freedb.org->applications). Aber auf CodeProject gibts nen Artikel, der den Zugriff auf FreeDB beschreibt. Bin dübergeflogen, sieht ganz gut aus. Kannst dir den ja mal durchlesen und Quellcode runterladen. Dann müsstest du dir das schon zusammenbasteln können 🙂

    Ansonsten kannste hier natürlich gerne weitere Fragen stellen!

    http://www.codeproject.com/cs/media/freedb.asp


Anmelden zum Antworten