1.. -*- coding: utf-8; mode: rst -*- 2 3.. _lirc-read: 4 5*********** 6LIRC read() 7*********** 8 9Name 10==== 11 12lirc-read - Read from a LIRC device 13 14 15Synopsis 16======== 17 18.. code-block:: c 19 20 #include <unistd.h> 21 22 23.. c:function:: ssize_t read( int fd, void *buf, size_t count ) 24 :name: lirc-read 25 26 27Arguments 28========= 29 30``fd`` 31 File descriptor returned by ``open()``. 32 33``buf`` 34 Buffer to be filled 35 36``count`` 37 Max number of bytes to read 38 39Description 40=========== 41 42:ref:`read() <lirc-read>` attempts to read up to ``count`` bytes from file 43descriptor ``fd`` into the buffer starting at ``buf``. If ``count`` is zero, 44:ref:`read() <lirc-read>` returns zero and has no other results. If ``count`` 45is greater than ``SSIZE_MAX``, the result is unspecified. 46 47The exact format of the data depends on what :ref:`lirc_modes` a driver 48uses. Use :ref:`lirc_get_features` to get the supported mode, and use 49:ref:`lirc_set_rec_mode` set the current active mode. 50 51The mode :ref:`LIRC_MODE_MODE2 <lirc-mode-mode2>` is for raw IR, 52in which packets containing an unsigned int value describing an IR signal are 53read from the chardev. 54 55Alternatively, :ref:`LIRC_MODE_SCANCODE <lirc-mode-scancode>` can be available, 56in this mode scancodes which are either decoded by software decoders, or 57by hardware decoders. The :c:type:`rc_proto` member is set to the 58protocol used for transmission, and ``scancode`` to the decoded scancode, 59and the ``keycode`` set to the keycode or ``KEY_RESERVED``. 60 61 62Return Value 63============ 64 65On success, the number of bytes read is returned. It is not an error if 66this number is smaller than the number of bytes requested, or the amount 67of data required for one frame. On error, -1 is returned, and the ``errno`` 68variable is set appropriately. 69