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