lpData in float umwandeln



  • Hallo!

    Ich habe einen LPWAVEHDR* pHdr und darin enthaltenen Sampledaten(pHdr->lpData).
    Diese müsste ich allerdings irgendwie in etwas floatmäßiges umwandeln, weil ich ja nur mit floats meinen FFT-Algorithmus aufrufen kann... Wie mache ich das denn am besten? Ich habe im Internet gelesen, dass man lpData in BYTE umwandeln kann, allerdings weiß ich nicht, ob das mir was bringt.

    Wie mache ich das denn?

    MFG

    Hansi



  • naja was is lpDate für ein Datentyp?? wenn du ihn in byte umwandeln kannst, nehm ich an der ist evtl. nur 1 8bit groß.. abe float werte haben doch 32 bit?? grüße


  • Administrator

    Hansi schrieb:

    ... floatmäßiges ...

    LOL, toller Audruck.
    Also erkundige dich mal, was lpData nun wirklich ist, denn einfach nur so mal rumcasten und probieren, ist nicht so das richtige Vorgehen. Nur weil du Float brauchst, heisst das noch nicht, dass lpData wirklich auf Floats zeigt.

    Ich habe aus Langeweile mal kurz in der MSDN nachgeschaut. lpData ist vom Typ LPSTR, also ein char*. Ich zweifle irgendwie daran, dass dort drin float-Werte sein sollen.
    Example of Writing Waveform Data
    WAVEHDR

    Naja ich hoffe mal ich habe jetzt genügend Warnung angezeigt, bevor ich dir nun sage, wie man den Zeiger casten kann ^^

    float* pFloat = reinterpret_cast<float*>(pHdr->lpData);
    

    Übrigens wärst du entweder im WINAPI oder C++ Forum deutlich besser aufgehoben mit deiner Frage. Es ist mir ein Rätsel, was dies mit der MFC zu tun hat. 😉

    Grüssli



  • Hi und Danke für die schnelle Antwort! Ja ich hab das jetzt probiert, aber es klappt so nicht, die sampledaten die er mir ausgibt sind auf jeden fall falsch, also sind das nicht die Sampledaten in lpData, wie bereits gesagt 😉
    In welcher variable können denn die Sampledaten sonst sein?
    Also im "InputThread" wird immer

    ::waveInUnprepareHeader(m_hRecord, pHdr, sizeof(WAVEHDR));
    

    aufgerufen. In welcher Variablen sind denn dann die Sampledaten, hat davon jemand ne ahnung???

    Danke

    MFG

    Hansi


Log in to reply