diff options
author | nicodvb <nicodvb@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2006-11-18 14:33:04 +0000 |
---|---|---|
committer | nicodvb <nicodvb@b3059339-0415-0410-9bf9-f77b7e298cf2> | 2006-11-18 14:33:04 +0000 |
commit | b96ae083af88749d1ec30ba27176278bad173dcf (patch) | |
tree | 220df1568babf99c28b76e0943f6b79dce2a2898 /mplayer.c | |
parent | bdc75c29ae1380b86783b0c7f82a4ade472fff39 (diff) | |
download | mpv-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.c | 24 |
1 files changed, 24 insertions, 0 deletions
@@ -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, |