| 1 | .. -*- coding: utf-8; mode: rst -*- |
| 2 | |
| 3 | .. _radio: |
| 4 | |
| 5 | *************** |
| 6 | Radio Interface |
| 7 | *************** |
| 8 | |
| 9 | This interface is intended for AM and FM (analog) radio receivers and |
| 10 | transmitters. |
| 11 | |
| 12 | Conventionally V4L2 radio devices are accessed through character device |
| 13 | special files named ``/dev/radio`` and ``/dev/radio0`` to |
| 14 | ``/dev/radio63`` with major number 81 and minor numbers 64 to 127. |
| 15 | |
| 16 | |
| 17 | Querying Capabilities |
| 18 | ===================== |
| 19 | |
| 20 | Devices supporting the radio interface set the ``V4L2_CAP_RADIO`` and |
| 21 | ``V4L2_CAP_TUNER`` or ``V4L2_CAP_MODULATOR`` flag in the |
| 22 | ``capabilities`` field of struct |
| 23 | :ref:`v4l2_capability <v4l2-capability>` returned by the |
| 24 | :ref:`VIDIOC_QUERYCAP` ioctl. Other combinations of |
| 25 | capability flags are reserved for future extensions. |
| 26 | |
| 27 | |
| 28 | Supplemental Functions |
| 29 | ====================== |
| 30 | |
| 31 | Radio devices can support :ref:`controls <control>`, and must support |
| 32 | the :ref:`tuner or modulator <tuner>` ioctls. |
| 33 | |
| 34 | They do not support the video input or output, audio input or output, |
| 35 | video standard, cropping and scaling, compression and streaming |
| 36 | parameter, or overlay ioctls. All other ioctls and I/O methods are |
| 37 | reserved for future extensions. |
| 38 | |
| 39 | |
| 40 | Programming |
| 41 | =========== |
| 42 | |
| 43 | Radio devices may have a couple audio controls (as discussed in |
| 44 | :ref:`control`) such as a volume control, possibly custom controls. |
| 45 | Further all radio devices have one tuner or modulator (these are |
| 46 | discussed in :ref:`tuner`) with index number zero to select the radio |
| 47 | frequency and to determine if a monaural or FM stereo program is |
| 48 | received/emitted. Drivers switch automatically between AM and FM |
| 49 | depending on the selected frequency. The |
| 50 | :ref:`VIDIOC_G_TUNER <VIDIOC_G_TUNER>` or |
| 51 | :ref:`VIDIOC_G_MODULATOR <VIDIOC_G_MODULATOR>` ioctl reports the |
| 52 | supported frequency range. |