1
0
mirror of https://github.com/mpv-player/mpv synced 2024-12-19 13:21:13 +00:00

player: allow opts in pseudo-gui set by the user to override user's default

This should still allow user-set default options to override built-in
pseudo-gui while respecting user-set pseudo-gui options.

Pros:
- user option in default profile overrides built-in pseudo-gui's options
  Ex: screenshot-directory overrides built-in pseudo-gui's
- user can "fix" pseudo-gui if some option like "force-window=no" is set
  in default by setting "force-window=yes" in [pseudo-gui]
- `mpv --profile=pseudo-gui` will work as before

Cons:
- --show-profile=pseudo-gui won't display the built-in's options

Original idea from wm4.

Documentation edits mostly by wm4.

Signed-off-by: wm4 <wm4@nowhere>
This commit is contained in:
Ricardo Constantino 2016-09-23 23:36:17 +01:00 committed by wm4
parent dd339b200b
commit f0ab9f05f1
3 changed files with 18 additions and 8 deletions

View File

@ -737,20 +737,24 @@ Currently this happens only in the following cases:
- if started from explorer.exe on Windows (technically, if it was started on
Windows, and all of the stdout/stderr/stdin handles are unset)
- started out of the bundle on OSX
- you can add ``--profile=pseudo-gui`` to the command line, but it will behave
subtly differently (since mpv 0.22.0)
- if you manually use ``--player-operation-mode=pseudo-gui`` on the command line
This mode implicitly performs the same action as ``--profile=pseudo-gui``, but
roughly before config files are loaded and the command line is applied. The
``pseudo-gui`` profile is predefined with the following contents:
This mode applies options from the builtin profile ``builtin-pseudo-gui``, but
only if these haven't been set in the user's config file or on the command line.
Also, for compatibility with the old pseudo-gui behavior, the options in the
``pseudo-gui`` profile are applied unconditionally. In addition, the profile
makes sure to enable the pseudo-GUI mode, so that ``--profile=pseudo-gui``
works like in older mpv releases. The profiles are currently defined as follows:
::
[pseudo-gui]
[builtin-pseudo-gui]
terminal=no
force-window=yes
idle=once
screenshot-directory=~~desktop/
[pseudo-gui]
player-operation-mode=pseudo-gui
.. warning::

View File

@ -3,6 +3,9 @@
# applied at later stages during loading.
[pseudo-gui]
player-operation-mode=pseudo-gui
[builtin-pseudo-gui]
terminal=no
force-window=yes
idle=once

View File

@ -408,8 +408,11 @@ int mp_initialize(struct MPContext *mpctx, char **options)
return r == M_OPT_EXIT ? -2 : -1;
}
if (opts->operation_mode == 1)
m_config_set_profile(mpctx->mconfig, "pseudo-gui", M_SETOPT_NO_OVERWRITE);
if (opts->operation_mode == 1) {
m_config_set_profile(mpctx->mconfig, "builtin-pseudo-gui",
M_SETOPT_NO_OVERWRITE);
m_config_set_profile(mpctx->mconfig, "pseudo-gui", 0);
}
mp_get_resume_defaults(mpctx);