// buffer <- void* pre-loaded data /* SAMPLEFORMAT * 1 = unsigned integer data * 2 = two’s complement signed integer data * 3 = IEEE floating point data [IEEE] * 4 = undefined data format */ if ( fmt == 3 && bps == 32 ) { // Floating-point if ( av_store( array, i, newSVnv( (double)(((float*)buffer)[i]) ) ) == NULL ) ok = 0; } else if ( bps == 8 ) { // Char if ( av_store( array, i, newSViv( (int)(((char*)buffer)[i]) ) ) == NULL ) ok = 0; } // Int else if ( bps == 16 ) { if ( av_store( array, i, newSViv( (int)(((uint16*)buffer)[i]) ) ) == NULL ) ok = 0; } else { if ( av_store( array, i, newSViv( (int)(((int*)buffer)[i]) ) ) == NULL ) ok = 0; } ...