123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151 |
- /*
- * Copyright (c) 2011-2014 - Mauro Carvalho Chehab
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation version 2
- * of the License.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
- * Or, point your browser to http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
- */
- #ifndef _LIBSAT_H
- #define _LIBSAT_H
- #include "dvb-v5-std.h"
- /**
- * @file dvb-sat.h
- * @ingroup satellite
- * @brief Provides interfaces to deal with DVB Satellite systems.
- * @copyright GNU General Public License version 2 (GPLv2)
- * @author Mauro Carvalho Chehab
- *
- * @par Bug Report
- * Please submit bug reports and patches to linux-media@vger.kernel.org
- */
- /*
- * Satellite handling functions
- */
- /**
- * @struct dvbsat_freqrange
- * @brief Defines a frequency range used by Satellite
- * @ingroup satellite
- *
- * @param low low frequency, in kHz
- * @param high high frequency, in kHz
- */
- struct dvbsat_freqrange {
- unsigned low, high;
- };
- /**
- * @struct dvb_sat_lnb
- * @brief Stores the information of a LNBf
- * @ingroup satellite
- *
- * @param name long name of the LNBf type
- * @param alias short name for the LNBf type
- * @param lowfreq Low frequency Intermediate Frequency of the LNBf, in kHz
- * @param highfreq High frequency Intermediate frequency of the LNBf,
- * in kHz
- * @param rangeswitch For LNBf that has multiple frequency ranges controlled
- * by a voltage change, specify the start frequency where
- * the second range will be applied.
- * @param freqrange Contains the range(s) of frequencies supported by a
- * given LNBf.
- *
- * The LNBf (low-noise block downconverter) is a type of amplifier that is
- * installed inside the parabolic dishes. It converts the antenna signal to
- * an Intermediate Frequency. Several Ku-band LNBf have more than one IF.
- * The lower IF is stored at lowfreq, the higher IF at highfreq.
- * The exact setup for those structs actually depend on the model of the LNBf,
- * and its usage.
- */
- struct dvb_sat_lnb {
- const char *name;
- const char *alias;
- unsigned lowfreq, highfreq;
- unsigned rangeswitch;
- struct dvbsat_freqrange freqrange[2];
- };
- struct dvb_v5_fe_parms;
- #ifdef __cplusplus
- extern "C" {
- #endif
- /* From libsat.c */
- /**
- * @brief search for a LNBf entry
- * @ingroup satellite
- *
- * @param name name of the LNBf entry to seek.
- *
- * On sucess, it returns a non-negative number with corresponds to the LNBf
- * entry inside the LNBf structure at dvb-sat.c.
- *
- * @return A -1 return code indicates that the LNBf was not found.
- */
- int dvb_sat_search_lnb(const char *name);
- /**
- * @brief prints the contents of a LNBf entry at STDOUT.
- * @ingroup satellite
- *
- * @param index index for the entry
- *
- * @return returns -1 if the index is out of range, zero otherwise.
- */
- int dvb_print_lnb(int index);
- /**
- * @brief Prints all LNBf entries at STDOUT.
- * @ingroup satellite
- *
- * This function doesn't return anything. Internally, it calls dvb_print_lnb()
- * for all entries inside its LNBf database.
- */
- void dvb_print_all_lnb(void);
- /**
- * @brief gets a LNBf entry at its internal database
- * @ingroup satellite
- *
- * @param index index for the entry.
- *
- * @return returns NULL if not found, of a struct dvb_sat_lnb pointer otherwise.
- */
- const struct dvb_sat_lnb *dvb_sat_get_lnb(int index);
- /**
- * @brief sets the satellite parameters
- * @ingroup satellite
- *
- * @param parms struct dvb_v5_fe_parms pointer.
- *
- * This function is called internally by the library to set the LNBf
- * parameters, if the dvb_v5_fe_parms::lnb field is filled.
- *
- * @return 0 on success.
- */
- int dvb_sat_set_parms(struct dvb_v5_fe_parms *parms);
- #ifdef __cplusplus
- }
- #endif
- #endif // _LIBSAT_H
|