From bff4b3ee5eda10ba77f968015e9bcc7585a793e9 Mon Sep 17 00:00:00 2001 From: gabucino Date: Mon, 4 Aug 2003 09:13:10 +0000 Subject: I'd like to change tv tuner frequency in the slave mode. So this patch helps me. Patch by Kir Kostuchenko git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@10522 b3059339-0415-0410-9bf9-f77b7e298cf2 --- libmpdemux/tv.c | 56 +++++++++++++++++++++++++++++++++++--------------------- libmpdemux/tv.h | 5 +++++ 2 files changed, 40 insertions(+), 21 deletions(-) (limited to 'libmpdemux') diff --git a/libmpdemux/tv.c b/libmpdemux/tv.c index 3268623436..f212252581 100644 --- a/libmpdemux/tv.c +++ b/libmpdemux/tv.c @@ -118,9 +118,27 @@ int demux_tv_fill_buffer(demuxer_t *demux, demux_stream_t *ds) return 1; } - /* forward declarations */ -int tv_set_freq(tvi_handle_t *tvh, unsigned long freq); -int tv_get_freq(tvi_handle_t *tvh, unsigned long *freq); +static int norm_from_string(char* norm) +{ + if (!strcasecmp(norm, "pal")) + return TV_NORM_PAL; + else if (!strcasecmp(norm, "ntsc")) + return TV_NORM_NTSC; + else if (!strcasecmp(norm, "secam")) + return TV_NORM_SECAM; + else if (!strcasecmp(norm, "palnc")) + return TV_NORM_PALNC; + else if (!strcasecmp(norm, "palm")) + return TV_NORM_PALM; + else if (!strcasecmp(norm, "paln")) + return TV_NORM_PALN; + else if (!strcasecmp(norm, "ntscjp")) + return TV_NORM_NTSCJP; + else { + mp_msg(MSGT_TV, MSGL_V, "tv.c : norm_from_string(%s): Bogus norm parameter, setting PAL.\n", norm); + return TV_NORM_PAL; + } +} static int open_tv(tvi_handle_t *tvh) { @@ -162,24 +180,7 @@ static int open_tv(tvi_handle_t *tvh) funcs->control(tvh->priv, TVI_CONTROL_SPC_SET_INPUT, &tv_param_input); /* select video norm */ - if (!strcasecmp(tv_param_norm, "pal")) - tvh->norm = TV_NORM_PAL; - else if (!strcasecmp(tv_param_norm, "ntsc")) - tvh->norm = TV_NORM_NTSC; - else if (!strcasecmp(tv_param_norm, "secam")) - tvh->norm = TV_NORM_SECAM; - else if (!strcasecmp(tv_param_norm, "palnc")) - tvh->norm = TV_NORM_PALNC; - else if (!strcasecmp(tv_param_norm, "palm")) - tvh->norm = TV_NORM_PALM; - else if (!strcasecmp(tv_param_norm, "paln")) - tvh->norm = TV_NORM_PALN; - else if (!strcasecmp(tv_param_norm, "ntscjp")) - tvh->norm = TV_NORM_NTSCJP; - else { - mp_msg(MSGT_TV, MSGL_V, "Bogus norm parameter, setting PAL.\n"); - tvh->norm = TV_NORM_PAL; - } + tvh->norm = norm_from_string(tv_param_norm); mp_msg(MSGT_TV, MSGL_V, "Selected norm: %s\n", tv_param_norm); if (funcs->control(tvh->priv, TVI_CONTROL_TUN_SET_NORM, &tvh->norm) != TVI_CONTROL_TRUE) { @@ -804,4 +805,17 @@ int tv_step_chanlist(tvi_handle_t *tvh) { return(1); } + +int tv_set_norm(tvi_handle_t *tvh, char* norm) +{ + tvh->norm = norm_from_string(norm); + + mp_msg(MSGT_TV, MSGL_V, "Selected norm: %s\n", tv_param_norm); + if (tvh->functions->control(tvh->priv, TVI_CONTROL_TUN_SET_NORM, &tvh->norm) != TVI_CONTROL_TRUE) { + mp_msg(MSGT_TV, MSGL_ERR, "Error: cannot set norm!\n"); + return 0; + } + return(1); +} + #endif /* USE_TV */ diff --git a/libmpdemux/tv.h b/libmpdemux/tv.h index 18ef4c52e6..fcacf3adb3 100644 --- a/libmpdemux/tv.h +++ b/libmpdemux/tv.h @@ -177,6 +177,11 @@ int tv_set_channel(tvi_handle_t *tvh, char *channel); int tv_step_norm(tvi_handle_t *tvh); int tv_step_chanlist(tvi_handle_t *tvh); +int tv_set_freq(tvi_handle_t *tvh, unsigned long freq); +int tv_get_freq(tvi_handle_t *tvh, unsigned long *freq); + +int tv_set_norm(tvi_handle_t *tvh, char* norm); + #define TV_NORM_PAL 1 #define TV_NORM_NTSC 2 #define TV_NORM_SECAM 3 -- cgit v1.2.3