[MPlayer-dev-eng] [PATCH] Checking allowable freqyency range in radio module. Latest version.
voroshil at gmail.com
voroshil at gmail.com
Tue Nov 7 20:10:55 CET 2006
Hi, All.
Here is latest version of patch.
Ok to commit ?
--
Regards,
Vladimir Voroshilov mailto:voroshil at gmail.com
Omsk State University
JID: voroshil at jabber.ru
ICQ: 95587719
-------------- next part --------------
Index: stream/stream_radio.c
===================================================================
--- stream/stream_radio.c (revision 20754)
+++ stream/stream_radio.c (working copy)
@@ -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;
Index: DOCS/man/en/mplayer.1
===================================================================
--- DOCS/man/en/mplayer.1 (revision 20751)
+++ DOCS/man/en/mplayer.1 (working copy)
@@ -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 allowable frequency range, 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.
Index: help/help_mp-en.h
===================================================================
--- help/help_mp-en.h (revision 20751)
+++ help/help_mp-en.h (working copy)
@@ -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"
More information about the MPlayer-dev-eng
mailing list