Mercurial > mplayer.hg
changeset 20758:e0f3254f3b76
Adding ability to check allowed frequency range.
author | voroshil |
---|---|
date | Wed, 08 Nov 2006 07:02:43 +0000 |
parents | 2f71acee3657 |
children | e18fc76c7a98 |
files | DOCS/man/en/mplayer.1 help/help_mp-en.h stream/stream_radio.c |
diffstat | 3 files changed, 19 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/DOCS/man/en/mplayer.1 Wed Nov 08 03:23:02 2006 +0000 +++ b/DOCS/man/en/mplayer.1 Wed Nov 08 07:02:43 2006 +0000 @@ -1603,6 +1603,7 @@ For listening to radio with MPlayer use 'radio://<frequency>' (if channels option is not given) or 'radio://<channel_number>' (if channels option is given) as a movie URL. +You can see allowed frequency range by running MPlayer with '\-v'. To start the grabbing subsystem, use 'radio://<frequency or channel>/capture'. If the capture keyword is not given you can listen to radio using the line-in cable only.
--- a/help/help_mp-en.h Wed Nov 08 03:23:02 2006 +0000 +++ b/help/help_mp-en.h Wed Nov 08 07:02:43 2006 +0000 @@ -1846,6 +1846,7 @@ // stream/stream_radio.c #define MSGTR_RADIO_ChannelNamesDetected "[radio] Radio channel names detected.\n" +#define MSGTR_RADIO_FreqRange "[radio] Allowable frequency range is %.2f-%.2f MHz\n" #define MSGTR_RADIO_WrongFreqForChannel "[radio] Wrong frequency for channel %s\n" #define MSGTR_RADIO_WrongChannelNumberFloat "[radio] Wrong channel number: %.2f\n" #define MSGTR_RADIO_WrongChannelNumberInt "[radio] Wrong channel number: %d\n"
--- a/stream/stream_radio.c Wed Nov 08 03:23:02 2006 +0000 +++ b/stream/stream_radio.c Wed Nov 08 07:02:43 2006 +0000 @@ -112,6 +112,8 @@ int frac; ///< fraction value (see comment to init_frac) radio_channels_t* radio_channel_list; radio_channels_t* radio_channel_current; + float rangelow; ///< lowest tunable frequency in MHz + float rangehigh; ///< highest tunable frequency in MHz int driver; int old_snd_volume; #ifdef USE_RADIO_CAPTURE @@ -186,7 +188,7 @@ priv->radio_channel_current->freq=atof(tmp); - if (priv->radio_channel_current->freq == 0) + if ((priv->radio_channel_current->freq>priv->rangehigh)||(priv->radio_channel_current->freq<priv->rangelow)) mp_msg(MSGT_RADIO, MSGL_ERR, MSGTR_RADIO_WrongFreqForChannel, priv->radio_channel_current->name); @@ -272,6 +274,10 @@ priv->frac=16; mp_msg(MSGT_RADIO,MSGL_DBG2,MSGTR_RADIO_TunerCapLowNo,priv->frac); } + + priv->rangelow=((float)tuner.rangelow)/priv->frac; + priv->rangehigh=((float)tuner.rangehigh)/priv->frac; + mp_msg(MSGT_RADIO,MSGL_V,MSGTR_RADIO_FreqRange,priv->rangelow,priv->rangehigh); return STREAM_OK; } @@ -415,6 +421,11 @@ priv->frac=16; mp_msg(MSGT_RADIO,MSGL_DBG2,MSGTR_RADIO_TunerCapLowNo,priv->frac); } + + priv->rangelow=((float)tuner.rangelow)/priv->frac; + priv->rangehigh=((float)tuner.rangehigh)/priv->frac; + mp_msg(MSGT_RADIO,MSGL_V,MSGTR_RADIO_FreqRange,priv->rangelow,priv->rangehigh); + return STREAM_OK; } @@ -524,6 +535,10 @@ return STREAM_ERROR; } static inline int set_frequency(radio_priv_t* priv,float frequency){ + if ((frequency<priv->rangelow)||(frequency>priv->rangehigh)){ + mp_msg(MSGT_RADIO,MSGL_ERR,MSGTR_RADIO_WrongFreq,frequency); + return STREAM_ERROR; + } switch(priv->driver){ #ifdef HAVE_RADIO_V4L case RADIO_DRIVER_V4L: @@ -1034,7 +1049,7 @@ return STREAM_ERROR; } - if (frequency==0){ + if ((frequency<priv->rangelow)||(frequency>priv->rangehigh)){ mp_msg(MSGT_RADIO, MSGL_ERR, MSGTR_RADIO_WrongFreq,frequency); close_s(stream); return STREAM_ERROR;