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)