33 if (!
src.expect_item(HEADER_HIGH_US, HEADER_LOW_US))
36 for (;
out.nbits < 20;
out.nbits++) {
38 if (
src.expect_mark(BIT_ONE_HIGH_US)) {
40 }
else if (
src.expect_mark(BIT_ZERO_HIGH_US)) {
42 }
else if (
out.nbits == 12 ||
out.nbits == 15) {
48 out.data = (
out.data << 1UL) | bit;
49 if (
src.expect_space(BIT_LOW_US)) {
51 }
else if (
src.peek_space_at_least(BIT_LOW_US)) {
53 if (
out.nbits == 12 ||
out.nbits == 15 ||
out.nbits == 20)