diff options
Diffstat (limited to 'mpvcore')
-rw-r--r-- | mpvcore/command.c | 16 | ||||
-rw-r--r-- | mpvcore/mplayer.c | 3 | ||||
-rw-r--r-- | mpvcore/options.c | 1 | ||||
-rw-r--r-- | mpvcore/options.h | 1 |
4 files changed, 19 insertions, 2 deletions
diff --git a/mpvcore/command.c b/mpvcore/command.c index dedac9dc10..ea71b9e082 100644 --- a/mpvcore/command.c +++ b/mpvcore/command.c @@ -804,6 +804,21 @@ static int mp_property_mute(m_option_t *prop, int action, void *arg, return M_PROPERTY_NOT_IMPLEMENTED; } +static int mp_property_volrestore(m_option_t *prop, int action, + void *arg, MPContext *mpctx) +{ + switch (action) { + case M_PROPERTY_GET: { + char *s = mixer_get_volume_restore_data(&mpctx->mixer); + *(char **)arg = s; + return s ? M_PROPERTY_OK : M_PROPERTY_UNAVAILABLE; + } + case M_PROPERTY_SET: + return M_PROPERTY_NOT_IMPLEMENTED; + } + return mp_property_generic_option(prop, action, arg, mpctx); +} + /// Audio delay (RW) static int mp_property_audio_delay(m_option_t *prop, int action, void *arg, MPContext *mpctx) @@ -1806,6 +1821,7 @@ static const m_option_t mp_properties[] = { M_OPTION_PROPERTY_CUSTOM("aid", mp_property_audio), { "balance", mp_property_balance, CONF_TYPE_FLOAT, M_OPT_RANGE, -1, 1, NULL }, + M_OPTION_PROPERTY_CUSTOM("volume-restore-data", mp_property_volrestore), // Video M_OPTION_PROPERTY_CUSTOM("fullscreen", mp_property_fullscreen), diff --git a/mpvcore/mplayer.c b/mpvcore/mplayer.c index fafb88d022..00229364e6 100644 --- a/mpvcore/mplayer.c +++ b/mpvcore/mplayer.c @@ -809,8 +809,7 @@ static const char *backup_properties[] = { "speed", "edition", "pause", - //"volume", - //"mute", + "volume-restore-data", "audio-delay", //"balance", "fullscreen", diff --git a/mpvcore/options.c b/mpvcore/options.c index a09a28856f..e3b3137aed 100644 --- a/mpvcore/options.c +++ b/mpvcore/options.c @@ -565,6 +565,7 @@ const m_option_t mp_opts[] = { ({"auto", -1}, {"no", 0}, {"yes", 1}, {"", 1})), + OPT_STRING("volume-restore-data", mixer_restore_volume_data, 0), OPT_FLAG("gapless-audio", gapless_audio, 0), // set screen dimensions (when not detectable or virtual!=visible) diff --git a/mpvcore/options.h b/mpvcore/options.h index 67074de241..d425d0789b 100644 --- a/mpvcore/options.h +++ b/mpvcore/options.h @@ -51,6 +51,7 @@ typedef struct MPOpts { int softvol; float mixer_init_volume; int mixer_init_mute; + char *mixer_restore_volume_data; int volstep; float softvol_max; int gapless_audio; |