Move non driver-specific block to non-driver specific procedure, to avoid

unnecceduplicating code.
Avoid calling set_volume on no-initialized radio device in close_s.



git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@20812 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
voroshil 2006-11-09 13:09:48 +00:00
parent d1639ced67
commit cb6497bd3c
1 changed files with 15 additions and 17 deletions

View File

@ -298,12 +298,6 @@ static int set_frequency_v4l2(radio_priv_t* priv,float frequency){
frequency,strerror(errno)); frequency,strerror(errno));
return STREAM_ERROR; return STREAM_ERROR;
} }
#ifdef USE_RADIO_CAPTURE
if(clear_buffer(priv)!=STREAM_OK){
mp_msg(MSGT_RADIO,MSGL_ERR,MSGTR_RADIO_ClearBufferFailed,strerror(errno));
return STREAM_ERROR;
}
#endif
return STREAM_OK; return STREAM_OK;
} }
@ -441,12 +435,6 @@ static int set_frequency_v4l(radio_priv_t* priv,float frequency){
mp_msg(MSGT_RADIO,MSGL_ERR,MSGTR_RADIO_SetFreqFailed,freq,frequency,strerror(errno)); mp_msg(MSGT_RADIO,MSGL_ERR,MSGTR_RADIO_SetFreqFailed,freq,frequency,strerror(errno));
return STREAM_ERROR; return STREAM_ERROR;
} }
#ifdef USE_RADIO_CAPTURE
if(clear_buffer(priv)!=STREAM_OK){
mp_msg(MSGT_RADIO,MSGL_ERR,MSGTR_RADIO_ClearBufferFailed,strerror(errno));
return STREAM_ERROR;
}
#endif
return STREAM_OK; return STREAM_OK;
} }
/***************************************************************** /*****************************************************************
@ -542,15 +530,25 @@ static inline int set_frequency(radio_priv_t* priv,float frequency){
switch(priv->driver){ switch(priv->driver){
#ifdef HAVE_RADIO_V4L #ifdef HAVE_RADIO_V4L
case RADIO_DRIVER_V4L: case RADIO_DRIVER_V4L:
return set_frequency_v4l(priv,frequency); if(set_frequency_v4l(priv,frequency)!=STREAM_OK)
return STREAM_ERROR;
#endif #endif
#ifdef HAVE_RADIO_V4L2 #ifdef HAVE_RADIO_V4L2
case RADIO_DRIVER_V4L2: case RADIO_DRIVER_V4L2:
return set_frequency_v4l2(priv,frequency); if(set_frequency_v4l2(priv,frequency)!=STREAM_OK)
return STREAM_ERROR;
#endif #endif
default:
mp_msg(MSGT_RADIO,MSGL_ERR,MSGTR_RADIO_DriverUnknownId,priv->driver);
return STREAM_ERROR;
} }
mp_msg(MSGT_RADIO,MSGL_ERR,MSGTR_RADIO_DriverUnknownId,priv->driver); #ifdef USE_RADIO_CAPTURE
return STREAM_ERROR; if(clear_buffer(priv)!=STREAM_OK){
mp_msg(MSGT_RADIO,MSGL_ERR,MSGTR_RADIO_ClearBufferFailed,strerror(errno));
return STREAM_ERROR;
}
#endif
return STREAM_OK;
} }
static inline int get_frequency(radio_priv_t* priv,float* frequency){ static inline int get_frequency(radio_priv_t* priv,float* frequency){
switch(priv->driver){ switch(priv->driver){
@ -1110,8 +1108,8 @@ static void close_s(struct stream_st * stream){
priv->radio_channel_current=NULL; priv->radio_channel_current=NULL;
priv->radio_channel_list=NULL; priv->radio_channel_list=NULL;
set_volume(priv, priv->old_snd_volume);
if (priv->radio_fd>0){ if (priv->radio_fd>0){
set_volume(priv, priv->old_snd_volume);
close(priv->radio_fd); close(priv->radio_fd);
} }