--- command.c.orig 2007-10-07 14:49:33.000000000 -0500 +++ command.c 2008-06-09 02:16:05.000000000 -0500 @@ -398,6 +398,45 @@ return M_PROPERTY_NOT_IMPLEMENTED; } +/// Pause (RW) +static int mp_property_pause(m_option_t * prop, int action, void *arg, + MPContext * mpctx) +{ + switch (action) { + case M_PROPERTY_STEP_UP: + case M_PROPERTY_STEP_DOWN: + mpctx->was_paused = !mpctx->was_paused; + return M_PROPERTY_OK; + case M_PROPERTY_PRINT: + if (!arg) + return M_PROPERTY_ERROR; + if (mpctx->was_paused) { + *(char **) arg = strdup(MSGTR_Enabled); + return M_PROPERTY_OK; + } + else { + *(char **) arg = strdup(MSGTR_Disabled); + return M_PROPERTY_OK; + } + case M_PROPERTY_SET: + if (!arg) + return M_PROPERTY_ERROR; + else { + if (mpctx->was_paused) { + mpctx->was_paused = 0; + } + else { + pause_loop(); + mpctx->was_paused = 1; + } + return M_PROPERTY_OK; + } + default: + return m_property_flag(prop, action, arg, &mpctx->was_paused); + + } +} + ///@} @@ -1630,6 +1669,8 @@ M_OPT_MIN, 0, 0, NULL }, { "metadata", mp_property_metadata, CONF_TYPE_STRING_LIST, 0, 0, 0, NULL }, + { "pause", mp_property_pause, CONF_TYPE_FLAG, + M_OPT_RANGE, 0, 1, NULL }, // Audio { "volume", mp_property_volume, CONF_TYPE_FLOAT,