blob: 889a8807037b31b5b559f8a01c8ef22f9f775772 [file] [log] [blame]
Andrew Scullb4b6d4a2019-01-02 15:54:55 +00001.. -*- coding: utf-8; mode: rst -*-
2
3.. _lirc_get_features:
4
5***********************
6ioctl LIRC_GET_FEATURES
7***********************
8
9Name
10====
11
12LIRC_GET_FEATURES - Get the underlying hardware device's features
13
14Synopsis
15========
16
17.. c:function:: int ioctl( int fd, LIRC_GET_FEATURES, __u32 *features)
18 :name: LIRC_GET_FEATURES
19
20Arguments
21=========
22
23``fd``
24 File descriptor returned by open().
25
26``features``
27 Bitmask with the LIRC features.
28
29
30Description
31===========
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
187
188Return Value
189============
190
191On success 0 is returned, on error -1 and the ``errno`` variable is set
192appropriately. The generic error codes are described at the
193:ref:`Generic Error Codes <gen-errors>` chapter.