1
0
mirror of https://github.com/mpv-player/mpv synced 2025-03-11 08:37:59 +00:00

win32: implement --priority differently

Does anyone actually use this?

For now, update it, because it's the only case left where an option
points to a global variable (and not a struct offset).
This commit is contained in:
wm4 2014-06-12 00:34:20 +02:00
parent 66f67835c3
commit 8ad8dedca8
6 changed files with 17 additions and 103 deletions

View File

@ -27,8 +27,13 @@
#include <sys/types.h>
#include <limits.h>
#include "options.h"
#include "config.h"
#if HAVE_PRIORITY
#include <windows.h>
#endif
#include "options.h"
#include "m_config.h"
#include "m_option.h"
#include "common/common.h"
@ -41,7 +46,6 @@
#include "audio/decode/dec_audio.h"
#include "player/core.h"
#include "player/command.h"
#include "osdep/priority.h"
extern const char mp_help_text[];
@ -67,6 +71,7 @@ extern const struct m_sub_options vd_lavc_conf;
extern const struct m_sub_options ad_lavc_conf;
extern const struct m_sub_options input_config;
extern const struct m_sub_options encode_config;
extern const struct m_sub_options image_writer_conf;
extern const struct m_obj_list vf_obj_list;
extern const struct m_obj_list af_obj_list;
@ -75,15 +80,12 @@ extern const struct m_obj_list ao_obj_list;
#define OPT_BASE_STRUCT struct MPOpts
extern const struct m_sub_options image_writer_conf;
static const m_option_t screenshot_conf[] = {
OPT_SUBSTRUCT("", screenshot_image_opts, image_writer_conf, 0),
OPT_STRING("template", screenshot_template, 0),
{0},
};
const m_option_t mp_opts[] = {
// handled in command line pre-parser (parse_commandline.c)
{"v", NULL, CONF_TYPE_STORE, CONF_GLOBAL | CONF_NOCFG, 0, 0, NULL},
@ -114,7 +116,12 @@ const m_option_t mp_opts[] = {
OPT_FLAG("msg-module", msg_module, CONF_GLOBAL),
OPT_FLAG("msg-time", msg_time, CONF_GLOBAL),
#if HAVE_PRIORITY
{"priority", &proc_priority, CONF_TYPE_STRING, 0, 0, 0, NULL},
OPT_CHOICE("priority", w32_priority, 0,
({"no", 0},
{"abovenormal", ABOVE_NORMAL_PRIORITY_CLASS},
{"normal", NORMAL_PRIORITY_CLASS},
{"belownormal", BELOW_NORMAL_PRIORITY_CLASS},
{"idle", IDLE_PRIORITY_CLASS})),
#endif
OPT_FLAG("config", load_config, CONF_GLOBAL | CONF_NOCFG | CONF_PRE_PARSE),
OPT_STRING("config-dir", force_configdir,

View File

@ -232,6 +232,8 @@ typedef struct MPOpts {
int hwdec_api;
char *hwdec_codecs;
int w32_priority;
int network_cookies_enabled;
char *network_cookies_file;
char *network_useragent;

View File

@ -1,64 +0,0 @@
/*
* implementation of '-priority' for OS/2 and Win32
*
* Copyright (c) 2009 by KO Myung-Hun (komh@chollian.net)
*
* This file is part of MPlayer.
*
* MPlayer is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* MPlayer is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with MPlayer; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
#if defined(__MINGW32__) || defined(__CYGWIN__)
#include <windows.h>
#endif
#include <string.h>
#include "common/msg.h"
#include "priority.h"
char *proc_priority = NULL;
void set_priority(void)
{
struct {
char* name;
int prio;
} priority_presets_defs[] = {
{ "realtime", REALTIME_PRIORITY_CLASS},
{ "high", HIGH_PRIORITY_CLASS},
#ifdef ABOVE_NORMAL_PRIORITY_CLASS
{ "abovenormal", ABOVE_NORMAL_PRIORITY_CLASS},
#endif
{ "normal", NORMAL_PRIORITY_CLASS},
#ifdef BELOW_NORMAL_PRIORITY_CLASS
{ "belownormal", BELOW_NORMAL_PRIORITY_CLASS},
#endif
{ "idle", IDLE_PRIORITY_CLASS},
{ NULL, NORMAL_PRIORITY_CLASS} /* default */
};
if (proc_priority) {
int i;
for (i = 0; priority_presets_defs[i].name; i++) {
if (strcasecmp(priority_presets_defs[i].name, proc_priority) == 0)
break;
}
SetPriorityClass(GetCurrentProcess(), priority_presets_defs[i].prio);
}
}

View File

@ -1,30 +0,0 @@
/*
* header for implementation of '-priority'
*
* Copyright (c) 2009 by KO Myung-Hun (komh@chollian.net)
*
* This file is part of MPlayer.
*
* MPlayer is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* MPlayer is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License along
* with MPlayer; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
#ifndef MPLAYER_PRIORITY_H
#define MPLAYER_PRIORITY_H
extern char *proc_priority;
void set_priority(void);
#endif /* MPLAYER_PRIORITY_H */

View File

@ -30,7 +30,6 @@
#include "misc/dispatch.h"
#include "osdep/io.h"
#include "osdep/priority.h"
#include "osdep/terminal.h"
#include "osdep/timer.h"
@ -521,7 +520,8 @@ int mpv_main(int argc, char *argv[])
}
#if HAVE_PRIORITY
set_priority();
if (opts->w32_priority > 0)
SetPriorityClass(GetCurrentProcess(), opts->w32_priority);
#endif
if (mp_initialize(mpctx) < 0)

View File

@ -383,7 +383,6 @@ def build(ctx):
( "osdep/path-win.c", "os-win32" ),
( "osdep/path-win.c", "os-cygwin" ),
( "osdep/glob-win.c", "glob-win32-replacement" ),
( "osdep/priority.c", "priority" ),
( "osdep/w32_keyboard.c", "os-win32" ),
( "osdep/w32_keyboard.c", "os-cygwin" ),
( "osdep/mpv.rc", "win32-executable" ),