Commit 6cb77a85 authored by Mauro Carvalho Chehab's avatar Mauro Carvalho Chehab

[media] DocBook/frontend.xml: add references for some missing info

The frontend.h.xml now references to the main document. However,
several references are missed.

Links the trivial ones with the corresponding API descriptions.

While here, updates the main API to reflect the API improvements.
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent 0969ec18
...@@ -120,13 +120,13 @@ DOCUMENTED = \ ...@@ -120,13 +120,13 @@ DOCUMENTED = \
-e "s/v4l2\-mpeg\-vbi\-ITV0/v4l2-mpeg-vbi-itv0-1/g" -e "s/v4l2\-mpeg\-vbi\-ITV0/v4l2-mpeg-vbi-itv0-1/g"
DVB_DOCUMENTED = \ DVB_DOCUMENTED = \
-e "s,\(define\s\+\)\([A-Z0-9_]\+\)\(\s\+_IO\),\1\<link linkend=\"\2\">\2\<\/link\>\3,g" \
-e "s/\(linkend\=\"\)FE_SET_PROPERTY/\1FE_GET_PROPERTY/g" \ -e "s/\(linkend\=\"\)FE_SET_PROPERTY/\1FE_GET_PROPERTY/g" \
-e "s,\(struct\s\+\)\([a-z0-9_]\+\)\(\s\+{\),\1\<link linkend=\"\2\">\2\<\/link\>\3,g" \ -e "s,\(struct\s\+\)\([a-z0-9_]\+\)\(\s\+{\),\1\<link linkend=\"\2\">\2\<\/link\>\3,g" \
-e "s,\(}\s\+\)\([a-z0-9_]\+_t\+\),\1\<link linkend=\"\2\">\2\<\/link\>,g" \ -e "s,\(}\s\+\)\([a-z0-9_]\+_t\+\),\1\<link linkend=\"\2\">\2\<\/link\>,g" \
-e "s,\(define\s\+\)\(DTV_[A-Z0-9_]\+\)\(\s\+[0-9]\+\),\1\<link linkend=\"\2\">\2\<\/link\>\3,g" \ -e "s,\(define\s\+\)\(DTV_[A-Z0-9_]\+\)\(\s\+[0-9]\+\),\1\<link linkend=\"\2\">\2\<\/link\>\3,g" \
-e ":a;s/\(linkend=\".*\)_\(.*\">\)/\1-\2/;ta" \ -e ":a;s/\(linkend=\".*\)_\(.*\">\)/\1-\2/;ta" \
-e "s,DTV-ISDBT-LAYER[A-C],DTV-ISDBT-LAYER,g" \ -e "s,DTV-ISDBT-LAYER[A-C],DTV-ISDBT-LAYER,g" \
-e "s,\(define\s\+\)\([A-Z0-9_]\+\)\(\s\+_IO\),\1\<link linkend=\"\2\">\2\<\/link\>\3,g" \
# -e "s,\(\s\+\)\(FE_[A-Z0-9_]\+\)\([\s\=\,]*\),\1\<link linkend=\"\2\">\2\<\/link\>\3,g" \ # -e "s,\(\s\+\)\(FE_[A-Z0-9_]\+\)\([\s\=\,]*\),\1\<link linkend=\"\2\">\2\<\/link\>\3,g" \
# #
......
...@@ -65,7 +65,7 @@ supported via the new <link linkend="FE_GET_SET_PROPERTY">FE_GET_PROPERTY/FE_GET ...@@ -65,7 +65,7 @@ supported via the new <link linkend="FE_GET_SET_PROPERTY">FE_GET_PROPERTY/FE_GET
</para> </para>
</section> </section>
<section id="frontend_caps"> <section id="fe-caps-t">
<title>frontend capabilities</title> <title>frontend capabilities</title>
<para>Capabilities describe what a frontend can do. Some capabilities can only be supported for <para>Capabilities describe what a frontend can do. Some capabilities can only be supported for
...@@ -106,7 +106,7 @@ a specific frontend type.</para> ...@@ -106,7 +106,7 @@ a specific frontend type.</para>
</programlisting> </programlisting>
</section> </section>
<section id="frontend_info"> <section id="dvb-frontend-info">
<title>frontend information</title> <title>frontend information</title>
<para>Information about the frontend ca be queried with <para>Information about the frontend ca be queried with
...@@ -129,7 +129,7 @@ a specific frontend type.</para> ...@@ -129,7 +129,7 @@ a specific frontend type.</para>
</programlisting> </programlisting>
</section> </section>
<section id="frontend_diseqc"> <section id="dvb-diseqc-master-cmd">
<title>diseqc master command</title> <title>diseqc master command</title>
<para>A message sent from the frontend to DiSEqC capable equipment.</para> <para>A message sent from the frontend to DiSEqC capable equipment.</para>
...@@ -153,7 +153,7 @@ a specific frontend type.</para> ...@@ -153,7 +153,7 @@ a specific frontend type.</para>
</programlisting> </programlisting>
</section> </section>
<section id="frontend_diseqc_slave_reply"> <section id="fe-sec-voltage-t">
<title>diseqc slave reply</title> <title>diseqc slave reply</title>
<para>The voltage is usually used with non-DiSEqC capable LNBs to switch the polarzation <para>The voltage is usually used with non-DiSEqC capable LNBs to switch the polarzation
(horizontal/vertical). When using DiSEqC epuipment this voltage has to be switched (horizontal/vertical). When using DiSEqC epuipment this voltage has to be switched
...@@ -166,7 +166,7 @@ consistently to the DiSEqC commands as described in the DiSEqC spec.</para> ...@@ -166,7 +166,7 @@ consistently to the DiSEqC commands as described in the DiSEqC spec.</para>
</programlisting> </programlisting>
</section> </section>
<section id="frontend_sec_tone"> <section id="fe-sec-tone-mode-t">
<title>SEC continuous tone</title> <title>SEC continuous tone</title>
<para>The continuous 22KHz tone is usually used with non-DiSEqC capable LNBs to switch the <para>The continuous 22KHz tone is usually used with non-DiSEqC capable LNBs to switch the
...@@ -181,7 +181,7 @@ spec.</para> ...@@ -181,7 +181,7 @@ spec.</para>
</programlisting> </programlisting>
</section> </section>
<section id="frontend_sec_burst"> <section id="fe-sec-mini-cmd-t">
<title>SEC tone burst</title> <title>SEC tone burst</title>
<para>The 22KHz tone burst is usually used with non-DiSEqC capable switches to select <para>The 22KHz tone burst is usually used with non-DiSEqC capable switches to select
...@@ -198,7 +198,7 @@ spec.</para> ...@@ -198,7 +198,7 @@ spec.</para>
<para></para> <para></para>
</section> </section>
<section id="frontend_status"> <section id="fe-status-t">
<title>frontend status</title> <title>frontend status</title>
<para>Several functions of the frontend device use the fe_status data type defined <para>Several functions of the frontend device use the fe_status data type defined
by</para> by</para>
...@@ -218,31 +218,42 @@ by</para> ...@@ -218,31 +218,42 @@ by</para>
</section> </section>
<section id="frontend_params"> <section id="dvb-frontend-parameters">
<title>frontend parameters</title> <title>frontend parameters</title>
<para>The kind of parameters passed to the frontend device for tuning depend on <para>The kind of parameters passed to the frontend device for tuning depend on
the kind of hardware you are using. All kinds of parameters are combined as an the kind of hardware you are using. All kinds of parameters are combined as an
union in the FrontendParameters structure:</para> union in the FrontendParameters structure:</para>
<programlisting> <programlisting>
struct dvb_frontend_parameters { struct dvb_frontend_parameters {
uint32_t frequency; /&#x22C6; (absolute) frequency in Hz for QAM/OFDM &#x22C6;/ uint32_t frequency; /&#x22C6; (absolute) frequency in Hz for QAM/OFDM &#x22C6;/
/&#x22C6; intermediate frequency in kHz for QPSK &#x22C6;/ /&#x22C6; intermediate frequency in kHz for QPSK &#x22C6;/
fe_spectral_inversion_t inversion; fe_spectral_inversion_t inversion;
union { union {
struct dvb_qpsk_parameters qpsk; struct dvb_qpsk_parameters qpsk;
struct dvb_qam_parameters qam; struct dvb_qam_parameters qam;
struct dvb_ofdm_parameters ofdm; struct dvb_ofdm_parameters ofdm;
} u; struct dvb_vsb_parameters vsb;
}; } u;
};
</programlisting> </programlisting>
<para>For satellite QPSK frontends you have to use the <constant>QPSKParameters</constant> member defined by</para> <para>In the case of QPSK frontends the <constant>frequency</constant> field specifies the intermediate
frequency, i.e. the offset which is effectively added to the local oscillator frequency (LOF) of
the LNB. The intermediate frequency has to be specified in units of kHz. For QAM and
OFDM frontends the <constant>frequency</constant> specifies the absolute frequency and is given in Hz.
</para>
<section id="dvb-qpsk-parameters">
<title>QPSK parameters</title>
<para>For satellite QPSK frontends you have to use the <constant>dvb_qpsk_parameters</constant> structure:</para>
<programlisting> <programlisting>
struct dvb_qpsk_parameters { struct dvb_qpsk_parameters {
uint32_t symbol_rate; /&#x22C6; symbol rate in Symbols per second &#x22C6;/ uint32_t symbol_rate; /&#x22C6; symbol rate in Symbols per second &#x22C6;/
fe_code_rate_t fec_inner; /&#x22C6; forward error correction (see above) &#x22C6;/ fe_code_rate_t fec_inner; /&#x22C6; forward error correction (see above) &#x22C6;/
}; };
</programlisting> </programlisting>
<para>for cable QAM frontend you use the <constant>QAMParameters</constant> structure</para> </section>
<section id="dvb-qam-parameters">
<title>QAM parameters</title>
<para>for cable QAM frontend you use the <constant>dvb_qam_parameters</constant> structure:</para>
<programlisting> <programlisting>
struct dvb_qam_parameters { struct dvb_qam_parameters {
uint32_t symbol_rate; /&#x22C6; symbol rate in Symbols per second &#x22C6;/ uint32_t symbol_rate; /&#x22C6; symbol rate in Symbols per second &#x22C6;/
...@@ -250,8 +261,10 @@ union in the FrontendParameters structure:</para> ...@@ -250,8 +261,10 @@ union in the FrontendParameters structure:</para>
fe_modulation_t modulation; /&#x22C6; modulation type (see above) &#x22C6;/ fe_modulation_t modulation; /&#x22C6; modulation type (see above) &#x22C6;/
}; };
</programlisting> </programlisting>
<para>DVB-T frontends are supported by the <constant>OFDMParamters</constant> structure </section>
</para> <section id="dvb-ofdm-parameters">
<title>OFDM parameters</title>
<para>DVB-T frontends are supported by the <constant>dvb_ofdm_parameters</constant> structure:</para>
<programlisting> <programlisting>
struct dvb_ofdm_parameters { struct dvb_ofdm_parameters {
fe_bandwidth_t bandwidth; fe_bandwidth_t bandwidth;
...@@ -263,86 +276,128 @@ union in the FrontendParameters structure:</para> ...@@ -263,86 +276,128 @@ union in the FrontendParameters structure:</para>
fe_hierarchy_t hierarchy_information; fe_hierarchy_t hierarchy_information;
}; };
</programlisting> </programlisting>
<para>In the case of QPSK frontends the <constant>Frequency</constant> field specifies the intermediate </section>
frequency, i.e. the offset which is effectively added to the local oscillator frequency (LOF) of <section id="dvb-vsb-parameters">
the LNB. The intermediate frequency has to be specified in units of kHz. For QAM and <title>VSB parameters</title>
OFDM frontends the Frequency specifies the absolute frequency and is given in <para>DVB-T frontends are supported by the <constant>dvb_vsb_parameters</constant> structure:</para>
Hz. <programlisting>
</para> struct dvb_vsb_parameters {
fe_modulation_t modulation; /&#x22C6; modulation type (see above) &#x22C6;/
};
</programlisting>
</section>
<section id="fe-spectral-inversion-t">
<title>frontend spectral inversion</title>
<para>The Inversion field can take one of these values: <para>The Inversion field can take one of these values:
</para> </para>
<programlisting> <programlisting>
typedef enum fe_spectral_inversion { typedef enum fe_spectral_inversion {
INVERSION_OFF, INVERSION_OFF,
INVERSION_ON, INVERSION_ON,
INVERSION_AUTO INVERSION_AUTO
} fe_spectral_inversion_t; } fe_spectral_inversion_t;
</programlisting> </programlisting>
<para>It indicates if spectral inversion should be presumed or not. In the automatic setting <para>It indicates if spectral inversion should be presumed or not. In the automatic setting
(<constant>INVERSION_AUTO</constant>) the hardware will try to figure out the correct setting by (<constant>INVERSION_AUTO</constant>) the hardware will try to figure out the correct setting by
itself. itself.
</para> </para>
</section>
<section id="fe-code-rate-t">
<title>frontend code rate</title>
<para>The possible values for the <constant>FEC_inner</constant> field are <para>The possible values for the <constant>FEC_inner</constant> field are
</para> </para>
<programlisting> <programlisting>
typedef enum fe_code_rate { typedef enum fe_code_rate {
FEC_NONE = 0, FEC_NONE = 0,
FEC_1_2, FEC_1_2,
FEC_2_3, FEC_2_3,
FEC_3_4, FEC_3_4,
FEC_4_5, FEC_4_5,
FEC_5_6, FEC_5_6,
FEC_6_7, FEC_6_7,
FEC_7_8, FEC_7_8,
FEC_8_9, FEC_8_9,
FEC_AUTO FEC_AUTO,
} fe_code_rate_t; FEC_3_5,
FEC_9_10,
} fe_code_rate_t;
</programlisting> </programlisting>
<para>which correspond to error correction rates of 1/2, 2/3, etc., no error correction or auto <para>which correspond to error correction rates of 1/2, 2/3, etc., no error correction or auto
detection. detection.
</para> </para>
</section>
<section id="fe-modulation-t">
<title>frontend modulation type for QAM and OFDM</title>
<para>For cable and terrestrial frontends (QAM and OFDM) one also has to specify the quadrature <para>For cable and terrestrial frontends (QAM and OFDM) one also has to specify the quadrature
modulation mode which can be one of the following: modulation mode which can be one of the following:
</para> </para>
<programlisting> <programlisting>
typedef enum fe_modulation { typedef enum fe_modulation {
QPSK, QPSK,
QAM_16, QAM_16,
QAM_32, QAM_32,
QAM_64, QAM_64,
QAM_128, QAM_128,
QAM_256, QAM_256,
QAM_AUTO QAM_AUTO,
VSB_8,
VSB_16,
PSK_8,
APSK_16,
APSK_32,
DQPSK,
} fe_modulation_t; } fe_modulation_t;
</programlisting> </programlisting>
</section>
<para>Finally, there are several more parameters for OFDM: <para>Finally, there are several more parameters for OFDM:
</para> </para>
<section id="fe-transmit-mode-t">
<title>Number of carriers per channel, on OFTM modulation</title>
<programlisting> <programlisting>
typedef enum fe_transmit_mode { typedef enum fe_transmit_mode {
TRANSMISSION_MODE_2K, TRANSMISSION_MODE_2K,
TRANSMISSION_MODE_8K, TRANSMISSION_MODE_8K,
TRANSMISSION_MODE_AUTO TRANSMISSION_MODE_AUTO,
TRANSMISSION_MODE_4K,
TRANSMISSION_MODE_1K,
TRANSMISSION_MODE_16K,
TRANSMISSION_MODE_32K,
} fe_transmit_mode_t; } fe_transmit_mode_t;
</programlisting> </programlisting>
<programlisting> </section>
typedef enum fe_bandwidth { <section id="fe-bandwidth-t">
BANDWIDTH_8_MHZ, <title>frontend bandwidth</title>
BANDWIDTH_7_MHZ, <programlisting>
BANDWIDTH_6_MHZ, typedef enum fe_bandwidth {
BANDWIDTH_AUTO BANDWIDTH_8_MHZ,
} fe_bandwidth_t; BANDWIDTH_7_MHZ,
BANDWIDTH_6_MHZ,
BANDWIDTH_AUTO,
BANDWIDTH_5_MHZ,
BANDWIDTH_10_MHZ,
BANDWIDTH_1_712_MHZ,
} fe_bandwidth_t;
</programlisting> </programlisting>
<programlisting> </section>
typedef enum fe_guard_interval { <section id="fe-guard-interval-t">
GUARD_INTERVAL_1_32, <title>frontend guard inverval</title>
GUARD_INTERVAL_1_16, <programlisting>
GUARD_INTERVAL_1_8, typedef enum fe_guard_interval {
GUARD_INTERVAL_1_4, GUARD_INTERVAL_1_32,
GUARD_INTERVAL_AUTO GUARD_INTERVAL_1_16,
} fe_guard_interval_t; GUARD_INTERVAL_1_8,
GUARD_INTERVAL_1_4,
GUARD_INTERVAL_AUTO,
GUARD_INTERVAL_1_128,
GUARD_INTERVAL_19_128,
GUARD_INTERVAL_19_256,
} fe_guard_interval_t;
</programlisting> </programlisting>
<programlisting> </section>
typedef enum fe_hierarchy { <section id="fe-hierarchy-t">
<title>frontend hierarchy</title>
<programlisting>
typedef enum fe_hierarchy {
HIERARCHY_NONE, HIERARCHY_NONE,
HIERARCHY_1, HIERARCHY_1,
HIERARCHY_2, HIERARCHY_2,
...@@ -350,10 +405,11 @@ modulation mode which can be one of the following: ...@@ -350,10 +405,11 @@ modulation mode which can be one of the following:
HIERARCHY_AUTO HIERARCHY_AUTO
} fe_hierarchy_t; } fe_hierarchy_t;
</programlisting> </programlisting>
</section>
</section> </section>
<section id="frontend_events"> <section id="dvb-frontend-event">
<title>frontend events</title> <title>frontend events</title>
<programlisting> <programlisting>
struct dvb_frontend_event { struct dvb_frontend_event {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment