1.. SPDX-License-Identifier: GPL-2.0 OR GFDL-1.1-no-invariants-or-later 2.. c:namespace:: RC 3 4.. _lirc_get_features: 5 6*********************** 7ioctl LIRC_GET_FEATURES 8*********************** 9 10Name 11==== 12 13LIRC_GET_FEATURES - Get the underlying hardware device's features 14 15Synopsis 16======== 17 18.. c:macro:: LIRC_GET_FEATURES 19 20``int ioctl(int fd, LIRC_GET_FEATURES, __u32 *features)`` 21 22Arguments 23========= 24 25``fd`` 26 File descriptor returned by open(). 27 28``features`` 29 Bitmask with the LIRC features. 30 31Description 32=========== 33 34Get the underlying hardware device's features. If a driver does not 35announce support of certain features, calling of the corresponding ioctls 36is undefined. 37 38LIRC features 39============= 40 41.. _LIRC-CAN-REC-RAW: 42 43``LIRC_CAN_REC_RAW`` 44 45 Unused. Kept just to avoid breaking uAPI. 46 47.. _LIRC-CAN-REC-PULSE: 48 49``LIRC_CAN_REC_PULSE`` 50 51 Unused. Kept just to avoid breaking uAPI. 52 :ref:`LIRC_MODE_PULSE <lirc-mode-pulse>` can only be used for transmitting. 53 54.. _LIRC-CAN-REC-MODE2: 55 56``LIRC_CAN_REC_MODE2`` 57 58 This is raw IR driver for receiving. This means that 59 :ref:`LIRC_MODE_MODE2 <lirc-mode-MODE2>` is used. This also implies 60 that :ref:`LIRC_MODE_SCANCODE <lirc-mode-SCANCODE>` is also supported, 61 as long as the kernel is recent enough. Use the 62 :ref:`lirc_set_rec_mode` to switch modes. 63 64.. _LIRC-CAN-REC-LIRCCODE: 65 66``LIRC_CAN_REC_LIRCCODE`` 67 68 Unused. Kept just to avoid breaking uAPI. 69 70.. _LIRC-CAN-REC-SCANCODE: 71 72``LIRC_CAN_REC_SCANCODE`` 73 74 This is a scancode driver for receiving. This means that 75 :ref:`LIRC_MODE_SCANCODE <lirc-mode-SCANCODE>` is used. 76 77.. _LIRC-CAN-SET-SEND-CARRIER: 78 79``LIRC_CAN_SET_SEND_CARRIER`` 80 81 The driver supports changing the modulation frequency via 82 :ref:`ioctl LIRC_SET_SEND_CARRIER <LIRC_SET_SEND_CARRIER>`. 83 84.. _LIRC-CAN-SET-SEND-DUTY-CYCLE: 85 86``LIRC_CAN_SET_SEND_DUTY_CYCLE`` 87 88 The driver supports changing the duty cycle using 89 :ref:`ioctl LIRC_SET_SEND_DUTY_CYCLE <LIRC_SET_SEND_DUTY_CYCLE>`. 90 91.. _LIRC-CAN-SET-TRANSMITTER-MASK: 92 93``LIRC_CAN_SET_TRANSMITTER_MASK`` 94 95 The driver supports changing the active transmitter(s) using 96 :ref:`ioctl LIRC_SET_TRANSMITTER_MASK <LIRC_SET_TRANSMITTER_MASK>`. 97 98.. _LIRC-CAN-SET-REC-CARRIER: 99 100``LIRC_CAN_SET_REC_CARRIER`` 101 102 The driver supports setting the receive carrier frequency using 103 :ref:`ioctl LIRC_SET_REC_CARRIER <LIRC_SET_REC_CARRIER>`. 104 105.. _LIRC-CAN-SET-REC-DUTY-CYCLE-RANGE: 106 107``LIRC_CAN_SET_REC_DUTY_CYCLE_RANGE`` 108 109 Unused. Kept just to avoid breaking uAPI. 110 111.. _LIRC-CAN-SET-REC-CARRIER-RANGE: 112 113``LIRC_CAN_SET_REC_CARRIER_RANGE`` 114 115 The driver supports 116 :ref:`ioctl LIRC_SET_REC_CARRIER_RANGE <LIRC_SET_REC_CARRIER_RANGE>`. 117 118.. _LIRC-CAN-GET-REC-RESOLUTION: 119 120``LIRC_CAN_GET_REC_RESOLUTION`` 121 122 The driver supports 123 :ref:`ioctl LIRC_GET_REC_RESOLUTION <LIRC_GET_REC_RESOLUTION>`. 124 125.. _LIRC-CAN-SET-REC-TIMEOUT: 126 127``LIRC_CAN_SET_REC_TIMEOUT`` 128 129 The driver supports 130 :ref:`ioctl LIRC_SET_REC_TIMEOUT <LIRC_SET_REC_TIMEOUT>`. 131 132.. _LIRC-CAN-SET-REC-FILTER: 133 134``LIRC_CAN_SET_REC_FILTER`` 135 136 Unused. Kept just to avoid breaking uAPI. 137 138.. _LIRC-CAN-MEASURE-CARRIER: 139 140``LIRC_CAN_MEASURE_CARRIER`` 141 142 The driver supports measuring of the modulation frequency using 143 :ref:`ioctl LIRC_SET_MEASURE_CARRIER_MODE <LIRC_SET_MEASURE_CARRIER_MODE>`. 144 145.. _LIRC-CAN-USE-WIDEBAND-RECEIVER: 146 147``LIRC_CAN_USE_WIDEBAND_RECEIVER`` 148 149 The driver supports learning mode using 150 :ref:`ioctl LIRC_SET_WIDEBAND_RECEIVER <LIRC_SET_WIDEBAND_RECEIVER>`. 151 152.. _LIRC-CAN-NOTIFY-DECODE: 153 154``LIRC_CAN_NOTIFY_DECODE`` 155 156 Unused. Kept just to avoid breaking uAPI. 157 158.. _LIRC-CAN-SEND-RAW: 159 160``LIRC_CAN_SEND_RAW`` 161 162 Unused. Kept just to avoid breaking uAPI. 163 164.. _LIRC-CAN-SEND-PULSE: 165 166``LIRC_CAN_SEND_PULSE`` 167 168 The driver supports sending (also called as IR blasting or IR TX) using 169 :ref:`LIRC_MODE_PULSE <lirc-mode-pulse>`. This implies that 170 :ref:`LIRC_MODE_SCANCODE <lirc-mode-SCANCODE>` is also supported for 171 transmit, as long as the kernel is recent enough. Use the 172 :ref:`lirc_set_send_mode` to switch modes. 173 174.. _LIRC-CAN-SEND-MODE2: 175 176``LIRC_CAN_SEND_MODE2`` 177 178 Unused. Kept just to avoid breaking uAPI. 179 :ref:`LIRC_MODE_MODE2 <lirc-mode-mode2>` can only be used for receiving. 180 181.. _LIRC-CAN-SEND-LIRCCODE: 182 183``LIRC_CAN_SEND_LIRCCODE`` 184 185 Unused. Kept just to avoid breaking uAPI. 186 187Return Value 188============ 189 190On success 0 is returned, on error -1 and the ``errno`` variable is set 191appropriately. The generic error codes are described at the 192:ref:`Generic Error Codes <gen-errors>` chapter. 193