UNPKG

@yume-chan/scrcpy

Version:
28 lines 1.14 kB
import { getUint16 } from "@yume-chan/no-data-view"; import { NumberFieldDefinition } from "@yume-chan/struct"; export function clamp(value, min, max) { if (value < min) { return min; } if (value > max) { return max; } return value; } export const ScrcpyUnsignedFloatNumberVariant = { size: 2, signed: false, deserialize(array, littleEndian) { const value = getUint16(array, 0, littleEndian); // https://github.com/Genymobile/scrcpy/blob/1f138aef41de651668043b32c4effc2d4adbfc44/server/src/main/java/com/genymobile/scrcpy/Binary.java#L22 return value === 0xffff ? 1 : value / 0x10000; }, serialize(dataView, offset, value, littleEndian) { // https://github.com/Genymobile/scrcpy/blob/1f138aef41de651668043b32c4effc2d4adbfc44/app/src/util/binary.h#L51 value = clamp(value, -1, 1); value = value === 1 ? 0xffff : value * 0x10000; dataView.setUint16(offset, value, littleEndian); }, }; export const ScrcpyUnsignedFloatFieldDefinition = new NumberFieldDefinition(ScrcpyUnsignedFloatNumberVariant); //# sourceMappingURL=float.js.map