From 550d908ba8d505b70fb64c4979de4f05f2d452c6 Mon Sep 17 00:00:00 2001 From: wm4 Date: Thu, 2 Apr 2015 00:08:38 +0200 Subject: player: add "pseudo-gui" profile This can be set to select a number of default settings that help mpv pretend that it has a GUI. I haven't decided yet whether I really want to use the profile mechanism for this. There are a number of weird details that are not so easy to handle with profiles, such as disabling pseudo-gui mode again (you can't unset profiles directly). So this might change. But for now it will do. There also should be a better way to store builtin profiles. Unfortunately, the old crappy MPlayer config file parser needs on-disk files, so just use a bunch of function calls for now. --- etc/mpv.desktop | 2 +- player/main.c | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/etc/mpv.desktop b/etc/mpv.desktop index 7bdeee3be7..07564205fd 100644 --- a/etc/mpv.desktop +++ b/etc/mpv.desktop @@ -24,7 +24,7 @@ Comment[zh-CN]=播放电影和歌曲 Comment[zh-TW]=播放電影和歌曲 Icon=mpv TryExec=mpv -Exec=mpv --no-terminal --force-window -- %U +Exec=mpv --profile=pseudo-gui -- %U Terminal=false NoDisplay=true Categories=AudioVideo;Audio;Video;Player;TV; diff --git a/player/main.c b/player/main.c index b3fb14ef10..7f0e61f9e4 100644 --- a/player/main.c +++ b/player/main.c @@ -313,6 +313,13 @@ static int cfg_include(void *ctx, char *filename, int flags) return r; } +static void add_default_profiles(struct m_config *cfg) +{ + struct m_profile *ui = m_config_add_profile(cfg, "pseudo-gui"); + m_config_set_profile_option(cfg, ui, bstr0("terminal"), bstr0("no")); + m_config_set_profile_option(cfg, ui, bstr0("force-window"), bstr0("yes")); +} + struct MPContext *mp_create(void) { mp_time_init(); @@ -346,6 +353,7 @@ struct MPContext *mp_create(void) mpctx->mconfig->includefunc_ctx = mpctx; mpctx->mconfig->use_profiles = true; mpctx->mconfig->is_toplevel = true; + add_default_profiles(mpctx->mconfig); mpctx->global->opts = mpctx->opts; -- cgit v1.2.3