summaryrefslogtreecommitdiffstats
path: root/mplayer.c
diff options
context:
space:
mode:
authornicodvb <nicodvb@b3059339-0415-0410-9bf9-f77b7e298cf2>2006-11-18 14:33:04 +0000
committernicodvb <nicodvb@b3059339-0415-0410-9bf9-f77b7e298cf2>2006-11-18 14:33:04 +0000
commitb96ae083af88749d1ec30ba27176278bad173dcf (patch)
tree220df1568babf99c28b76e0943f6b79dce2a2898 /mplayer.c
parentbdc75c29ae1380b86783b0c7f82a4ade472fff39 (diff)
downloadmpv-b96ae083af88749d1ec30ba27176278bad173dcf.tar.bz2
mpv-b96ae083af88749d1ec30ba27176278bad173dcf.tar.xz
switch_program property to switch to/set a new program
git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@21023 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'mplayer.c')
-rw-r--r--mplayer.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/mplayer.c b/mplayer.c
index 6386190e67..be1ece4629 100644
--- a/mplayer.c
+++ b/mplayer.c
@@ -1904,6 +1904,28 @@ static int mp_property_video(m_option_t* prop,int action,void* arg) {
}
}
+static int mp_property_program(m_option_t* prop,int action,void* arg) {
+ demux_program_t prog;
+
+ switch(action) {
+ case M_PROPERTY_STEP_UP:
+ case M_PROPERTY_SET:
+ if(action==M_PROPERTY_SET && arg)
+ prog.progid = *((int*)arg);
+ else
+ prog.progid = -1;
+ if(demux_control(demuxer, DEMUXER_CTRL_IDENTIFY_PROGRAM, &prog) == DEMUXER_CTRL_NOTIMPL)
+ return M_PROPERTY_ERROR;
+
+ mp_property_do("switch_audio", M_PROPERTY_SET, &prog.aid);
+ mp_property_do("switch_video", M_PROPERTY_SET, &prog.vid);
+ return M_PROPERTY_OK;
+
+ default:
+ return M_PROPERTY_NOT_IMPLEMENTED;
+ }
+}
+
///@}
/// \defgroup VideoProperties Video properties
@@ -2540,6 +2562,8 @@ static m_option_t mp_properties[] = {
0, 0, 0, NULL },
{ "switch_video", mp_property_video, CONF_TYPE_INT,
-1, -1, 0, NULL },
+ { "switch_program", mp_property_program, CONF_TYPE_INT,
+ CONF_RANGE, -1, 65535, NULL },
// Subs
{ "sub", mp_property_sub, CONF_TYPE_INT,