INNER CODE UNIT · C++

code

TheAssemblyArmada/Vanilla-Conquer · common/auduncmp.cpp:52

                code = *src++;
                sample += ZapTabFour[(code & 0x0F)]; // lower nibble
                *dst++ = clamp(sample, 0, 255);
                sample += ZapTabFour[(code >> 4)]; // higher nibble
                *dst++ = clamp(sample, 0, 255);
                remaining -= 2; // two bytes added to output
            }
            break;

        case 0:                                 // ADPCM 8-bit -> 2-bit
            for (++count; count > 0; --count) { // decode (count+1) bytes
                code = *src++;
                sample += ZapTabTwo[(code & 0x03)]; // lower 2 bits
                *dst++ = clamp(sample, 0, 255);
                sample += ZapTabTwo[((code >> 2) & 0x03)]; // lower middle 2 bits
                *dst++ = clamp(sample, 0, 255);
                sample += ZapTabTwo[((code >> 4) & 0x03)]; // higher middle 2 bits
                *dst++ = clamp(sample, 0, 255);

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…