0001 .. SPDX-License-Identifier: GPL-2.0 OR GFDL-1.1-no-invariants-or-later
0002 .. c:namespace:: RC
0003
0004 .. _lirc_get_features:
0005
0006 ***********************
0007 ioctl LIRC_GET_FEATURES
0008 ***********************
0009
0010 Name
0011 ====
0012
0013 LIRC_GET_FEATURES - Get the underlying hardware device's features
0014
0015 Synopsis
0016 ========
0017
0018 .. c:macro:: LIRC_GET_FEATURES
0019
0020 ``int ioctl(int fd, LIRC_GET_FEATURES, __u32 *features)``
0021
0022 Arguments
0023 =========
0024
0025 ``fd``
0026 File descriptor returned by open().
0027
0028 ``features``
0029 Bitmask with the LIRC features.
0030
0031 Description
0032 ===========
0033
0034 Get the underlying hardware device's features. If a driver does not
0035 announce support of certain features, calling of the corresponding ioctls
0036 is undefined.
0037
0038 LIRC features
0039 =============
0040
0041 .. _LIRC-CAN-REC-RAW:
0042
0043 ``LIRC_CAN_REC_RAW``
0044
0045 Unused. Kept just to avoid breaking uAPI.
0046
0047 .. _LIRC-CAN-REC-PULSE:
0048
0049 ``LIRC_CAN_REC_PULSE``
0050
0051 Unused. Kept just to avoid breaking uAPI.
0052 :ref:`LIRC_MODE_PULSE <lirc-mode-pulse>` can only be used for transmitting.
0053
0054 .. _LIRC-CAN-REC-MODE2:
0055
0056 ``LIRC_CAN_REC_MODE2``
0057
0058 This is raw IR driver for receiving. This means that
0059 :ref:`LIRC_MODE_MODE2 <lirc-mode-MODE2>` is used. This also implies
0060 that :ref:`LIRC_MODE_SCANCODE <lirc-mode-SCANCODE>` is also supported,
0061 as long as the kernel is recent enough. Use the
0062 :ref:`lirc_set_rec_mode` to switch modes.
0063
0064 .. _LIRC-CAN-REC-LIRCCODE:
0065
0066 ``LIRC_CAN_REC_LIRCCODE``
0067
0068 Unused. Kept just to avoid breaking uAPI.
0069
0070 .. _LIRC-CAN-REC-SCANCODE:
0071
0072 ``LIRC_CAN_REC_SCANCODE``
0073
0074 This is a scancode driver for receiving. This means that
0075 :ref:`LIRC_MODE_SCANCODE <lirc-mode-SCANCODE>` is used.
0076
0077 .. _LIRC-CAN-SET-SEND-CARRIER:
0078
0079 ``LIRC_CAN_SET_SEND_CARRIER``
0080
0081 The driver supports changing the modulation frequency via
0082 :ref:`ioctl LIRC_SET_SEND_CARRIER <LIRC_SET_SEND_CARRIER>`.
0083
0084 .. _LIRC-CAN-SET-SEND-DUTY-CYCLE:
0085
0086 ``LIRC_CAN_SET_SEND_DUTY_CYCLE``
0087
0088 The driver supports changing the duty cycle using
0089 :ref:`ioctl LIRC_SET_SEND_DUTY_CYCLE <LIRC_SET_SEND_DUTY_CYCLE>`.
0090
0091 .. _LIRC-CAN-SET-TRANSMITTER-MASK:
0092
0093 ``LIRC_CAN_SET_TRANSMITTER_MASK``
0094
0095 The driver supports changing the active transmitter(s) using
0096 :ref:`ioctl LIRC_SET_TRANSMITTER_MASK <LIRC_SET_TRANSMITTER_MASK>`.
0097
0098 .. _LIRC-CAN-SET-REC-CARRIER:
0099
0100 ``LIRC_CAN_SET_REC_CARRIER``
0101
0102 The driver supports setting the receive carrier frequency using
0103 :ref:`ioctl LIRC_SET_REC_CARRIER <LIRC_SET_REC_CARRIER>`.
0104
0105 .. _LIRC-CAN-SET-REC-CARRIER-RANGE:
0106
0107 ``LIRC_CAN_SET_REC_CARRIER_RANGE``
0108
0109 The driver supports
0110 :ref:`ioctl LIRC_SET_REC_CARRIER_RANGE <LIRC_SET_REC_CARRIER_RANGE>`.
0111
0112 .. _LIRC-CAN-GET-REC-RESOLUTION:
0113
0114 ``LIRC_CAN_GET_REC_RESOLUTION``
0115
0116 The driver supports
0117 :ref:`ioctl LIRC_GET_REC_RESOLUTION <LIRC_GET_REC_RESOLUTION>`.
0118
0119 .. _LIRC-CAN-SET-REC-TIMEOUT:
0120
0121 ``LIRC_CAN_SET_REC_TIMEOUT``
0122
0123 The driver supports
0124 :ref:`ioctl LIRC_SET_REC_TIMEOUT <LIRC_SET_REC_TIMEOUT>`.
0125
0126 .. _LIRC-CAN-MEASURE-CARRIER:
0127
0128 ``LIRC_CAN_MEASURE_CARRIER``
0129
0130 The driver supports measuring of the modulation frequency using
0131 :ref:`ioctl LIRC_SET_MEASURE_CARRIER_MODE <LIRC_SET_MEASURE_CARRIER_MODE>`.
0132
0133 .. _LIRC-CAN-USE-WIDEBAND-RECEIVER:
0134
0135 ``LIRC_CAN_USE_WIDEBAND_RECEIVER``
0136
0137 The driver supports learning mode using
0138 :ref:`ioctl LIRC_SET_WIDEBAND_RECEIVER <LIRC_SET_WIDEBAND_RECEIVER>`.
0139
0140 .. _LIRC-CAN-SEND-RAW:
0141
0142 ``LIRC_CAN_SEND_RAW``
0143
0144 Unused. Kept just to avoid breaking uAPI.
0145
0146 .. _LIRC-CAN-SEND-PULSE:
0147
0148 ``LIRC_CAN_SEND_PULSE``
0149
0150 The driver supports sending (also called as IR blasting or IR TX) using
0151 :ref:`LIRC_MODE_PULSE <lirc-mode-pulse>`. This implies that
0152 :ref:`LIRC_MODE_SCANCODE <lirc-mode-SCANCODE>` is also supported for
0153 transmit, as long as the kernel is recent enough. Use the
0154 :ref:`lirc_set_send_mode` to switch modes.
0155
0156 .. _LIRC-CAN-SEND-MODE2:
0157
0158 ``LIRC_CAN_SEND_MODE2``
0159
0160 Unused. Kept just to avoid breaking uAPI.
0161 :ref:`LIRC_MODE_MODE2 <lirc-mode-mode2>` can only be used for receiving.
0162
0163 .. _LIRC-CAN-SEND-LIRCCODE:
0164
0165 ``LIRC_CAN_SEND_LIRCCODE``
0166
0167 Unused. Kept just to avoid breaking uAPI.
0168
0169 Return Value
0170 ============
0171
0172 On success 0 is returned, on error -1 and the ``errno`` variable is set
0173 appropriately. The generic error codes are described at the
0174 :ref:`Generic Error Codes <gen-errors>` chapter.