12c7ff906SStefan Herdler.. SPDX-License-Identifier: GFDL-1.1-no-invariants-or-later OR GPL-2.0 22c7ff906SStefan Herdler 32c7ff906SStefan Herdler.. c:namespace:: dtv.legacy.audio 42c7ff906SStefan Herdler 52c7ff906SStefan Herdler.. _dvb_audio: 62c7ff906SStefan Herdler 72c7ff906SStefan Herdler================ 82c7ff906SStefan HerdlerDVB Audio Device 92c7ff906SStefan Herdler================ 102c7ff906SStefan Herdler 112c7ff906SStefan Herdler.. attention:: Do **not** use in new drivers! 122c7ff906SStefan Herdler See: :ref:`legacy_dvb_decoder_notes` 132c7ff906SStefan Herdler 142c7ff906SStefan HerdlerThe DVB audio device controls the MPEG2 audio decoder of the DVB 152c7ff906SStefan Herdlerhardware. It can be accessed through ``/dev/dvb/adapter?/audio?``. Data 162c7ff906SStefan Herdlertypes and ioctl definitions can be accessed by including 172c7ff906SStefan Herdler``linux/dvb/audio.h`` in your application. 182c7ff906SStefan Herdler 192c7ff906SStefan HerdlerPlease note that most DVB cards don’t have their own MPEG decoder, which 202c7ff906SStefan Herdlerresults in the omission of the audio and video device. 212c7ff906SStefan Herdler 222c7ff906SStefan HerdlerThese ioctls were also used by V4L2 to control MPEG decoders implemented 232c7ff906SStefan Herdlerin V4L2. The use of these ioctls for that purpose has been made obsolete 242c7ff906SStefan Herdlerand proper V4L2 ioctls or controls have been created to replace that 252c7ff906SStefan Herdlerfunctionality. Use :ref:`V4L2 ioctls<audio>` for new drivers! 262c7ff906SStefan Herdler 272c7ff906SStefan Herdler 282c7ff906SStefan HerdlerAudio Data Types 292c7ff906SStefan Herdler================ 302c7ff906SStefan Herdler 312c7ff906SStefan HerdlerThis section describes the structures, data types and defines used when 322c7ff906SStefan Herdlertalking to the audio device. 332c7ff906SStefan Herdler 342c7ff906SStefan Herdler 352c7ff906SStefan Herdler----- 362c7ff906SStefan Herdler 372c7ff906SStefan Herdler 382c7ff906SStefan Herdleraudio_stream_source_t 392c7ff906SStefan Herdler--------------------- 402c7ff906SStefan Herdler 412c7ff906SStefan HerdlerSynopsis 422c7ff906SStefan Herdler~~~~~~~~ 432c7ff906SStefan Herdler 442c7ff906SStefan Herdler.. c:enum:: audio_stream_source_t 452c7ff906SStefan Herdler 462c7ff906SStefan Herdler.. code-block:: c 472c7ff906SStefan Herdler 482c7ff906SStefan Herdler typedef enum { 492c7ff906SStefan Herdler AUDIO_SOURCE_DEMUX, 502c7ff906SStefan Herdler AUDIO_SOURCE_MEMORY 512c7ff906SStefan Herdler } audio_stream_source_t; 522c7ff906SStefan Herdler 532c7ff906SStefan HerdlerConstants 542c7ff906SStefan Herdler~~~~~~~~~ 552c7ff906SStefan Herdler 562c7ff906SStefan Herdler.. flat-table:: 572c7ff906SStefan Herdler :header-rows: 0 582c7ff906SStefan Herdler :stub-columns: 0 592c7ff906SStefan Herdler 602c7ff906SStefan Herdler - .. 612c7ff906SStefan Herdler 622c7ff906SStefan Herdler - ``AUDIO_SOURCE_DEMUX`` 632c7ff906SStefan Herdler 642c7ff906SStefan Herdler - :cspan:`1` Selects the demultiplexer (fed either by the frontend 652c7ff906SStefan Herdler or the DVR device) as the source of the video stream. 662c7ff906SStefan Herdler 672c7ff906SStefan Herdler - .. 682c7ff906SStefan Herdler 692c7ff906SStefan Herdler - ``AUDIO_SOURCE_MEMORY`` 702c7ff906SStefan Herdler 712c7ff906SStefan Herdler - Selects the stream from the application that comes through 722c7ff906SStefan Herdler the `write()`_ system call. 732c7ff906SStefan Herdler 742c7ff906SStefan HerdlerDescription 752c7ff906SStefan Herdler~~~~~~~~~~~ 762c7ff906SStefan Herdler 772c7ff906SStefan HerdlerThe audio stream source is set through the `AUDIO_SELECT_SOURCE`_ call 782c7ff906SStefan Herdlerand can take the following values, depending on whether we are replaying 792c7ff906SStefan Herdlerfrom an internal (demux) or external (user write) source. 802c7ff906SStefan Herdler 812c7ff906SStefan HerdlerThe data fed to the decoder is also controlled by the PID-filter. 822c7ff906SStefan HerdlerOutput selection: :c:type:`dmx_output` ``DMX_OUT_DECODER``. 832c7ff906SStefan Herdler 842c7ff906SStefan Herdler 852c7ff906SStefan Herdler----- 862c7ff906SStefan Herdler 872c7ff906SStefan Herdler 882c7ff906SStefan Herdleraudio_play_state_t 892c7ff906SStefan Herdler------------------ 902c7ff906SStefan Herdler 912c7ff906SStefan HerdlerSynopsis 922c7ff906SStefan Herdler~~~~~~~~ 932c7ff906SStefan Herdler 942c7ff906SStefan Herdler.. c:enum:: audio_play_state_t 952c7ff906SStefan Herdler 962c7ff906SStefan Herdler.. code-block:: c 972c7ff906SStefan Herdler 982c7ff906SStefan Herdler typedef enum { 992c7ff906SStefan Herdler AUDIO_STOPPED, 1002c7ff906SStefan Herdler AUDIO_PLAYING, 1012c7ff906SStefan Herdler AUDIO_PAUSED 1022c7ff906SStefan Herdler } audio_play_state_t; 1032c7ff906SStefan Herdler 1042c7ff906SStefan HerdlerConstants 1052c7ff906SStefan Herdler~~~~~~~~~ 1062c7ff906SStefan Herdler 1072c7ff906SStefan Herdler.. flat-table:: 1082c7ff906SStefan Herdler :header-rows: 0 1092c7ff906SStefan Herdler :stub-columns: 0 1102c7ff906SStefan Herdler 1112c7ff906SStefan Herdler - .. 1122c7ff906SStefan Herdler 1132c7ff906SStefan Herdler - ``AUDIO_STOPPED`` 1142c7ff906SStefan Herdler 1152c7ff906SStefan Herdler - Audio is stopped. 1162c7ff906SStefan Herdler 1172c7ff906SStefan Herdler - .. 1182c7ff906SStefan Herdler 1192c7ff906SStefan Herdler - ``AUDIO_PLAYING`` 1202c7ff906SStefan Herdler 1212c7ff906SStefan Herdler - Audio is currently playing. 1222c7ff906SStefan Herdler 1232c7ff906SStefan Herdler - .. 1242c7ff906SStefan Herdler 1252c7ff906SStefan Herdler - ``AUDIO_PAUSE`` 1262c7ff906SStefan Herdler 1272c7ff906SStefan Herdler - Audio is frozen. 1282c7ff906SStefan Herdler 1292c7ff906SStefan HerdlerDescription 1302c7ff906SStefan Herdler~~~~~~~~~~~ 1312c7ff906SStefan Herdler 1322c7ff906SStefan HerdlerThis values can be returned by the `AUDIO_GET_STATUS`_ call 1332c7ff906SStefan Herdlerrepresenting the state of audio playback. 1342c7ff906SStefan Herdler 1352c7ff906SStefan Herdler 1362c7ff906SStefan Herdler----- 1372c7ff906SStefan Herdler 1382c7ff906SStefan Herdler 1392c7ff906SStefan Herdleraudio_channel_select_t 1402c7ff906SStefan Herdler---------------------- 1412c7ff906SStefan Herdler 1422c7ff906SStefan HerdlerSynopsis 1432c7ff906SStefan Herdler~~~~~~~~ 1442c7ff906SStefan Herdler 1452c7ff906SStefan Herdler.. c:enum:: audio_channel_select_t 1462c7ff906SStefan Herdler 1472c7ff906SStefan Herdler.. code-block:: c 1482c7ff906SStefan Herdler 1492c7ff906SStefan Herdler typedef enum { 1502c7ff906SStefan Herdler AUDIO_STEREO, 1512c7ff906SStefan Herdler AUDIO_MONO_LEFT, 1522c7ff906SStefan Herdler AUDIO_MONO_RIGHT, 1532c7ff906SStefan Herdler AUDIO_MONO, 1542c7ff906SStefan Herdler AUDIO_STEREO_SWAPPED 1552c7ff906SStefan Herdler } audio_channel_select_t; 1562c7ff906SStefan Herdler 1572c7ff906SStefan HerdlerConstants 1582c7ff906SStefan Herdler~~~~~~~~~ 1592c7ff906SStefan Herdler 1602c7ff906SStefan Herdler.. flat-table:: 1612c7ff906SStefan Herdler :header-rows: 0 1622c7ff906SStefan Herdler :stub-columns: 0 1632c7ff906SStefan Herdler 1642c7ff906SStefan Herdler - .. 1652c7ff906SStefan Herdler 1662c7ff906SStefan Herdler - ``AUDIO_STEREO`` 1672c7ff906SStefan Herdler 1682c7ff906SStefan Herdler - Stereo. 1692c7ff906SStefan Herdler 1702c7ff906SStefan Herdler - .. 1712c7ff906SStefan Herdler 1722c7ff906SStefan Herdler - ``AUDIO_MONO_LEFT`` 1732c7ff906SStefan Herdler 1742c7ff906SStefan Herdler - Mono, select left stereo channel as source. 1752c7ff906SStefan Herdler 1762c7ff906SStefan Herdler - .. 1772c7ff906SStefan Herdler 1782c7ff906SStefan Herdler - ``AUDIO_MONO_RIGHT`` 1792c7ff906SStefan Herdler 1802c7ff906SStefan Herdler - Mono, select right stereo channel as source. 1812c7ff906SStefan Herdler 1822c7ff906SStefan Herdler - .. 1832c7ff906SStefan Herdler 1842c7ff906SStefan Herdler - ``AUDIO_MONO`` 1852c7ff906SStefan Herdler 1862c7ff906SStefan Herdler - Mono source only. 1872c7ff906SStefan Herdler 1882c7ff906SStefan Herdler - .. 1892c7ff906SStefan Herdler 1902c7ff906SStefan Herdler - ``AUDIO_STEREO_SWAPPED`` 1912c7ff906SStefan Herdler 1922c7ff906SStefan Herdler - Stereo, swap L & R. 1932c7ff906SStefan Herdler 1942c7ff906SStefan HerdlerDescription 1952c7ff906SStefan Herdler~~~~~~~~~~~ 1962c7ff906SStefan Herdler 1972c7ff906SStefan HerdlerThe audio channel selected via `AUDIO_CHANNEL_SELECT`_ is determined by 1982c7ff906SStefan Herdlerthis values. 1992c7ff906SStefan Herdler 2002c7ff906SStefan Herdler 2012c7ff906SStefan Herdler----- 2022c7ff906SStefan Herdler 2032c7ff906SStefan Herdler 2042c7ff906SStefan Herdleraudio_mixer_t 2052c7ff906SStefan Herdler------------- 2062c7ff906SStefan Herdler 2072c7ff906SStefan HerdlerSynopsis 2082c7ff906SStefan Herdler~~~~~~~~ 2092c7ff906SStefan Herdler 2102c7ff906SStefan Herdler.. c:struct:: audio_mixer 2112c7ff906SStefan Herdler 2122c7ff906SStefan Herdler.. code-block:: c 2132c7ff906SStefan Herdler 2142c7ff906SStefan Herdler typedef struct audio_mixer { 2152c7ff906SStefan Herdler unsigned int volume_left; 2162c7ff906SStefan Herdler unsigned int volume_right; 2172c7ff906SStefan Herdler } audio_mixer_t; 2182c7ff906SStefan Herdler 2192c7ff906SStefan HerdlerVariables 2202c7ff906SStefan Herdler~~~~~~~~~ 2212c7ff906SStefan Herdler 2222c7ff906SStefan Herdler.. flat-table:: 2232c7ff906SStefan Herdler :header-rows: 0 2242c7ff906SStefan Herdler :stub-columns: 0 2252c7ff906SStefan Herdler 2262c7ff906SStefan Herdler - .. 2272c7ff906SStefan Herdler 2282c7ff906SStefan Herdler - ``unsigned int volume_left`` 2292c7ff906SStefan Herdler 2302c7ff906SStefan Herdler - Volume left channel. 2312c7ff906SStefan Herdler Valid range: 0 ... 255 2322c7ff906SStefan Herdler 2332c7ff906SStefan Herdler - .. 2342c7ff906SStefan Herdler 2352c7ff906SStefan Herdler - ``unsigned int volume_right`` 2362c7ff906SStefan Herdler 2372c7ff906SStefan Herdler - Volume right channel. 2382c7ff906SStefan Herdler Valid range: 0 ... 255 2392c7ff906SStefan Herdler 2402c7ff906SStefan HerdlerDescription 2412c7ff906SStefan Herdler~~~~~~~~~~~ 2422c7ff906SStefan Herdler 2432c7ff906SStefan HerdlerThis structure is used by the `AUDIO_SET_MIXER`_ call to set the 2442c7ff906SStefan Herdleraudio volume. 2452c7ff906SStefan Herdler 2462c7ff906SStefan Herdler 2472c7ff906SStefan Herdler----- 2482c7ff906SStefan Herdler 2492c7ff906SStefan Herdler 2502c7ff906SStefan Herdleraudio_status 2512c7ff906SStefan Herdler------------ 2522c7ff906SStefan Herdler 2532c7ff906SStefan HerdlerSynopsis 2542c7ff906SStefan Herdler~~~~~~~~ 2552c7ff906SStefan Herdler 2562c7ff906SStefan Herdler.. c:struct:: audio_status 2572c7ff906SStefan Herdler 2582c7ff906SStefan Herdler.. code-block:: c 2592c7ff906SStefan Herdler 2602c7ff906SStefan Herdler typedef struct audio_status { 2612c7ff906SStefan Herdler int AV_sync_state; 2622c7ff906SStefan Herdler int mute_state; 2632c7ff906SStefan Herdler audio_play_state_t play_state; 2642c7ff906SStefan Herdler audio_stream_source_t stream_source; 2652c7ff906SStefan Herdler audio_channel_select_t channel_select; 2662c7ff906SStefan Herdler int bypass_mode; 2672c7ff906SStefan Herdler audio_mixer_t mixer_state; 2682c7ff906SStefan Herdler } audio_status_t; 2692c7ff906SStefan Herdler 2702c7ff906SStefan HerdlerVariables 2712c7ff906SStefan Herdler~~~~~~~~~ 2722c7ff906SStefan Herdler 2732c7ff906SStefan Herdler.. flat-table:: 2742c7ff906SStefan Herdler :header-rows: 0 2752c7ff906SStefan Herdler :stub-columns: 0 2762c7ff906SStefan Herdler 2772c7ff906SStefan Herdler - .. 2782c7ff906SStefan Herdler 2792c7ff906SStefan Herdler - :rspan:`2` ``int AV_sync_state`` 2802c7ff906SStefan Herdler 2812c7ff906SStefan Herdler - :cspan:`1` Shows if A/V synchronization is ON or OFF. 2822c7ff906SStefan Herdler 2832c7ff906SStefan Herdler - .. 2842c7ff906SStefan Herdler 2852c7ff906SStefan Herdler - TRUE ( != 0 ) 2862c7ff906SStefan Herdler 2872c7ff906SStefan Herdler - AV-sync ON. 2882c7ff906SStefan Herdler 2892c7ff906SStefan Herdler - .. 2902c7ff906SStefan Herdler 2912c7ff906SStefan Herdler - FALSE ( == 0 ) 2922c7ff906SStefan Herdler 2932c7ff906SStefan Herdler - AV-sync OFF. 2942c7ff906SStefan Herdler 2952c7ff906SStefan Herdler - .. 2962c7ff906SStefan Herdler 2972c7ff906SStefan Herdler - :rspan:`2` ``int mute_state`` 2982c7ff906SStefan Herdler 2992c7ff906SStefan Herdler - :cspan:`1` Indicates if audio is muted or not. 3002c7ff906SStefan Herdler 3012c7ff906SStefan Herdler - .. 3022c7ff906SStefan Herdler 3032c7ff906SStefan Herdler - TRUE ( != 0 ) 3042c7ff906SStefan Herdler 3052c7ff906SStefan Herdler - mute audio 3062c7ff906SStefan Herdler 3072c7ff906SStefan Herdler - .. 3082c7ff906SStefan Herdler 3092c7ff906SStefan Herdler - FALSE ( == 0 ) 3102c7ff906SStefan Herdler 3112c7ff906SStefan Herdler - unmute audio 3122c7ff906SStefan Herdler 3132c7ff906SStefan Herdler - .. 3142c7ff906SStefan Herdler 3152c7ff906SStefan Herdler - `audio_play_state_t`_ ``play_state`` 3162c7ff906SStefan Herdler 3172c7ff906SStefan Herdler - Current playback state. 3182c7ff906SStefan Herdler 3192c7ff906SStefan Herdler - .. 3202c7ff906SStefan Herdler 3212c7ff906SStefan Herdler - `audio_stream_source_t`_ ``stream_source`` 3222c7ff906SStefan Herdler 3232c7ff906SStefan Herdler - Current source of the data. 3242c7ff906SStefan Herdler 3252c7ff906SStefan Herdler - .. 3262c7ff906SStefan Herdler 3272c7ff906SStefan Herdler - :rspan:`2` ``int bypass_mode`` 3282c7ff906SStefan Herdler 3292c7ff906SStefan Herdler - :cspan:`1` Is the decoding of the current Audio stream in 3302c7ff906SStefan Herdler the DVB subsystem enabled or disabled. 3312c7ff906SStefan Herdler 3322c7ff906SStefan Herdler - .. 3332c7ff906SStefan Herdler 3342c7ff906SStefan Herdler - TRUE ( != 0 ) 3352c7ff906SStefan Herdler 3362c7ff906SStefan Herdler - Bypass disabled. 3372c7ff906SStefan Herdler 3382c7ff906SStefan Herdler - .. 3392c7ff906SStefan Herdler 3402c7ff906SStefan Herdler - FALSE ( == 0 ) 3412c7ff906SStefan Herdler 3422c7ff906SStefan Herdler - Bypass enabled. 3432c7ff906SStefan Herdler 3442c7ff906SStefan Herdler - .. 3452c7ff906SStefan Herdler 3462c7ff906SStefan Herdler - `audio_mixer_t`_ ``mixer_state`` 3472c7ff906SStefan Herdler 3482c7ff906SStefan Herdler - Current volume settings. 3492c7ff906SStefan Herdler 3502c7ff906SStefan HerdlerDescription 3512c7ff906SStefan Herdler~~~~~~~~~~~ 3522c7ff906SStefan Herdler 3532c7ff906SStefan HerdlerThe `AUDIO_GET_STATUS`_ call returns this structure as information 3542c7ff906SStefan Herdlerabout various states of the playback operation. 3552c7ff906SStefan Herdler 3562c7ff906SStefan Herdler 3572c7ff906SStefan Herdler----- 3582c7ff906SStefan Herdler 3592c7ff906SStefan Herdler 3602c7ff906SStefan Herdleraudio encodings 3612c7ff906SStefan Herdler--------------- 3622c7ff906SStefan Herdler 3632c7ff906SStefan HerdlerSynopsis 3642c7ff906SStefan Herdler~~~~~~~~ 3652c7ff906SStefan Herdler 3662c7ff906SStefan Herdler.. code-block:: c 3672c7ff906SStefan Herdler 3682c7ff906SStefan Herdler #define AUDIO_CAP_DTS 1 3692c7ff906SStefan Herdler #define AUDIO_CAP_LPCM 2 3702c7ff906SStefan Herdler #define AUDIO_CAP_MP1 4 3712c7ff906SStefan Herdler #define AUDIO_CAP_MP2 8 3722c7ff906SStefan Herdler #define AUDIO_CAP_MP3 16 3732c7ff906SStefan Herdler #define AUDIO_CAP_AAC 32 3742c7ff906SStefan Herdler #define AUDIO_CAP_OGG 64 3752c7ff906SStefan Herdler #define AUDIO_CAP_SDDS 128 3762c7ff906SStefan Herdler #define AUDIO_CAP_AC3 256 3772c7ff906SStefan Herdler 3782c7ff906SStefan HerdlerConstants 3792c7ff906SStefan Herdler~~~~~~~~~ 3802c7ff906SStefan Herdler 3812c7ff906SStefan Herdler.. flat-table:: 3822c7ff906SStefan Herdler :header-rows: 0 3832c7ff906SStefan Herdler :stub-columns: 0 3842c7ff906SStefan Herdler 3852c7ff906SStefan Herdler - .. 3862c7ff906SStefan Herdler 3872c7ff906SStefan Herdler - ``AUDIO_CAP_DTS`` 3882c7ff906SStefan Herdler 3892c7ff906SStefan Herdler - :cspan:`1` The hardware accepts DTS audio tracks. 3902c7ff906SStefan Herdler 3912c7ff906SStefan Herdler - .. 3922c7ff906SStefan Herdler 3932c7ff906SStefan Herdler - ``AUDIO_CAP_LPCM`` 3942c7ff906SStefan Herdler 3952c7ff906SStefan Herdler - The hardware accepts uncompressed audio with 3962c7ff906SStefan Herdler Linear Pulse-Code Modulation (LPCM) 3972c7ff906SStefan Herdler 3982c7ff906SStefan Herdler - .. 3992c7ff906SStefan Herdler 4002c7ff906SStefan Herdler - ``AUDIO_CAP_MP1`` 4012c7ff906SStefan Herdler 4022c7ff906SStefan Herdler - The hardware accepts MPEG-1 Audio Layer 1. 4032c7ff906SStefan Herdler 4042c7ff906SStefan Herdler - .. 4052c7ff906SStefan Herdler 4062c7ff906SStefan Herdler - ``AUDIO_CAP_MP2`` 4072c7ff906SStefan Herdler 4082c7ff906SStefan Herdler - The hardware accepts MPEG-1 Audio Layer 2. 4092c7ff906SStefan Herdler Also known as MUSICAM. 4102c7ff906SStefan Herdler 4112c7ff906SStefan Herdler - .. 4122c7ff906SStefan Herdler 4132c7ff906SStefan Herdler - ``AUDIO_CAP_MP3`` 4142c7ff906SStefan Herdler 4152c7ff906SStefan Herdler - The hardware accepts MPEG-1 Audio Layer III. 4162c7ff906SStefan Herdler Commomly known as .mp3. 4172c7ff906SStefan Herdler 4182c7ff906SStefan Herdler - .. 4192c7ff906SStefan Herdler 4202c7ff906SStefan Herdler - ``AUDIO_CAP_AAC`` 4212c7ff906SStefan Herdler 4222c7ff906SStefan Herdler - The hardware accepts AAC (Advanced Audio Coding). 4232c7ff906SStefan Herdler 4242c7ff906SStefan Herdler - .. 4252c7ff906SStefan Herdler 4262c7ff906SStefan Herdler - ``AUDIO_CAP_OGG`` 4272c7ff906SStefan Herdler 4282c7ff906SStefan Herdler - The hardware accepts Vorbis audio tracks. 4292c7ff906SStefan Herdler 4302c7ff906SStefan Herdler - .. 4312c7ff906SStefan Herdler 4322c7ff906SStefan Herdler - ``AUDIO_CAP_SDDS`` 4332c7ff906SStefan Herdler 4342c7ff906SStefan Herdler - The hardware accepts Sony Dynamic Digital Sound (SDDS). 4352c7ff906SStefan Herdler 4362c7ff906SStefan Herdler - .. 4372c7ff906SStefan Herdler 4382c7ff906SStefan Herdler - ``AUDIO_CAP_AC3`` 4392c7ff906SStefan Herdler 4402c7ff906SStefan Herdler - The hardware accepts Dolby Digital ATSC A/52 audio. 4412c7ff906SStefan Herdler Also known as AC-3. 4422c7ff906SStefan Herdler 4432c7ff906SStefan HerdlerDescription 4442c7ff906SStefan Herdler~~~~~~~~~~~ 4452c7ff906SStefan Herdler 4462c7ff906SStefan HerdlerA call to `AUDIO_GET_CAPABILITIES`_ returns an unsigned integer with the 4472c7ff906SStefan Herdlerfollowing bits set according to the hardwares capabilities. 44853614720SStefan Herdler 44953614720SStefan Herdler 45053614720SStefan Herdler----- 45153614720SStefan Herdler 45253614720SStefan Herdler 45353614720SStefan HerdlerAudio Function Calls 45453614720SStefan Herdler==================== 45553614720SStefan Herdler 45653614720SStefan Herdler 45753614720SStefan HerdlerAUDIO_STOP 45853614720SStefan Herdler---------- 45953614720SStefan Herdler 46053614720SStefan HerdlerSynopsis 46153614720SStefan Herdler~~~~~~~~ 46253614720SStefan Herdler 46353614720SStefan Herdler.. c:macro:: AUDIO_STOP 46453614720SStefan Herdler 46553614720SStefan Herdler.. code-block:: c 46653614720SStefan Herdler 46753614720SStefan Herdler int ioctl(int fd, int request = AUDIO_STOP) 46853614720SStefan Herdler 46953614720SStefan HerdlerArguments 47053614720SStefan Herdler~~~~~~~~~ 47153614720SStefan Herdler 47253614720SStefan Herdler.. flat-table:: 47353614720SStefan Herdler :header-rows: 0 47453614720SStefan Herdler :stub-columns: 0 47553614720SStefan Herdler 47653614720SStefan Herdler - .. 47753614720SStefan Herdler 47853614720SStefan Herdler - ``int fd`` 47953614720SStefan Herdler 48053614720SStefan Herdler - File descriptor returned by a previous call to `open()`_. 48153614720SStefan Herdler 48253614720SStefan Herdler - .. 48353614720SStefan Herdler 48453614720SStefan Herdler - ``int request`` 48553614720SStefan Herdler 48653614720SStefan Herdler - :cspan:`1` Equals ``AUDIO_STOP`` for this command. 48753614720SStefan Herdler 48853614720SStefan HerdlerDescription 48953614720SStefan Herdler~~~~~~~~~~~ 49053614720SStefan Herdler 49153614720SStefan Herdler.. attention:: Do **not** use in new drivers! 49253614720SStefan Herdler See: :ref:`legacy_dvb_decoder_notes` 49353614720SStefan Herdler 49453614720SStefan HerdlerThis ioctl call asks the Audio Device to stop playing the current 49553614720SStefan Herdlerstream. 49653614720SStefan Herdler 49753614720SStefan HerdlerReturn Value 49853614720SStefan Herdler~~~~~~~~~~~~ 49953614720SStefan Herdler 50053614720SStefan HerdlerOn success 0 is returned, on error -1 and the ``errno`` variable is set 50153614720SStefan Herdlerappropriately. The generic error codes are described at the 50253614720SStefan Herdler:ref:`Generic Error Codes <gen-errors>` chapter. 50353614720SStefan Herdler 50453614720SStefan Herdler 50553614720SStefan Herdler----- 50653614720SStefan Herdler 50753614720SStefan Herdler 50853614720SStefan HerdlerAUDIO_PLAY 50953614720SStefan Herdler---------- 51053614720SStefan Herdler 51153614720SStefan HerdlerSynopsis 51253614720SStefan Herdler~~~~~~~~ 51353614720SStefan Herdler 51453614720SStefan Herdler.. c:macro:: AUDIO_PLAY 51553614720SStefan Herdler 51653614720SStefan Herdler.. code-block:: c 51753614720SStefan Herdler 51853614720SStefan Herdler int ioctl(int fd, int request = AUDIO_PLAY) 51953614720SStefan Herdler 52053614720SStefan HerdlerArguments 52153614720SStefan Herdler~~~~~~~~~ 52253614720SStefan Herdler 52353614720SStefan Herdler.. flat-table:: 52453614720SStefan Herdler :header-rows: 0 52553614720SStefan Herdler :stub-columns: 0 52653614720SStefan Herdler 52753614720SStefan Herdler - .. 52853614720SStefan Herdler 52953614720SStefan Herdler - ``int fd`` 53053614720SStefan Herdler 53153614720SStefan Herdler - File descriptor returned by a previous call to `open()`_. 53253614720SStefan Herdler 53353614720SStefan Herdler - .. 53453614720SStefan Herdler 53553614720SStefan Herdler - ``int request`` 53653614720SStefan Herdler 53753614720SStefan Herdler - :cspan:`1` Equals ``AUDIO_PLAY`` for this command. 53853614720SStefan Herdler 53953614720SStefan HerdlerDescription 54053614720SStefan Herdler~~~~~~~~~~~ 54153614720SStefan Herdler 54253614720SStefan Herdler.. attention:: Do **not** use in new drivers! 54353614720SStefan Herdler See: :ref:`legacy_dvb_decoder_notes` 54453614720SStefan Herdler 54553614720SStefan HerdlerThis ioctl call asks the Audio Device to start playing an audio stream 54653614720SStefan Herdlerfrom the selected source. 54753614720SStefan Herdler 54853614720SStefan HerdlerReturn Value 54953614720SStefan Herdler~~~~~~~~~~~~ 55053614720SStefan Herdler 55153614720SStefan HerdlerOn success 0 is returned, on error -1 and the ``errno`` variable is set 55253614720SStefan Herdlerappropriately. The generic error codes are described at the 55353614720SStefan Herdler:ref:`Generic Error Codes <gen-errors>` chapter. 55453614720SStefan Herdler 55553614720SStefan Herdler 55653614720SStefan Herdler----- 55753614720SStefan Herdler 55853614720SStefan Herdler 55953614720SStefan HerdlerAUDIO_PAUSE 56053614720SStefan Herdler----------- 56153614720SStefan Herdler 56253614720SStefan HerdlerSynopsis 56353614720SStefan Herdler~~~~~~~~ 56453614720SStefan Herdler 56553614720SStefan Herdler.. c:macro:: AUDIO_PAUSE 56653614720SStefan Herdler 56753614720SStefan Herdler.. code-block:: c 56853614720SStefan Herdler 56953614720SStefan Herdler int ioctl(int fd, int request = AUDIO_PAUSE) 57053614720SStefan Herdler 57153614720SStefan HerdlerArguments 57253614720SStefan Herdler~~~~~~~~~ 57353614720SStefan Herdler 57453614720SStefan Herdler.. flat-table:: 57553614720SStefan Herdler :header-rows: 0 57653614720SStefan Herdler :stub-columns: 0 57753614720SStefan Herdler 57853614720SStefan Herdler - .. 57953614720SStefan Herdler 58053614720SStefan Herdler - ``int fd`` 58153614720SStefan Herdler 58253614720SStefan Herdler - :cspan:`1` File descriptor returned by a previous call 58353614720SStefan Herdler to `open()`_. 58453614720SStefan Herdler 58553614720SStefan Herdler - .. 58653614720SStefan Herdler 58753614720SStefan Herdler - ``int request`` 58853614720SStefan Herdler 58953614720SStefan Herdler - Equals ``AUDIO_PAUSE`` for this command. 59053614720SStefan Herdler 59153614720SStefan HerdlerDescription 59253614720SStefan Herdler~~~~~~~~~~~ 59353614720SStefan Herdler 59453614720SStefan Herdler.. attention:: Do **not** use in new drivers! 59553614720SStefan Herdler See: :ref:`legacy_dvb_decoder_notes` 59653614720SStefan Herdler 59753614720SStefan HerdlerThis ioctl call suspends the audio stream being played. Decoding and 59853614720SStefan Herdlerplaying are paused. It is then possible to restart again decoding and 59953614720SStefan Herdlerplaying process of the audio stream using `AUDIO_CONTINUE`_ command. 60053614720SStefan Herdler 60153614720SStefan HerdlerReturn Value 60253614720SStefan Herdler~~~~~~~~~~~~ 60353614720SStefan Herdler 60453614720SStefan HerdlerOn success 0 is returned, on error -1 and the ``errno`` variable is set 60553614720SStefan Herdlerappropriately. The generic error codes are described at the 60653614720SStefan Herdler:ref:`Generic Error Codes <gen-errors>` chapter. 60753614720SStefan Herdler 60853614720SStefan Herdler 60953614720SStefan Herdler----- 61053614720SStefan Herdler 61153614720SStefan Herdler 61253614720SStefan HerdlerAUDIO_CONTINUE 61353614720SStefan Herdler-------------- 61453614720SStefan Herdler 61553614720SStefan HerdlerSynopsis 61653614720SStefan Herdler~~~~~~~~ 61753614720SStefan Herdler 61853614720SStefan Herdler.. c:macro:: AUDIO_CONTINUE 61953614720SStefan Herdler 62053614720SStefan Herdler.. code-block:: c 62153614720SStefan Herdler 62253614720SStefan Herdler int ioctl(int fd, int request = AUDIO_CONTINUE) 62353614720SStefan Herdler 62453614720SStefan HerdlerArguments 62553614720SStefan Herdler~~~~~~~~~ 62653614720SStefan Herdler 62753614720SStefan Herdler.. flat-table:: 62853614720SStefan Herdler :header-rows: 0 62953614720SStefan Herdler :stub-columns: 0 63053614720SStefan Herdler 63153614720SStefan Herdler - .. 63253614720SStefan Herdler 63353614720SStefan Herdler - ``int fd`` 63453614720SStefan Herdler 63553614720SStefan Herdler - :cspan:`1` File descriptor returned by a previous call 63653614720SStefan Herdler to `open()`_. 63753614720SStefan Herdler 63853614720SStefan Herdler - .. 63953614720SStefan Herdler 64053614720SStefan Herdler - ``int request`` 64153614720SStefan Herdler 64253614720SStefan Herdler - Equals ``AUDIO_CONTINUE`` for this command. 64353614720SStefan Herdler 64453614720SStefan HerdlerDescription 64553614720SStefan Herdler~~~~~~~~~~~ 64653614720SStefan Herdler 64753614720SStefan Herdler.. attention:: Do **not** use in new drivers! 64853614720SStefan Herdler See: :ref:`legacy_dvb_decoder_notes` 64953614720SStefan Herdler 65053614720SStefan HerdlerThis ioctl restarts the decoding and playing process previously paused 65153614720SStefan Herdlerwith `AUDIO_PAUSE`_ command. 65253614720SStefan Herdler 65353614720SStefan HerdlerReturn Value 65453614720SStefan Herdler~~~~~~~~~~~~ 65553614720SStefan Herdler 65653614720SStefan HerdlerOn success 0 is returned, on error -1 and the ``errno`` variable is set 65753614720SStefan Herdlerappropriately. The generic error codes are described at the 65853614720SStefan Herdler:ref:`Generic Error Codes <gen-errors>` chapter. 65953614720SStefan Herdler 66053614720SStefan Herdler 66153614720SStefan Herdler----- 66253614720SStefan Herdler 66353614720SStefan Herdler 66453614720SStefan HerdlerAUDIO_SELECT_SOURCE 66553614720SStefan Herdler------------------- 66653614720SStefan Herdler 66753614720SStefan HerdlerSynopsis 66853614720SStefan Herdler~~~~~~~~ 66953614720SStefan Herdler 67053614720SStefan Herdler.. c:macro:: AUDIO_SELECT_SOURCE 67153614720SStefan Herdler 67253614720SStefan Herdler.. code-block:: c 67353614720SStefan Herdler 67453614720SStefan Herdler int ioctl(int fd, int request = AUDIO_SELECT_SOURCE, 67553614720SStefan Herdler audio_stream_source_t source) 67653614720SStefan Herdler 67753614720SStefan HerdlerArguments 67853614720SStefan Herdler~~~~~~~~~ 67953614720SStefan Herdler 68053614720SStefan Herdler.. flat-table:: 68153614720SStefan Herdler :header-rows: 0 68253614720SStefan Herdler :stub-columns: 0 68353614720SStefan Herdler 68453614720SStefan Herdler - .. 68553614720SStefan Herdler 68653614720SStefan Herdler - ``int fd`` 68753614720SStefan Herdler 68853614720SStefan Herdler - :cspan:`1` File descriptor returned by a previous call 68953614720SStefan Herdler to `open()`_. 69053614720SStefan Herdler 69153614720SStefan Herdler - .. 69253614720SStefan Herdler 69353614720SStefan Herdler - ``int request`` 69453614720SStefan Herdler 69553614720SStefan Herdler - Equals ``AUDIO_SELECT_SOURCE`` for this command. 69653614720SStefan Herdler 69753614720SStefan Herdler - .. 69853614720SStefan Herdler 69953614720SStefan Herdler - `audio_stream_source_t`_ ``source`` 70053614720SStefan Herdler 70153614720SStefan Herdler - Indicates the source that shall be used for the Audio stream. 70253614720SStefan Herdler 70353614720SStefan HerdlerDescription 70453614720SStefan Herdler~~~~~~~~~~~ 70553614720SStefan Herdler 70653614720SStefan Herdler.. attention:: Do **not** use in new drivers! 70753614720SStefan Herdler See: :ref:`legacy_dvb_decoder_notes` 70853614720SStefan Herdler 70953614720SStefan HerdlerThis ioctl call informs the audio device which source shall be used for 71053614720SStefan Herdlerthe input data. The possible sources are demux or memory. If 71153614720SStefan Herdler``AUDIO_SOURCE_MEMORY`` is selected, the data is fed to the Audio Device 71253614720SStefan Herdlerthrough the write command. If ``AUDIO_SOURCE_DEMUX`` is selected, the data 71353614720SStefan Herdleris directly transferred from the onboard demux-device to the decoder. 71453614720SStefan HerdlerNote: This only supports DVB-devices with one demux and one decoder so far. 71553614720SStefan Herdler 71653614720SStefan HerdlerReturn Value 71753614720SStefan Herdler~~~~~~~~~~~~ 71853614720SStefan Herdler 71953614720SStefan HerdlerOn success 0 is returned, on error -1 and the ``errno`` variable is set 72053614720SStefan Herdlerappropriately. The generic error codes are described at the 72153614720SStefan Herdler:ref:`Generic Error Codes <gen-errors>` chapter. 72253614720SStefan Herdler 72353614720SStefan Herdler 72453614720SStefan Herdler----- 72553614720SStefan Herdler 72653614720SStefan Herdler 72753614720SStefan HerdlerAUDIO_SET_MUTE 72853614720SStefan Herdler-------------- 72953614720SStefan Herdler 73053614720SStefan HerdlerSynopsis 73153614720SStefan Herdler~~~~~~~~ 73253614720SStefan Herdler 73353614720SStefan Herdler.. c:macro:: AUDIO_SET_MUTE 73453614720SStefan Herdler 73553614720SStefan Herdler.. code-block:: c 73653614720SStefan Herdler 73753614720SStefan Herdler int ioctl(int fd, int request = AUDIO_SET_MUTE, int state) 73853614720SStefan Herdler 73953614720SStefan HerdlerArguments 74053614720SStefan Herdler~~~~~~~~~ 74153614720SStefan Herdler 74253614720SStefan Herdler.. flat-table:: 74353614720SStefan Herdler :header-rows: 0 74453614720SStefan Herdler :stub-columns: 0 74553614720SStefan Herdler 74653614720SStefan Herdler - .. 74753614720SStefan Herdler 74853614720SStefan Herdler - ``int fd`` 74953614720SStefan Herdler 75053614720SStefan Herdler - :cspan:`1` File descriptor returned by a previous call 75153614720SStefan Herdler to `open()`_. 75253614720SStefan Herdler 75353614720SStefan Herdler - .. 75453614720SStefan Herdler 75553614720SStefan Herdler - ``int request`` 75653614720SStefan Herdler 75753614720SStefan Herdler - :cspan:`1` Equals ``AUDIO_SET_MUTE`` for this command. 75853614720SStefan Herdler 75953614720SStefan Herdler - .. 76053614720SStefan Herdler 76153614720SStefan Herdler - :rspan:`2` ``int state`` 76253614720SStefan Herdler 76353614720SStefan Herdler - :cspan:`1` Indicates if audio device shall mute or not. 76453614720SStefan Herdler 76553614720SStefan Herdler - .. 76653614720SStefan Herdler 76753614720SStefan Herdler - TRUE ( != 0 ) 76853614720SStefan Herdler 76953614720SStefan Herdler - mute audio 77053614720SStefan Herdler 77153614720SStefan Herdler - .. 77253614720SStefan Herdler 77353614720SStefan Herdler - FALSE ( == 0 ) 77453614720SStefan Herdler 77553614720SStefan Herdler - unmute audio 77653614720SStefan Herdler 77753614720SStefan HerdlerDescription 77853614720SStefan Herdler~~~~~~~~~~~ 77953614720SStefan Herdler 78053614720SStefan Herdler.. attention:: Do **not** use in new drivers! 78153614720SStefan Herdler See: :ref:`legacy_dvb_decoder_notes` 78253614720SStefan Herdler 78353614720SStefan HerdlerThis ioctl is for DVB devices only. To control a V4L2 decoder use the 78453614720SStefan HerdlerV4L2 :ref:`VIDIOC_DECODER_CMD` with the 78553614720SStefan Herdler``V4L2_DEC_CMD_START_MUTE_AUDIO`` flag instead. 78653614720SStefan Herdler 78753614720SStefan HerdlerThis ioctl call asks the audio device to mute the stream that is 78853614720SStefan Herdlercurrently being played. 78953614720SStefan Herdler 79053614720SStefan HerdlerReturn Value 79153614720SStefan Herdler~~~~~~~~~~~~ 79253614720SStefan Herdler 79353614720SStefan HerdlerOn success 0 is returned, on error -1 and the ``errno`` variable is set 79453614720SStefan Herdlerappropriately. The generic error codes are described at the 79553614720SStefan Herdler:ref:`Generic Error Codes <gen-errors>` chapter. 79653614720SStefan Herdler 79753614720SStefan Herdler 79853614720SStefan Herdler----- 79953614720SStefan Herdler 80053614720SStefan Herdler 80153614720SStefan HerdlerAUDIO_SET_AV_SYNC 80253614720SStefan Herdler----------------- 80353614720SStefan Herdler 80453614720SStefan HerdlerSynopsis 80553614720SStefan Herdler~~~~~~~~ 80653614720SStefan Herdler 80753614720SStefan Herdler.. c:macro:: AUDIO_SET_AV_SYNC 80853614720SStefan Herdler 80953614720SStefan Herdler.. code-block:: c 81053614720SStefan Herdler 81153614720SStefan Herdler int ioctl(int fd, int request = AUDIO_SET_AV_SYNC, int state) 81253614720SStefan Herdler 81353614720SStefan HerdlerArguments 81453614720SStefan Herdler~~~~~~~~~ 81553614720SStefan Herdler 81653614720SStefan Herdler.. flat-table:: 81753614720SStefan Herdler :header-rows: 0 81853614720SStefan Herdler :stub-columns: 0 81953614720SStefan Herdler 82053614720SStefan Herdler - .. 82153614720SStefan Herdler 82253614720SStefan Herdler - ``int fd`` 82353614720SStefan Herdler 82453614720SStefan Herdler - :cspan:`1` File descriptor returned by a previous call 82553614720SStefan Herdler to `open()`_. 82653614720SStefan Herdler 82753614720SStefan Herdler - .. 82853614720SStefan Herdler 82953614720SStefan Herdler - ``int request`` 83053614720SStefan Herdler 83153614720SStefan Herdler - :cspan:`1` Equals ``AUDIO_AV_SYNC`` for this command. 83253614720SStefan Herdler 83353614720SStefan Herdler - .. 83453614720SStefan Herdler 83553614720SStefan Herdler - :rspan:`2` ``int state`` 83653614720SStefan Herdler 83753614720SStefan Herdler - :cspan:`1` Tells the DVB subsystem if A/V synchronization 83853614720SStefan Herdler shall be ON or OFF. 83953614720SStefan Herdler 84053614720SStefan Herdler - .. 84153614720SStefan Herdler 84253614720SStefan Herdler - TRUE ( != 0 ) 84353614720SStefan Herdler 84453614720SStefan Herdler - AV-sync ON. 84553614720SStefan Herdler 84653614720SStefan Herdler - .. 84753614720SStefan Herdler 84853614720SStefan Herdler - FALSE ( == 0 ) 84953614720SStefan Herdler 85053614720SStefan Herdler - AV-sync OFF. 85153614720SStefan Herdler 85253614720SStefan HerdlerDescription 85353614720SStefan Herdler~~~~~~~~~~~ 85453614720SStefan Herdler 85553614720SStefan Herdler.. attention:: Do **not** use in new drivers! 85653614720SStefan Herdler See: :ref:`legacy_dvb_decoder_notes` 85753614720SStefan Herdler 85853614720SStefan HerdlerThis ioctl call asks the Audio Device to turn ON or OFF A/V 85953614720SStefan Herdlersynchronization. 86053614720SStefan Herdler 86153614720SStefan HerdlerReturn Value 86253614720SStefan Herdler~~~~~~~~~~~~ 86353614720SStefan Herdler 86453614720SStefan HerdlerOn success 0 is returned, on error -1 and the ``errno`` variable is set 86553614720SStefan Herdlerappropriately. The generic error codes are described at the 86653614720SStefan Herdler:ref:`Generic Error Codes <gen-errors>` chapter. 86753614720SStefan Herdler 86853614720SStefan Herdler 86953614720SStefan Herdler----- 87053614720SStefan Herdler 87153614720SStefan Herdler 87253614720SStefan HerdlerAUDIO_SET_BYPASS_MODE 87353614720SStefan Herdler--------------------- 87453614720SStefan Herdler 87553614720SStefan HerdlerSynopsis 87653614720SStefan Herdler~~~~~~~~ 87753614720SStefan Herdler 87853614720SStefan Herdler.. c:macro:: AUDIO_SET_BYPASS_MODE 87953614720SStefan Herdler 88053614720SStefan Herdler.. code-block:: c 88153614720SStefan Herdler 88253614720SStefan Herdler int ioctl(int fd, int request = AUDIO_SET_BYPASS_MODE, int mode) 88353614720SStefan Herdler 88453614720SStefan HerdlerArguments 88553614720SStefan Herdler~~~~~~~~~ 88653614720SStefan Herdler 88753614720SStefan Herdler.. flat-table:: 88853614720SStefan Herdler :header-rows: 0 88953614720SStefan Herdler :stub-columns: 0 89053614720SStefan Herdler 89153614720SStefan Herdler - .. 89253614720SStefan Herdler 89353614720SStefan Herdler - ``int fd`` 89453614720SStefan Herdler 89553614720SStefan Herdler - :cspan:`1` File descriptor returned by a previous call 89653614720SStefan Herdler to `open()`_. 89753614720SStefan Herdler 89853614720SStefan Herdler - .. 89953614720SStefan Herdler 90053614720SStefan Herdler - ``int request`` 90153614720SStefan Herdler 90253614720SStefan Herdler - :cspan:`1` Equals ``AUDIO_SET_BYPASS_MODE`` for this command. 90353614720SStefan Herdler 90453614720SStefan Herdler - .. 90553614720SStefan Herdler 90653614720SStefan Herdler - :rspan:`2` ``int mode`` 90753614720SStefan Herdler 90853614720SStefan Herdler - :cspan:`1` Enables or disables the decoding of the current 90953614720SStefan Herdler Audio stream in the DVB subsystem. 91053614720SStefan Herdler - .. 91153614720SStefan Herdler 91253614720SStefan Herdler - TRUE ( != 0 ) 91353614720SStefan Herdler 91453614720SStefan Herdler - Disable bypass 91553614720SStefan Herdler 91653614720SStefan Herdler - .. 91753614720SStefan Herdler 91853614720SStefan Herdler - FALSE ( == 0 ) 91953614720SStefan Herdler 92053614720SStefan Herdler - Enable bypass 92153614720SStefan Herdler 92253614720SStefan HerdlerDescription 92353614720SStefan Herdler~~~~~~~~~~~ 92453614720SStefan Herdler 92553614720SStefan Herdler.. attention:: Do **not** use in new drivers! 92653614720SStefan Herdler See: :ref:`legacy_dvb_decoder_notes` 92753614720SStefan Herdler 92853614720SStefan HerdlerThis ioctl call asks the Audio Device to bypass the Audio decoder and 92953614720SStefan Herdlerforward the stream without decoding. This mode shall be used if streams 93053614720SStefan Herdlerthat can’t be handled by the DVB system shall be decoded. Dolby 93153614720SStefan HerdlerDigitalTM streams are automatically forwarded by the DVB subsystem if 93253614720SStefan Herdlerthe hardware can handle it. 93353614720SStefan Herdler 93453614720SStefan HerdlerReturn Value 93553614720SStefan Herdler~~~~~~~~~~~~ 93653614720SStefan Herdler 93753614720SStefan HerdlerOn success 0 is returned, on error -1 and the ``errno`` variable is set 93853614720SStefan Herdlerappropriately. The generic error codes are described at the 93953614720SStefan Herdler:ref:`Generic Error Codes <gen-errors>` chapter. 94053614720SStefan Herdler 94153614720SStefan Herdler 94253614720SStefan Herdler----- 94353614720SStefan Herdler 94453614720SStefan Herdler 94553614720SStefan HerdlerAUDIO_CHANNEL_SELECT 94653614720SStefan Herdler-------------------- 94753614720SStefan Herdler 94853614720SStefan HerdlerSynopsis 94953614720SStefan Herdler~~~~~~~~ 95053614720SStefan Herdler 95153614720SStefan Herdler.. c:macro:: AUDIO_CHANNEL_SELECT 95253614720SStefan Herdler 95353614720SStefan Herdler.. code-block:: c 95453614720SStefan Herdler 95553614720SStefan Herdler int ioctl(int fd, int request = AUDIO_CHANNEL_SELECT, 95653614720SStefan Herdler audio_channel_select_t) 95753614720SStefan Herdler 95853614720SStefan HerdlerArguments 95953614720SStefan Herdler~~~~~~~~~ 96053614720SStefan Herdler 96153614720SStefan Herdler.. flat-table:: 96253614720SStefan Herdler :header-rows: 0 96353614720SStefan Herdler :stub-columns: 0 96453614720SStefan Herdler 96553614720SStefan Herdler - .. 96653614720SStefan Herdler 96753614720SStefan Herdler - ``int fd`` 96853614720SStefan Herdler 96953614720SStefan Herdler - :cspan:`1` File descriptor returned by a previous call 97053614720SStefan Herdler to `open()`_. 97153614720SStefan Herdler 97253614720SStefan Herdler - .. 97353614720SStefan Herdler 97453614720SStefan Herdler - ``int request`` 97553614720SStefan Herdler 97653614720SStefan Herdler - Equals ``AUDIO_CHANNEL_SELECT`` for this command. 97753614720SStefan Herdler 97853614720SStefan Herdler - .. 97953614720SStefan Herdler 98053614720SStefan Herdler - `audio_channel_select_t`_ ``ch`` 98153614720SStefan Herdler 98253614720SStefan Herdler - Select the output format of the audio (mono left/right, stereo). 98353614720SStefan Herdler 98453614720SStefan HerdlerDescription 98553614720SStefan Herdler~~~~~~~~~~~ 98653614720SStefan Herdler 98753614720SStefan Herdler.. attention:: Do **not** use in new drivers! 98853614720SStefan Herdler See: :ref:`legacy_dvb_decoder_notes` 98953614720SStefan Herdler 99053614720SStefan HerdlerThis ioctl is for DVB devices only. To control a V4L2 decoder use the 99153614720SStefan HerdlerV4L2 ``V4L2_CID_MPEG_AUDIO_DEC_PLAYBACK`` control instead. 99253614720SStefan Herdler 99353614720SStefan HerdlerThis ioctl call asks the Audio Device to select the requested channel if 99453614720SStefan Herdlerpossible. 99553614720SStefan Herdler 99653614720SStefan HerdlerReturn Value 99753614720SStefan Herdler~~~~~~~~~~~~ 99853614720SStefan Herdler 99953614720SStefan HerdlerOn success 0 is returned, on error -1 and the ``errno`` variable is set 100053614720SStefan Herdlerappropriately. The generic error codes are described at the 100153614720SStefan Herdler:ref:`Generic Error Codes <gen-errors>` chapter. 100253614720SStefan Herdler 100353614720SStefan Herdler 100453614720SStefan Herdler----- 100553614720SStefan Herdler 100653614720SStefan Herdler 100753614720SStefan HerdlerAUDIO_GET_STATUS 100853614720SStefan Herdler---------------- 100953614720SStefan Herdler 101053614720SStefan HerdlerSynopsis 101153614720SStefan Herdler~~~~~~~~ 101253614720SStefan Herdler 101353614720SStefan Herdler.. c:macro:: AUDIO_GET_STATUS 101453614720SStefan Herdler 101553614720SStefan Herdler.. code-block:: c 101653614720SStefan Herdler 101753614720SStefan Herdler int ioctl(int fd, int request = AUDIO_GET_STATUS, 101853614720SStefan Herdler struct audio_status *status) 101953614720SStefan Herdler 102053614720SStefan HerdlerArguments 102153614720SStefan Herdler~~~~~~~~~ 102253614720SStefan Herdler 102353614720SStefan Herdler.. flat-table:: 102453614720SStefan Herdler :header-rows: 0 102553614720SStefan Herdler :stub-columns: 0 102653614720SStefan Herdler 102753614720SStefan Herdler - .. 102853614720SStefan Herdler 102953614720SStefan Herdler - ``int fd`` 103053614720SStefan Herdler 103153614720SStefan Herdler - :cspan:`1` File descriptor returned by a previous call 103253614720SStefan Herdler to `open()`_. 103353614720SStefan Herdler 103453614720SStefan Herdler - .. 103553614720SStefan Herdler 103653614720SStefan Herdler - ``int request`` 103753614720SStefan Herdler 103853614720SStefan Herdler - Equals AUDIO_GET_STATUS for this command. 103953614720SStefan Herdler 104053614720SStefan Herdler - .. 104153614720SStefan Herdler 104253614720SStefan Herdler - ``struct`` `audio_status`_ ``*status`` 104353614720SStefan Herdler 104453614720SStefan Herdler - Returns the current state of Audio Device. 104553614720SStefan Herdler 104653614720SStefan HerdlerDescription 104753614720SStefan Herdler~~~~~~~~~~~ 104853614720SStefan Herdler 104953614720SStefan Herdler.. attention:: Do **not** use in new drivers! 105053614720SStefan Herdler See: :ref:`legacy_dvb_decoder_notes` 105153614720SStefan Herdler 105253614720SStefan HerdlerThis ioctl call asks the Audio Device to return the current state of the 105353614720SStefan HerdlerAudio Device. 105453614720SStefan Herdler 105553614720SStefan HerdlerReturn Value 105653614720SStefan Herdler~~~~~~~~~~~~ 105753614720SStefan Herdler 105853614720SStefan HerdlerOn success 0 is returned, on error -1 and the ``errno`` variable is set 105953614720SStefan Herdlerappropriately. The generic error codes are described at the 106053614720SStefan Herdler:ref:`Generic Error Codes <gen-errors>` chapter. 106153614720SStefan Herdler 106253614720SStefan Herdler 106353614720SStefan Herdler----- 106453614720SStefan Herdler 106553614720SStefan Herdler 106653614720SStefan HerdlerAUDIO_GET_CAPABILITIES 106753614720SStefan Herdler---------------------- 106853614720SStefan Herdler 106953614720SStefan HerdlerSynopsis 107053614720SStefan Herdler~~~~~~~~ 107153614720SStefan Herdler 107253614720SStefan Herdler.. c:macro:: AUDIO_GET_CAPABILITIES 107353614720SStefan Herdler 107453614720SStefan Herdler.. code-block:: c 107553614720SStefan Herdler 107653614720SStefan Herdler int ioctl(int fd, int request = AUDIO_GET_CAPABILITIES, 107753614720SStefan Herdler unsigned int *cap) 107853614720SStefan Herdler 107953614720SStefan HerdlerArguments 108053614720SStefan Herdler~~~~~~~~~ 108153614720SStefan Herdler 108253614720SStefan Herdler.. flat-table:: 108353614720SStefan Herdler :header-rows: 0 108453614720SStefan Herdler :stub-columns: 0 108553614720SStefan Herdler 108653614720SStefan Herdler - .. 108753614720SStefan Herdler 108853614720SStefan Herdler - ``int fd`` 108953614720SStefan Herdler 109053614720SStefan Herdler - :cspan:`1` File descriptor returned by a previous call 109153614720SStefan Herdler to `open()`_. 109253614720SStefan Herdler 109353614720SStefan Herdler - .. 109453614720SStefan Herdler 109553614720SStefan Herdler - ``int request`` 109653614720SStefan Herdler 109753614720SStefan Herdler - Equals ``AUDIO_GET_CAPABILITIES`` for this command. 109853614720SStefan Herdler 109953614720SStefan Herdler - .. 110053614720SStefan Herdler 110153614720SStefan Herdler - ``unsigned int *cap`` 110253614720SStefan Herdler 110353614720SStefan Herdler - Returns a bit array of supported sound formats. 110453614720SStefan Herdler Bits are defined in `audio encodings`_. 110553614720SStefan Herdler 110653614720SStefan HerdlerDescription 110753614720SStefan Herdler~~~~~~~~~~~ 110853614720SStefan Herdler 110953614720SStefan Herdler.. attention:: Do **not** use in new drivers! 111053614720SStefan Herdler See: :ref:`legacy_dvb_decoder_notes` 111153614720SStefan Herdler 111253614720SStefan HerdlerThis ioctl call asks the Audio Device to tell us about the decoding 111353614720SStefan Herdlercapabilities of the audio hardware. 111453614720SStefan Herdler 111553614720SStefan HerdlerReturn Value 111653614720SStefan Herdler~~~~~~~~~~~~ 111753614720SStefan Herdler 111853614720SStefan HerdlerOn success 0 is returned, on error -1 and the ``errno`` variable is set 111953614720SStefan Herdlerappropriately. The generic error codes are described at the 112053614720SStefan Herdler:ref:`Generic Error Codes <gen-errors>` chapter. 112153614720SStefan Herdler 112253614720SStefan Herdler 112353614720SStefan Herdler----- 112453614720SStefan Herdler 112553614720SStefan Herdler 112653614720SStefan HerdlerAUDIO_CLEAR_BUFFER 112753614720SStefan Herdler------------------ 112853614720SStefan Herdler 112953614720SStefan HerdlerSynopsis 113053614720SStefan Herdler~~~~~~~~ 113153614720SStefan Herdler 113253614720SStefan Herdler.. c:macro:: AUDIO_CLEAR_BUFFER 113353614720SStefan Herdler 113453614720SStefan Herdler.. code-block:: c 113553614720SStefan Herdler 113653614720SStefan Herdler int ioctl(int fd, int request = AUDIO_CLEAR_BUFFER) 113753614720SStefan Herdler 113853614720SStefan HerdlerArguments 113953614720SStefan Herdler~~~~~~~~~ 114053614720SStefan Herdler 114153614720SStefan Herdler.. flat-table:: 114253614720SStefan Herdler :header-rows: 0 114353614720SStefan Herdler :stub-columns: 0 114453614720SStefan Herdler 114553614720SStefan Herdler - .. 114653614720SStefan Herdler 114753614720SStefan Herdler - ``int fd`` 114853614720SStefan Herdler 114953614720SStefan Herdler - :cspan:`1` File descriptor returned by a previous call 115053614720SStefan Herdler to `open()`_. 115153614720SStefan Herdler 115253614720SStefan Herdler - .. 115353614720SStefan Herdler 115453614720SStefan Herdler - ``int request`` 115553614720SStefan Herdler 115653614720SStefan Herdler - Equals ``AUDIO_CLEAR_BUFFER`` for this command. 115753614720SStefan Herdler 115853614720SStefan HerdlerDescription 115953614720SStefan Herdler~~~~~~~~~~~ 116053614720SStefan Herdler 116153614720SStefan Herdler.. attention:: Do **not** use in new drivers! 116253614720SStefan Herdler See: :ref:`legacy_dvb_decoder_notes` 116353614720SStefan Herdler 116453614720SStefan HerdlerThis ioctl call asks the Audio Device to clear all software and hardware 116553614720SStefan Herdlerbuffers of the audio decoder device. 116653614720SStefan Herdler 116753614720SStefan HerdlerReturn Value 116853614720SStefan Herdler~~~~~~~~~~~~ 116953614720SStefan Herdler 117053614720SStefan HerdlerOn success 0 is returned, on error -1 and the ``errno`` variable is set 117153614720SStefan Herdlerappropriately. The generic error codes are described at the 117253614720SStefan Herdler:ref:`Generic Error Codes <gen-errors>` chapter. 117353614720SStefan Herdler 117453614720SStefan Herdler 117553614720SStefan Herdler----- 117653614720SStefan Herdler 117753614720SStefan Herdler 117853614720SStefan HerdlerAUDIO_SET_ID 117953614720SStefan Herdler------------ 118053614720SStefan Herdler 118153614720SStefan HerdlerSynopsis 118253614720SStefan Herdler~~~~~~~~ 118353614720SStefan Herdler 118453614720SStefan Herdler.. c:macro:: AUDIO_SET_ID 118553614720SStefan Herdler 118653614720SStefan Herdler.. code-block:: c 118753614720SStefan Herdler 118853614720SStefan Herdler int ioctl(int fd, int request = AUDIO_SET_ID, int id) 118953614720SStefan Herdler 119053614720SStefan HerdlerArguments 119153614720SStefan Herdler~~~~~~~~~ 119253614720SStefan Herdler 119353614720SStefan Herdler.. flat-table:: 119453614720SStefan Herdler :header-rows: 0 119553614720SStefan Herdler :stub-columns: 0 119653614720SStefan Herdler 119753614720SStefan Herdler - .. 119853614720SStefan Herdler 119953614720SStefan Herdler - ``int fd`` 120053614720SStefan Herdler 120153614720SStefan Herdler - :cspan:`1` File descriptor returned by a previous call 120253614720SStefan Herdler to `open()`_. 120353614720SStefan Herdler 120453614720SStefan Herdler - .. 120553614720SStefan Herdler 120653614720SStefan Herdler - ``int request`` 120753614720SStefan Herdler 120853614720SStefan Herdler - Equals ``AUDIO_SET_ID`` for this command. 120953614720SStefan Herdler 121053614720SStefan Herdler - .. 121153614720SStefan Herdler 121253614720SStefan Herdler - ``int id`` 121353614720SStefan Herdler 121453614720SStefan Herdler - Audio sub-stream id. 121553614720SStefan Herdler 121653614720SStefan HerdlerDescription 121753614720SStefan Herdler~~~~~~~~~~~ 121853614720SStefan Herdler 121953614720SStefan Herdler.. attention:: Do **not** use in new drivers! 122053614720SStefan Herdler See: :ref:`legacy_dvb_decoder_notes` 122153614720SStefan Herdler 122253614720SStefan HerdlerThis ioctl selects which sub-stream is to be decoded if a program or 122353614720SStefan Herdlersystem stream is sent to the video device. 122453614720SStefan Herdler 122553614720SStefan HerdlerIf no audio stream type is set the id has to be in range [0xC0,0xDF] 122653614720SStefan Herdlerfor MPEG sound, in [0x80,0x87] for AC3 and in [0xA0,0xA7] for LPCM. 122753614720SStefan HerdlerSee ITU-T H.222.0 | ISO/IEC 13818-1 for further description. 122853614720SStefan Herdler 122953614720SStefan HerdlerIf the stream type is set with `AUDIO_SET_STREAMTYPE`_, specifies the 123053614720SStefan Herdlerid just the sub-stream id of the audio stream and only the first 5 bits 123153614720SStefan Herdler(& 0x1F) are recognized. 123253614720SStefan Herdler 123353614720SStefan HerdlerReturn Value 123453614720SStefan Herdler~~~~~~~~~~~~ 123553614720SStefan Herdler 123653614720SStefan HerdlerOn success 0 is returned, on error -1 and the ``errno`` variable is set 123753614720SStefan Herdlerappropriately. The generic error codes are described at the 123853614720SStefan Herdler:ref:`Generic Error Codes <gen-errors>` chapter. 123953614720SStefan Herdler 124053614720SStefan Herdler 124153614720SStefan Herdler----- 124253614720SStefan Herdler 124353614720SStefan Herdler 124453614720SStefan HerdlerAUDIO_SET_MIXER 124553614720SStefan Herdler--------------- 124653614720SStefan Herdler 124753614720SStefan HerdlerSynopsis 124853614720SStefan Herdler~~~~~~~~ 124953614720SStefan Herdler 125053614720SStefan Herdler.. c:macro:: AUDIO_SET_MIXER 125153614720SStefan Herdler 125253614720SStefan Herdler.. code-block:: c 125353614720SStefan Herdler 125453614720SStefan Herdler int ioctl(int fd, int request = AUDIO_SET_MIXER, audio_mixer_t *mix) 125553614720SStefan Herdler 125653614720SStefan HerdlerArguments 125753614720SStefan Herdler~~~~~~~~~ 125853614720SStefan Herdler 125953614720SStefan Herdler.. flat-table:: 126053614720SStefan Herdler :header-rows: 0 126153614720SStefan Herdler :stub-columns: 0 126253614720SStefan Herdler 126353614720SStefan Herdler - .. 126453614720SStefan Herdler 126553614720SStefan Herdler - ``int fd`` 126653614720SStefan Herdler 126753614720SStefan Herdler - :cspan:`1` File descriptor returned by a previous call 126853614720SStefan Herdler to `open()`_. 126953614720SStefan Herdler 127053614720SStefan Herdler - .. 127153614720SStefan Herdler 127253614720SStefan Herdler - ``int request`` 127353614720SStefan Herdler 127453614720SStefan Herdler - Equals ``AUDIO_SET_MIXER`` for this command. 127553614720SStefan Herdler 127653614720SStefan Herdler - .. 127753614720SStefan Herdler 127853614720SStefan Herdler - ``audio_mixer_t *mix`` 127953614720SStefan Herdler 128053614720SStefan Herdler - Mixer settings. 128153614720SStefan Herdler 128253614720SStefan HerdlerDescription 128353614720SStefan Herdler~~~~~~~~~~~ 128453614720SStefan Herdler 128553614720SStefan Herdler.. attention:: Do **not** use in new drivers! 128653614720SStefan Herdler See: :ref:`legacy_dvb_decoder_notes` 128753614720SStefan Herdler 128853614720SStefan HerdlerThis ioctl lets you adjust the mixer settings of the audio decoder. 128953614720SStefan Herdler 129053614720SStefan HerdlerReturn Value 129153614720SStefan Herdler~~~~~~~~~~~~ 129253614720SStefan Herdler 129353614720SStefan HerdlerOn success 0 is returned, on error -1 and the ``errno`` variable is set 129453614720SStefan Herdlerappropriately. The generic error codes are described at the 129553614720SStefan Herdler:ref:`Generic Error Codes <gen-errors>` chapter. 129653614720SStefan Herdler 129753614720SStefan Herdler 129853614720SStefan Herdler----- 129953614720SStefan Herdler 130053614720SStefan Herdler 130153614720SStefan HerdlerAUDIO_SET_STREAMTYPE 130253614720SStefan Herdler-------------------- 130353614720SStefan Herdler 130453614720SStefan HerdlerSynopsis 130553614720SStefan Herdler~~~~~~~~ 130653614720SStefan Herdler 130753614720SStefan Herdler.. c:macro:: AUDIO_SET_STREAMTYPE 130853614720SStefan Herdler 130953614720SStefan Herdler.. code-block:: c 131053614720SStefan Herdler 131153614720SStefan Herdler int ioctl(fd, int request = AUDIO_SET_STREAMTYPE, int type) 131253614720SStefan Herdler 131353614720SStefan HerdlerArguments 131453614720SStefan Herdler~~~~~~~~~ 131553614720SStefan Herdler 131653614720SStefan Herdler.. flat-table:: 131753614720SStefan Herdler :header-rows: 0 131853614720SStefan Herdler :stub-columns: 0 131953614720SStefan Herdler 132053614720SStefan Herdler - .. 132153614720SStefan Herdler 132253614720SStefan Herdler - ``int fd`` 132353614720SStefan Herdler 132453614720SStefan Herdler - :cspan:`1` File descriptor returned by a previous call 132553614720SStefan Herdler to `open()`_. 132653614720SStefan Herdler 132753614720SStefan Herdler - .. 132853614720SStefan Herdler 132953614720SStefan Herdler - ``int request`` 133053614720SStefan Herdler 133153614720SStefan Herdler - Equals ``AUDIO_SET_STREAMTYPE`` for this command. 133253614720SStefan Herdler 133353614720SStefan Herdler - .. 133453614720SStefan Herdler 133553614720SStefan Herdler - ``int type`` 133653614720SStefan Herdler 133753614720SStefan Herdler - Stream type. 133853614720SStefan Herdler 133953614720SStefan HerdlerDescription 134053614720SStefan Herdler~~~~~~~~~~~ 134153614720SStefan Herdler 134253614720SStefan Herdler.. attention:: Do **not** use in new drivers! 134353614720SStefan Herdler See: :ref:`legacy_dvb_decoder_notes` 134453614720SStefan Herdler 134553614720SStefan HerdlerThis ioctl tells the driver which kind of audio stream to expect. This 134653614720SStefan Herdleris useful if the stream offers several audio sub-streams like LPCM and 134753614720SStefan HerdlerAC3. 134853614720SStefan Herdler 134953614720SStefan HerdlerStream types defined in ITU-T H.222.0 | ISO/IEC 13818-1 are used. 135053614720SStefan Herdler 135153614720SStefan Herdler 135253614720SStefan HerdlerReturn Value 135353614720SStefan Herdler~~~~~~~~~~~~ 135453614720SStefan Herdler 135553614720SStefan HerdlerOn success 0 is returned, on error -1 and the ``errno`` variable is set 135653614720SStefan Herdlerappropriately. The generic error codes are described at the 135753614720SStefan Herdler:ref:`Generic Error Codes <gen-errors>` chapter. 135853614720SStefan Herdler 135953614720SStefan Herdler.. flat-table:: 136053614720SStefan Herdler :header-rows: 0 136153614720SStefan Herdler :stub-columns: 0 136253614720SStefan Herdler 136353614720SStefan Herdler - .. 136453614720SStefan Herdler 136553614720SStefan Herdler - ``EINVAL`` 136653614720SStefan Herdler 136753614720SStefan Herdler - Type is not a valid or supported stream type. 136853614720SStefan Herdler 136953614720SStefan Herdler 137053614720SStefan Herdler----- 137153614720SStefan Herdler 137253614720SStefan Herdler 137353614720SStefan HerdlerAUDIO_BILINGUAL_CHANNEL_SELECT 137453614720SStefan Herdler------------------------------ 137553614720SStefan Herdler 137653614720SStefan HerdlerSynopsis 137753614720SStefan Herdler~~~~~~~~ 137853614720SStefan Herdler 137953614720SStefan Herdler.. c:macro:: AUDIO_BILINGUAL_CHANNEL_SELECT 138053614720SStefan Herdler 138153614720SStefan Herdler.. code-block:: c 138253614720SStefan Herdler 138353614720SStefan Herdler int ioctl(int fd, int request = AUDIO_BILINGUAL_CHANNEL_SELECT, 138453614720SStefan Herdler audio_channel_select_t) 138553614720SStefan Herdler 138653614720SStefan HerdlerArguments 138753614720SStefan Herdler~~~~~~~~~ 138853614720SStefan Herdler 138953614720SStefan Herdler.. flat-table:: 139053614720SStefan Herdler :header-rows: 0 139153614720SStefan Herdler :stub-columns: 0 139253614720SStefan Herdler 139353614720SStefan Herdler - .. 139453614720SStefan Herdler 139553614720SStefan Herdler - ``int fd`` 139653614720SStefan Herdler 139753614720SStefan Herdler - :cspan:`1` File descriptor returned by a previous call 139853614720SStefan Herdler to `open()`_. 139953614720SStefan Herdler 140053614720SStefan Herdler - .. 140153614720SStefan Herdler 140253614720SStefan Herdler - ``int request`` 140353614720SStefan Herdler 140453614720SStefan Herdler - Equals ``AUDIO_BILINGUAL_CHANNEL_SELECT`` for this command. 140553614720SStefan Herdler 140653614720SStefan Herdler - .. 140753614720SStefan Herdler 140853614720SStefan Herdler - ``audio_channel_select_t ch`` 140953614720SStefan Herdler 141053614720SStefan Herdler - Select the output format of the audio (mono left/right, stereo). 141153614720SStefan Herdler 141253614720SStefan HerdlerDescription 141353614720SStefan Herdler~~~~~~~~~~~ 141453614720SStefan Herdler 141553614720SStefan Herdler.. attention:: Do **not** use in new drivers! 141653614720SStefan Herdler See: :ref:`legacy_dvb_decoder_notes` 141753614720SStefan Herdler 141853614720SStefan HerdlerThis ioctl has been replaced by the V4L2 141953614720SStefan Herdler``V4L2_CID_MPEG_AUDIO_DEC_MULTILINGUAL_PLAYBACK`` control 142053614720SStefan Herdlerfor MPEG decoders controlled through V4L2. 142153614720SStefan Herdler 142253614720SStefan HerdlerThis ioctl call asks the Audio Device to select the requested channel 142353614720SStefan Herdlerfor bilingual streams if possible. 142453614720SStefan Herdler 142553614720SStefan HerdlerReturn Value 142653614720SStefan Herdler~~~~~~~~~~~~ 142753614720SStefan Herdler 142853614720SStefan HerdlerOn success 0 is returned, on error -1 and the ``errno`` variable is set 142953614720SStefan Herdlerappropriately. The generic error codes are described at the 143053614720SStefan Herdler:ref:`Generic Error Codes <gen-errors>` chapter. 143153614720SStefan Herdler 143253614720SStefan Herdler 143353614720SStefan Herdler----- 143453614720SStefan Herdler 143553614720SStefan Herdler 143653614720SStefan Herdleropen() 143753614720SStefan Herdler------ 143853614720SStefan Herdler 143953614720SStefan HerdlerSynopsis 144053614720SStefan Herdler~~~~~~~~ 144153614720SStefan Herdler 144253614720SStefan Herdler.. code-block:: c 144353614720SStefan Herdler 144453614720SStefan Herdler #include <fcntl.h> 144553614720SStefan Herdler 144653614720SStefan Herdler.. c:function:: int open(const char *deviceName, int flags) 144753614720SStefan Herdler 144853614720SStefan HerdlerArguments 144953614720SStefan Herdler~~~~~~~~~ 145053614720SStefan Herdler 145153614720SStefan Herdler.. flat-table:: 145253614720SStefan Herdler :header-rows: 0 145353614720SStefan Herdler :stub-columns: 0 145453614720SStefan Herdler 145553614720SStefan Herdler - .. 145653614720SStefan Herdler 145753614720SStefan Herdler - ``const char *deviceName`` 145853614720SStefan Herdler 145953614720SStefan Herdler - Name of specific audio device. 146053614720SStefan Herdler 146153614720SStefan Herdler - .. 146253614720SStefan Herdler 146353614720SStefan Herdler - :rspan:`3` ``int flags`` 146453614720SStefan Herdler 146553614720SStefan Herdler - :cspan:`1` A bit-wise OR of the following flags: 146653614720SStefan Herdler 146753614720SStefan Herdler - .. 146853614720SStefan Herdler 146953614720SStefan Herdler - ``O_RDONLY`` 147053614720SStefan Herdler 147153614720SStefan Herdler - read-only access 147253614720SStefan Herdler 147353614720SStefan Herdler - .. 147453614720SStefan Herdler 147553614720SStefan Herdler - ``O_RDWR`` 147653614720SStefan Herdler 147753614720SStefan Herdler - read/write access 147853614720SStefan Herdler 147953614720SStefan Herdler - .. 148053614720SStefan Herdler 148153614720SStefan Herdler - ``O_NONBLOCK`` 148253614720SStefan Herdler - | Open in non-blocking mode 148353614720SStefan Herdler | (blocking mode is the default) 148453614720SStefan Herdler 148553614720SStefan HerdlerDescription 148653614720SStefan Herdler~~~~~~~~~~~ 148753614720SStefan Herdler 148853614720SStefan HerdlerThis system call opens a named audio device (e.g. 148953614720SStefan Herdler``/dev/dvb/adapter0/audio0``) for subsequent use. When an open() call has 149053614720SStefan Herdlersucceeded, the device will be ready for use. The significance of 149153614720SStefan Herdlerblocking or non-blocking mode is described in the documentation for 149253614720SStefan Herdlerfunctions where there is a difference. It does not affect the semantics 149353614720SStefan Herdlerof the open() call itself. A device opened in blocking mode can later be 149453614720SStefan Herdlerput into non-blocking mode (and vice versa) using the F_SETFL command 149553614720SStefan Herdlerof the fcntl system call. This is a standard system call, documented in 149653614720SStefan Herdlerthe Linux manual page for fcntl. Only one user can open the Audio Device 149753614720SStefan Herdlerin O_RDWR mode. All other attempts to open the device in this mode will 149853614720SStefan Herdlerfail, and an error code will be returned. If the Audio Device is opened 149953614720SStefan Herdlerin O_RDONLY mode, the only ioctl call that can be used is 150053614720SStefan Herdler`AUDIO_GET_STATUS`_. All other call will return with an error code. 150153614720SStefan Herdler 150253614720SStefan HerdlerReturn Value 150353614720SStefan Herdler~~~~~~~~~~~~ 150453614720SStefan Herdler 150553614720SStefan Herdler.. flat-table:: 150653614720SStefan Herdler :header-rows: 0 150753614720SStefan Herdler :stub-columns: 0 150853614720SStefan Herdler 150953614720SStefan Herdler - .. 151053614720SStefan Herdler 151153614720SStefan Herdler - ``ENODEV`` 151253614720SStefan Herdler 151353614720SStefan Herdler - Device driver not loaded/available. 151453614720SStefan Herdler 151553614720SStefan Herdler - .. 151653614720SStefan Herdler 151753614720SStefan Herdler - ``EBUSY`` 151853614720SStefan Herdler 151953614720SStefan Herdler - Device or resource busy. 152053614720SStefan Herdler 152153614720SStefan Herdler - .. 152253614720SStefan Herdler 152353614720SStefan Herdler - ``EINVAL`` 152453614720SStefan Herdler 152553614720SStefan Herdler - Invalid argument. 152653614720SStefan Herdler 152753614720SStefan Herdler 152853614720SStefan Herdler----- 152953614720SStefan Herdler 153053614720SStefan Herdler 153153614720SStefan Herdlerclose() 153253614720SStefan Herdler------- 153353614720SStefan Herdler 153453614720SStefan HerdlerSynopsis 153553614720SStefan Herdler~~~~~~~~ 153653614720SStefan Herdler 153753614720SStefan Herdler.. c:function:: int close(int fd) 153853614720SStefan Herdler 153953614720SStefan HerdlerArguments 154053614720SStefan Herdler~~~~~~~~~ 154153614720SStefan Herdler 154253614720SStefan Herdler.. flat-table:: 154353614720SStefan Herdler :header-rows: 0 154453614720SStefan Herdler :stub-columns: 0 154553614720SStefan Herdler 154653614720SStefan Herdler - .. 154753614720SStefan Herdler 154853614720SStefan Herdler - ``int fd`` 154953614720SStefan Herdler 155053614720SStefan Herdler - :cspan:`1` File descriptor returned by a previous call 155153614720SStefan Herdler to `open()`_. 155253614720SStefan Herdler 155353614720SStefan HerdlerDescription 155453614720SStefan Herdler~~~~~~~~~~~ 155553614720SStefan Herdler 155653614720SStefan HerdlerThis system call closes a previously opened audio device. 155753614720SStefan Herdler 155853614720SStefan HerdlerReturn Value 155953614720SStefan Herdler~~~~~~~~~~~~ 156053614720SStefan Herdler 156153614720SStefan Herdler.. flat-table:: 156253614720SStefan Herdler :header-rows: 0 156353614720SStefan Herdler :stub-columns: 0 156453614720SStefan Herdler 156553614720SStefan Herdler - .. 156653614720SStefan Herdler 156753614720SStefan Herdler - ``EBADF`` 156853614720SStefan Herdler 156953614720SStefan Herdler - Fd is not a valid open file descriptor. 157053614720SStefan Herdler 157153614720SStefan Herdler----- 157253614720SStefan Herdler 157353614720SStefan Herdler 157453614720SStefan Herdlerwrite() 157553614720SStefan Herdler------- 157653614720SStefan Herdler 157753614720SStefan HerdlerSynopsis 157853614720SStefan Herdler~~~~~~~~ 157953614720SStefan Herdler 158053614720SStefan Herdler.. code-block:: c 158153614720SStefan Herdler 158253614720SStefan Herdler size_t write(int fd, const void *buf, size_t count) 158353614720SStefan Herdler 158453614720SStefan HerdlerArguments 158553614720SStefan Herdler~~~~~~~~~ 158653614720SStefan Herdler 158753614720SStefan Herdler.. flat-table:: 158853614720SStefan Herdler :header-rows: 0 158953614720SStefan Herdler :stub-columns: 0 159053614720SStefan Herdler 159153614720SStefan Herdler - .. 159253614720SStefan Herdler 159353614720SStefan Herdler - ``int fd`` 159453614720SStefan Herdler 159553614720SStefan Herdler - :cspan:`1` File descriptor returned by a previous call 159653614720SStefan Herdler to `open()`_. 159753614720SStefan Herdler 159853614720SStefan Herdler - .. 159953614720SStefan Herdler 160053614720SStefan Herdler - ``void *buf`` 160153614720SStefan Herdler 160253614720SStefan Herdler - Pointer to the buffer containing the PES data. 160353614720SStefan Herdler 160453614720SStefan Herdler - .. 160553614720SStefan Herdler 160653614720SStefan Herdler - ``size_t count`` 160753614720SStefan Herdler 160853614720SStefan Herdler - Size of buf. 160953614720SStefan Herdler 161053614720SStefan HerdlerDescription 161153614720SStefan Herdler~~~~~~~~~~~ 161253614720SStefan Herdler 161353614720SStefan HerdlerThis system call can only be used if ``AUDIO_SOURCE_MEMORY`` is selected 161453614720SStefan Herdlerin the ioctl call `AUDIO_SELECT_SOURCE`_. The data provided shall be in 161553614720SStefan HerdlerPES format. If ``O_NONBLOCK`` is not specified the function will block 161653614720SStefan Herdleruntil buffer space is available. The amount of data to be transferred is 161753614720SStefan Herdlerimplied by count. 161853614720SStefan Herdler 161953614720SStefan HerdlerReturn Value 162053614720SStefan Herdler~~~~~~~~~~~~ 162153614720SStefan Herdler 162253614720SStefan Herdler.. flat-table:: 162353614720SStefan Herdler :header-rows: 0 162453614720SStefan Herdler :stub-columns: 0 162553614720SStefan Herdler 162653614720SStefan Herdler - .. 162753614720SStefan Herdler 162853614720SStefan Herdler - ``EPERM`` 162953614720SStefan Herdler 163053614720SStefan Herdler - :cspan:`1` Mode ``AUDIO_SOURCE_MEMORY`` not selected. 163153614720SStefan Herdler 163253614720SStefan Herdler - .. 163353614720SStefan Herdler 163453614720SStefan Herdler - ``ENOMEM`` 163553614720SStefan Herdler 163653614720SStefan Herdler - Attempted to write more data than the internal buffer can hold. 163753614720SStefan Herdler 163853614720SStefan Herdler - .. 163953614720SStefan Herdler 164053614720SStefan Herdler - ``EBADF`` 164153614720SStefan Herdler 164253614720SStefan Herdler - Fd is not a valid open file descriptor. 1643