diff --git a/man4/lirc.4 b/man4/lirc.4 index 772806a20..526d8432c 100644 --- a/man4/lirc.4 +++ b/man4/lirc.4 @@ -27,16 +27,16 @@ lirc \- lirc devices .SH DESCRIPTION .PP The -.B /dev/lirc* +.I /dev/lirc* character devices provide a low-level -bi-directional interface to infra-red (IR) remotes. Most of these devices -can receive, and some can send. +bidirectional interface to infra-red (IR) remotes. +Most of these devices can receive, and some can send. When receiving or sending data, the driver works in two different modes depending on the underlying hardware. .PP Some hardware (typically TV-cards) decodes the IR signal internally -and provide decoded button presses as scancode values. Drivers for this -kind of hardware work in +and provide decoded button presses as scancode values. +Drivers for this kind of hardware work in .BR LIRC_MODE_SCANCODE mode. Such hardware usually does not support sending IR signals. @@ -50,11 +50,15 @@ Such drivers work in mode. Sometimes, this kind of hardware also supports sending IR data. -Such hardware can be used with (almost) any kind of remote. This type -of hardware can also be used in +Such hardware can be used with (almost) any kind of remote. +This type of hardware can also be used in .BR LIRC_MODE_SCANCODE -mode, in which case the kernel IR decoders will decode the IR. These -decoders can be written in bpf(2) and attached to the lirc device. +mode, in which case the kernel IR decoders will decode the IR. +These decoders can be written in +.BR bpf (2) +and attached to the +.B lirc +device. .PP The \fBLIRC_GET_FEATURES\fR ioctl (see below) allows probing for whether receiving and sending is supported, and in which modes, amongst other @@ -90,9 +94,10 @@ ioctl. In the \fBLIRC_MODE_SCANCODE\fR mode, the data returned by .BR read (2) -reflects decoded button presses, in the struct \fBlirc_scancode\fR. The -scancode is stored in the \fBscancode\fR field, and the IR protocol -in \fBrc_proto\fR. This field has on the values of the \fBenum rc_proto\fR. +reflects decoded button presses, in the struct \fIlirc_scancode\fR. +The scancode is stored in the \fIscancode\fR field, and the IR protocol +in \fIrc_proto\fR. +This field has on the values of the \fIenum rc_proto\fR. .\" .SS Writing output with the LIRC_MODE_PULSE mode .PP @@ -114,13 +119,17 @@ call fails with the error .SS Writing output with the LIRC_MODE_SCANCODE mode .PP The data written to the character devices must be a single struct -\fBlirc_scancode\fR. The \fBscancode\fR and \fBrc_proto\fR fields must -filled in, all other fields must be 0. The kernel IR encoders will +\fIlirc_scancode\fR. +The \fIscancode\fR and \fIrc_proto\fR fields must +filled in, all other fields must be 0. +The kernel IR encoders will convert the scancode to pulses and spaces. .BR write (2) call fails with the error .BR EINVAL -The protocol or scancode is invalid, or the lirc device cannot transmit. +The protocol or scancode is invalid, or the +.B lirc +device cannot transmit. .SH IOCTL COMMANDS .PP The complete list of ioctl commands is maintained in the kernel @@ -139,7 +148,8 @@ these values are capped to their 32-bit sizes. int ioctl(int fd, int cmd, ...); .fi .PP -The following ioctls can be used to probe or change specific lirc +The following ioctls can be used to probe or change specific +.B lirc hardware settings. Many require a third argument, usually an .IR int . @@ -161,11 +171,15 @@ Returns a bit mask of combined features bits; see FEATURES. .PP If a device returns an error code for .BR LIRC_GET_FEATURES , -it is safe to assume it is not a lirc device. +it is safe to assume it is not a +.B lirc +device. .\" .SS Optional Commands .PP -Some lirc devices support commands listed below. +Some +.B lirc +devices support commands listed below. Unless otherwise stated, these fail with the error \fBENOTTY\fR if the operation isn't supported, or with the error \fBEINVAL\fR if the operation failed, or invalid arguments were provided. @@ -180,7 +194,9 @@ Return the receive mode, which will be one of: The driver returns a sequence of pulse/space durations. .TP .BR LIRC_MODE_SCANCODE -The driver returns struct lirc_scancode values, each of which represents +The driver returns struct +.I lirc_scancode +values, each of which represents a decoded button press. .RE .TP