changeset 7806:6a6f6b8b2ac7

set position in channel list on startup. note: hope one day we will get cleaned the int->float->int sutff ;)
author alex
date Sat, 19 Oct 2002 20:55:06 +0000
parents f71bc57c4da9
children 5cd172eeaf23
files libmpdemux/tv.c
diffstat 1 files changed, 30 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/libmpdemux/tv.c	Sat Oct 19 20:26:04 2002 +0000
+++ b/libmpdemux/tv.c	Sat Oct 19 20:55:06 2002 +0000
@@ -244,6 +244,25 @@
 	    }
 	}
     }
+    
+    /* grep frequency in chanlist */
+    {
+	unsigned long i2;
+	int freq;
+	
+	tv_get_freq(tvh, &i2);
+	
+	freq = (int) (((float)(i2/16))*1000)+250;
+	
+	for (i = 0; i < chanlists[tvh->chanlist].count; i++)
+	{
+	    if (tvh->chanlist_s[i].freq == freq)
+	    {
+		tvh->channel = i+1;
+		break;
+	    }
+	}
+    }
 
 done:    
     /* also start device! */
@@ -388,13 +407,11 @@
     return 1;
 }
 
-#if defined(USE_TV) && defined(HAVE_TV_V4L)
 int demux_close_tv(demuxer_t *demuxer)
 {
     tvi_handle_t *tvh=(tvi_handle_t*)(demuxer->priv);
     return(tvh->functions->uninit(tvh->priv));
 }
-#endif
 
 /* ================== STREAM_TV ===================== */
 tvi_handle_t *tvi_init_dummy(char *device);
@@ -516,6 +533,17 @@
     return(1);
 }
 
+int tv_get_freq(tvi_handle_t *tvh, unsigned long *freq)
+{
+    if (tvh->functions->control(tvh->priv, TVI_CONTROL_IS_TUNER, 0) == TVI_CONTROL_TRUE)
+    {
+	tvh->functions->control(tvh->priv, TVI_CONTROL_TUN_GET_FREQ, freq);
+	mp_msg(MSGT_TV, MSGL_V, "Current frequency: %lu (%.3f)\n",
+	    *freq, (float)*freq/16);
+    }
+    return(1);
+}
+
 int tv_set_freq(tvi_handle_t *tvh, unsigned long freq)
 {
     if (tvh->functions->control(tvh->priv, TVI_CONTROL_IS_TUNER, 0) == TVI_CONTROL_TRUE)