/** * struct ir_raw_timings_manchester - Manchester coding timings * @leader_pulse: duration of leader pulse (if any) 0 if continuing * existing signal * @leader_space: duration of leader space (if any) * @clock: duration of each pulse/space in ns * @invert: if set clock logic is inverted * (0 = space + pulse, 1 = pulse + space) * @trailer_space: duration of trailer space in ns
*/ struct ir_raw_timings_manchester { unsignedint leader_pulse; unsignedint leader_space; unsignedint clock; unsignedint invert:1; unsignedint trailer_space;
};
int ir_raw_gen_manchester(struct ir_raw_event **ev, unsignedint max, conststruct ir_raw_timings_manchester *timings, unsignedint n, u64 data);
/** * ir_raw_gen_pulse_space() - generate pulse and space raw events. * @ev: Pointer to pointer to next free raw event. * Will be incremented for each raw event written. * @max: Pointer to number of raw events available in buffer. * Will be decremented for each raw event written. * @pulse_width: Width of pulse in ns. * @space_width: Width of space in ns. * * Returns: 0 on success. * -ENOBUFS if there isn't enough buffer space to write both raw * events. In this case @max events will have been written.
*/ staticinlineint ir_raw_gen_pulse_space(struct ir_raw_event **ev, unsignedint *max, unsignedint pulse_width, unsignedint space_width)
{ if (!*max) return -ENOBUFS;
init_ir_raw_event_duration((*ev)++, 1, pulse_width); if (!--*max) return -ENOBUFS;
init_ir_raw_event_duration((*ev)++, 0, space_width);
--*max; return 0;
}
/** * struct ir_raw_timings_pd - pulse-distance modulation timings * @header_pulse: duration of header pulse in ns (0 for none) * @header_space: duration of header space in ns * @bit_pulse: duration of bit pulse in ns * @bit_space: duration of bit space (for logic 0 and 1) in ns * @trailer_pulse: duration of trailer pulse in ns * @trailer_space: duration of trailer space in ns * @msb_first: 1 if most significant bit is sent first
*/ struct ir_raw_timings_pd { unsignedint header_pulse; unsignedint header_space; unsignedint bit_pulse; unsignedint bit_space[2]; unsignedint trailer_pulse; unsignedint trailer_space; unsignedint msb_first:1;
};
int ir_raw_gen_pd(struct ir_raw_event **ev, unsignedint max, conststruct ir_raw_timings_pd *timings, unsignedint n, u64 data);
/** * struct ir_raw_timings_pl - pulse-length modulation timings * @header_pulse: duration of header pulse in ns (0 for none) * @bit_space: duration of bit space in ns * @bit_pulse: duration of bit pulse (for logic 0 and 1) in ns * @trailer_space: duration of trailer space in ns * @msb_first: 1 if most significant bit is sent first
*/ struct ir_raw_timings_pl { unsignedint header_pulse; unsignedint bit_space; unsignedint bit_pulse[2]; unsignedint trailer_space; unsignedint msb_first:1;
};
int ir_raw_gen_pl(struct ir_raw_event **ev, unsignedint max, conststruct ir_raw_timings_pl *timings, unsignedint n, u64 data);
/* * Routines from rc-raw.c to be used internally and by decoders
*/
u64 ir_raw_get_allowed_protocols(void); int ir_raw_event_prepare(struct rc_dev *dev); int ir_raw_event_register(struct rc_dev *dev); void ir_raw_event_free(struct rc_dev *dev); void ir_raw_event_unregister(struct rc_dev *dev); int ir_raw_handler_register(struct ir_raw_handler *ir_raw_handler); void ir_raw_handler_unregister(struct ir_raw_handler *ir_raw_handler); void ir_raw_load_modules(u64 *protocols); void ir_raw_init(void);
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.