ioctl VIDIOC_ENUM_FREQ_BANDS
&manvol;
VIDIOC_ENUM_FREQ_BANDS
Enumerate supported frequency bands
int ioctl
int fd
int request
struct v4l2_frequency_band
*argp
Arguments
fd
&fd;
request
VIDIOC_ENUM_FREQ_BANDS
argp
Description
Enumerates the frequency bands that a tuner or modulator supports.
To do this applications initialize the tuner,
type and index fields,
and zero out the reserved array of a &v4l2-frequency-band; and
call the VIDIOC_ENUM_FREQ_BANDS ioctl with a pointer
to this structure.
This ioctl is supported if the V4L2_TUNER_CAP_FREQ_BANDS capability
of the corresponding tuner/modulator is set.
struct v4l2_frequency_band
&cs-str;
__u32
tuner
The tuner or modulator index number. This is the
same value as in the &v4l2-input; tuner
field and the &v4l2-tuner; index field, or
the &v4l2-output; modulator field and the
&v4l2-modulator; index field.
__u32
type
The tuner type. This is the same value as in the
&v4l2-tuner; type field. The type must be set
to V4L2_TUNER_RADIO for /dev/radioX
device nodes, and to V4L2_TUNER_ANALOG_TV
for all others. Set this field to V4L2_TUNER_RADIO for
modulators (currently only radio modulators are supported).
See
__u32
index
Identifies the frequency band, set by the application.
__u32
capability
The tuner/modulator capability flags for
this frequency band, see . The V4L2_TUNER_CAP_LOW
or V4L2_TUNER_CAP_1HZ capability must be the same for all frequency bands of the selected tuner/modulator.
So either all bands have that capability set, or none of them have that capability.
__u32
rangelow
The lowest tunable frequency in
units of 62.5 kHz, or if the capability
flag V4L2_TUNER_CAP_LOW is set, in units of 62.5
Hz, for this frequency band. A 1 Hz unit is used when the capability flag
V4L2_TUNER_CAP_1HZ is set.
__u32
rangehigh
The highest tunable frequency in
units of 62.5 kHz, or if the capability
flag V4L2_TUNER_CAP_LOW is set, in units of 62.5
Hz, for this frequency band. A 1 Hz unit is used when the capability flag
V4L2_TUNER_CAP_1HZ is set.
__u32
modulation
The supported modulation systems of this frequency band.
See . Note that currently only one
modulation system per frequency band is supported. More work will need to
be done if multiple modulation systems are possible. Contact the
linux-media mailing list (&v4l-ml;) if you need that functionality.
__u32
reserved[9]
Reserved for future extensions. Applications and drivers
must set the array to zero.
Band Modulation Systems
&cs-def;
V4L2_BAND_MODULATION_VSB
0x02
Vestigial Sideband modulation, used for analog TV.
V4L2_BAND_MODULATION_FM
0x04
Frequency Modulation, commonly used for analog radio.
V4L2_BAND_MODULATION_AM
0x08
Amplitude Modulation, commonly used for analog radio.
&return-value;
EINVAL
The tuner or index
is out of bounds or the type field is wrong.