162306a36Sopenharmony_ci.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later
262306a36Sopenharmony_ci
362306a36Sopenharmony_ci.. _fm-tx-controls:
462306a36Sopenharmony_ci
562306a36Sopenharmony_ci********************************
662306a36Sopenharmony_ciFM Transmitter Control Reference
762306a36Sopenharmony_ci********************************
862306a36Sopenharmony_ci
962306a36Sopenharmony_ciThe FM Transmitter (FM_TX) class includes controls for common features
1062306a36Sopenharmony_ciof FM transmissions capable devices. Currently this class includes
1162306a36Sopenharmony_ciparameters for audio compression, pilot tone generation, audio deviation
1262306a36Sopenharmony_cilimiter, RDS transmission and tuning power features.
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_ci.. _fm-tx-control-id:
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_ciFM_TX Control IDs
1862306a36Sopenharmony_ci=================
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_ci``V4L2_CID_FM_TX_CLASS (class)``
2162306a36Sopenharmony_ci    The FM_TX class descriptor. Calling
2262306a36Sopenharmony_ci    :ref:`VIDIOC_QUERYCTRL` for this control will
2362306a36Sopenharmony_ci    return a description of this control class.
2462306a36Sopenharmony_ci
2562306a36Sopenharmony_ci``V4L2_CID_RDS_TX_DEVIATION (integer)``
2662306a36Sopenharmony_ci    Configures RDS signal frequency deviation level in Hz. The range and
2762306a36Sopenharmony_ci    step are driver-specific.
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_ci``V4L2_CID_RDS_TX_PI (integer)``
3062306a36Sopenharmony_ci    Sets the RDS Programme Identification field for transmission.
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_ci``V4L2_CID_RDS_TX_PTY (integer)``
3362306a36Sopenharmony_ci    Sets the RDS Programme Type field for transmission. This encodes up
3462306a36Sopenharmony_ci    to 31 pre-defined programme types.
3562306a36Sopenharmony_ci
3662306a36Sopenharmony_ci``V4L2_CID_RDS_TX_PS_NAME (string)``
3762306a36Sopenharmony_ci    Sets the Programme Service name (PS_NAME) for transmission. It is
3862306a36Sopenharmony_ci    intended for static display on a receiver. It is the primary aid to
3962306a36Sopenharmony_ci    listeners in programme service identification and selection. In
4062306a36Sopenharmony_ci    Annex E of :ref:`iec62106`, the RDS specification, there is a full
4162306a36Sopenharmony_ci    description of the correct character encoding for Programme Service
4262306a36Sopenharmony_ci    name strings. Also from RDS specification, PS is usually a single
4362306a36Sopenharmony_ci    eight character text. However, it is also possible to find receivers
4462306a36Sopenharmony_ci    which can scroll strings sized as 8 x N characters. So, this control
4562306a36Sopenharmony_ci    must be configured with steps of 8 characters. The result is it must
4662306a36Sopenharmony_ci    always contain a string with size multiple of 8.
4762306a36Sopenharmony_ci
4862306a36Sopenharmony_ci``V4L2_CID_RDS_TX_RADIO_TEXT (string)``
4962306a36Sopenharmony_ci    Sets the Radio Text info for transmission. It is a textual
5062306a36Sopenharmony_ci    description of what is being broadcasted. RDS Radio Text can be
5162306a36Sopenharmony_ci    applied when broadcaster wishes to transmit longer PS names,
5262306a36Sopenharmony_ci    programme-related information or any other text. In these cases,
5362306a36Sopenharmony_ci    RadioText should be used in addition to ``V4L2_CID_RDS_TX_PS_NAME``.
5462306a36Sopenharmony_ci    The encoding for Radio Text strings is also fully described in Annex
5562306a36Sopenharmony_ci    E of :ref:`iec62106`. The length of Radio Text strings depends on
5662306a36Sopenharmony_ci    which RDS Block is being used to transmit it, either 32 (2A block)
5762306a36Sopenharmony_ci    or 64 (2B block). However, it is also possible to find receivers
5862306a36Sopenharmony_ci    which can scroll strings sized as 32 x N or 64 x N characters. So,
5962306a36Sopenharmony_ci    this control must be configured with steps of 32 or 64 characters.
6062306a36Sopenharmony_ci    The result is it must always contain a string with size multiple of
6162306a36Sopenharmony_ci    32 or 64.
6262306a36Sopenharmony_ci
6362306a36Sopenharmony_ci``V4L2_CID_RDS_TX_MONO_STEREO (boolean)``
6462306a36Sopenharmony_ci    Sets the Mono/Stereo bit of the Decoder Identification code. If set,
6562306a36Sopenharmony_ci    then the audio was recorded as stereo.
6662306a36Sopenharmony_ci
6762306a36Sopenharmony_ci``V4L2_CID_RDS_TX_ARTIFICIAL_HEAD (boolean)``
6862306a36Sopenharmony_ci    Sets the
6962306a36Sopenharmony_ci    `Artificial Head <http://en.wikipedia.org/wiki/Artificial_head>`__
7062306a36Sopenharmony_ci    bit of the Decoder Identification code. If set, then the audio was
7162306a36Sopenharmony_ci    recorded using an artificial head.
7262306a36Sopenharmony_ci
7362306a36Sopenharmony_ci``V4L2_CID_RDS_TX_COMPRESSED (boolean)``
7462306a36Sopenharmony_ci    Sets the Compressed bit of the Decoder Identification code. If set,
7562306a36Sopenharmony_ci    then the audio is compressed.
7662306a36Sopenharmony_ci
7762306a36Sopenharmony_ci``V4L2_CID_RDS_TX_DYNAMIC_PTY (boolean)``
7862306a36Sopenharmony_ci    Sets the Dynamic PTY bit of the Decoder Identification code. If set,
7962306a36Sopenharmony_ci    then the PTY code is dynamically switched.
8062306a36Sopenharmony_ci
8162306a36Sopenharmony_ci``V4L2_CID_RDS_TX_TRAFFIC_ANNOUNCEMENT (boolean)``
8262306a36Sopenharmony_ci    If set, then a traffic announcement is in progress.
8362306a36Sopenharmony_ci
8462306a36Sopenharmony_ci``V4L2_CID_RDS_TX_TRAFFIC_PROGRAM (boolean)``
8562306a36Sopenharmony_ci    If set, then the tuned programme carries traffic announcements.
8662306a36Sopenharmony_ci
8762306a36Sopenharmony_ci``V4L2_CID_RDS_TX_MUSIC_SPEECH (boolean)``
8862306a36Sopenharmony_ci    If set, then this channel broadcasts music. If cleared, then it
8962306a36Sopenharmony_ci    broadcasts speech. If the transmitter doesn't make this distinction,
9062306a36Sopenharmony_ci    then it should be set.
9162306a36Sopenharmony_ci
9262306a36Sopenharmony_ci``V4L2_CID_RDS_TX_ALT_FREQS_ENABLE (boolean)``
9362306a36Sopenharmony_ci    If set, then transmit alternate frequencies.
9462306a36Sopenharmony_ci
9562306a36Sopenharmony_ci``V4L2_CID_RDS_TX_ALT_FREQS (__u32 array)``
9662306a36Sopenharmony_ci    The alternate frequencies in kHz units. The RDS standard allows for
9762306a36Sopenharmony_ci    up to 25 frequencies to be defined. Drivers may support fewer
9862306a36Sopenharmony_ci    frequencies so check the array size.
9962306a36Sopenharmony_ci
10062306a36Sopenharmony_ci``V4L2_CID_AUDIO_LIMITER_ENABLED (boolean)``
10162306a36Sopenharmony_ci    Enables or disables the audio deviation limiter feature. The limiter
10262306a36Sopenharmony_ci    is useful when trying to maximize the audio volume, minimize
10362306a36Sopenharmony_ci    receiver-generated distortion and prevent overmodulation.
10462306a36Sopenharmony_ci
10562306a36Sopenharmony_ci``V4L2_CID_AUDIO_LIMITER_RELEASE_TIME (integer)``
10662306a36Sopenharmony_ci    Sets the audio deviation limiter feature release time. Unit is in
10762306a36Sopenharmony_ci    useconds. Step and range are driver-specific.
10862306a36Sopenharmony_ci
10962306a36Sopenharmony_ci``V4L2_CID_AUDIO_LIMITER_DEVIATION (integer)``
11062306a36Sopenharmony_ci    Configures audio frequency deviation level in Hz. The range and step
11162306a36Sopenharmony_ci    are driver-specific.
11262306a36Sopenharmony_ci
11362306a36Sopenharmony_ci``V4L2_CID_AUDIO_COMPRESSION_ENABLED (boolean)``
11462306a36Sopenharmony_ci    Enables or disables the audio compression feature. This feature
11562306a36Sopenharmony_ci    amplifies signals below the threshold by a fixed gain and compresses
11662306a36Sopenharmony_ci    audio signals above the threshold by the ratio of Threshold/(Gain +
11762306a36Sopenharmony_ci    Threshold).
11862306a36Sopenharmony_ci
11962306a36Sopenharmony_ci``V4L2_CID_AUDIO_COMPRESSION_GAIN (integer)``
12062306a36Sopenharmony_ci    Sets the gain for audio compression feature. It is a dB value. The
12162306a36Sopenharmony_ci    range and step are driver-specific.
12262306a36Sopenharmony_ci
12362306a36Sopenharmony_ci``V4L2_CID_AUDIO_COMPRESSION_THRESHOLD (integer)``
12462306a36Sopenharmony_ci    Sets the threshold level for audio compression freature. It is a dB
12562306a36Sopenharmony_ci    value. The range and step are driver-specific.
12662306a36Sopenharmony_ci
12762306a36Sopenharmony_ci``V4L2_CID_AUDIO_COMPRESSION_ATTACK_TIME (integer)``
12862306a36Sopenharmony_ci    Sets the attack time for audio compression feature. It is a useconds
12962306a36Sopenharmony_ci    value. The range and step are driver-specific.
13062306a36Sopenharmony_ci
13162306a36Sopenharmony_ci``V4L2_CID_AUDIO_COMPRESSION_RELEASE_TIME (integer)``
13262306a36Sopenharmony_ci    Sets the release time for audio compression feature. It is a
13362306a36Sopenharmony_ci    useconds value. The range and step are driver-specific.
13462306a36Sopenharmony_ci
13562306a36Sopenharmony_ci``V4L2_CID_PILOT_TONE_ENABLED (boolean)``
13662306a36Sopenharmony_ci    Enables or disables the pilot tone generation feature.
13762306a36Sopenharmony_ci
13862306a36Sopenharmony_ci``V4L2_CID_PILOT_TONE_DEVIATION (integer)``
13962306a36Sopenharmony_ci    Configures pilot tone frequency deviation level. Unit is in Hz. The
14062306a36Sopenharmony_ci    range and step are driver-specific.
14162306a36Sopenharmony_ci
14262306a36Sopenharmony_ci``V4L2_CID_PILOT_TONE_FREQUENCY (integer)``
14362306a36Sopenharmony_ci    Configures pilot tone frequency value. Unit is in Hz. The range and
14462306a36Sopenharmony_ci    step are driver-specific.
14562306a36Sopenharmony_ci
14662306a36Sopenharmony_ci``V4L2_CID_TUNE_PREEMPHASIS``
14762306a36Sopenharmony_ci    (enum)
14862306a36Sopenharmony_ci
14962306a36Sopenharmony_cienum v4l2_preemphasis -
15062306a36Sopenharmony_ci    Configures the pre-emphasis value for broadcasting. A pre-emphasis
15162306a36Sopenharmony_ci    filter is applied to the broadcast to accentuate the high audio
15262306a36Sopenharmony_ci    frequencies. Depending on the region, a time constant of either 50
15362306a36Sopenharmony_ci    or 75 useconds is used. The enum v4l2_preemphasis defines possible
15462306a36Sopenharmony_ci    values for pre-emphasis. Here they are:
15562306a36Sopenharmony_ci
15662306a36Sopenharmony_ci
15762306a36Sopenharmony_ci
15862306a36Sopenharmony_ci.. flat-table::
15962306a36Sopenharmony_ci    :header-rows:  0
16062306a36Sopenharmony_ci    :stub-columns: 0
16162306a36Sopenharmony_ci
16262306a36Sopenharmony_ci    * - ``V4L2_PREEMPHASIS_DISABLED``
16362306a36Sopenharmony_ci      - No pre-emphasis is applied.
16462306a36Sopenharmony_ci    * - ``V4L2_PREEMPHASIS_50_uS``
16562306a36Sopenharmony_ci      - A pre-emphasis of 50 uS is used.
16662306a36Sopenharmony_ci    * - ``V4L2_PREEMPHASIS_75_uS``
16762306a36Sopenharmony_ci      - A pre-emphasis of 75 uS is used.
16862306a36Sopenharmony_ci
16962306a36Sopenharmony_ci
17062306a36Sopenharmony_ci
17162306a36Sopenharmony_ci``V4L2_CID_TUNE_POWER_LEVEL (integer)``
17262306a36Sopenharmony_ci    Sets the output power level for signal transmission. Unit is in
17362306a36Sopenharmony_ci    dBuV. Range and step are driver-specific.
17462306a36Sopenharmony_ci
17562306a36Sopenharmony_ci``V4L2_CID_TUNE_ANTENNA_CAPACITOR (integer)``
17662306a36Sopenharmony_ci    This selects the value of antenna tuning capacitor manually or
17762306a36Sopenharmony_ci    automatically if set to zero. Unit, range and step are
17862306a36Sopenharmony_ci    driver-specific.
17962306a36Sopenharmony_ci
18062306a36Sopenharmony_ciFor more details about RDS specification, refer to :ref:`iec62106`
18162306a36Sopenharmony_cidocument, from CENELEC.
182