summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2014-06-12 00:34:20 +0200
committerwm4 <wm4@nowhere>2014-06-12 00:55:14 +0200
commit8ad8dedca8189f7cff44b93f379a1520df3e05f9 (patch)
tree90512a6e17d6c00015aa58ed77e95250aa7b040d
parent66f67835c3233fb7498bf101c739927f1d326724 (diff)
downloadmpv-8ad8dedca8189f7cff44b93f379a1520df3e05f9.tar.bz2
mpv-8ad8dedca8189f7cff44b93f379a1520df3e05f9.tar.xz
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).
-rw-r--r--options/options.c19
-rw-r--r--options/options.h2
-rw-r--r--osdep/priority.c64
-rw-r--r--osdep/priority.h30
-rw-r--r--player/main.c4
-rw-r--r--wscript_build.py1
6 files changed, 17 insertions, 103 deletions
diff --git a/options/options.c b/options/options.c
index 4ecd3c6069..63f4653317 100644
--- a/options/options.c
+++ b/options/options.c
@@ -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,
diff --git a/options/options.h b/options/options.h
index c89c6cfb19..5368c2c1e1 100644
--- a/options/options.h
+++ b/options/options.h
@@ -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;
diff --git a/osdep/priority.c b/osdep/priority.c
deleted file mode 100644
index 3fe1ee415e..0000000000
--- a/osdep/priority.c
+++ /dev/null
@@ -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);
- }
-}
diff --git a/osdep/priority.h b/osdep/priority.h
deleted file mode 100644
index 1a74f95665..0000000000
--- a/osdep/priority.h
+++ /dev/null
@@ -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 */
diff --git a/player/main.c b/player/main.c
index 3ceb172480..b7e683ad05 100644
--- a/player/main.c
+++ b/player/main.c
@@ -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)
diff --git a/wscript_build.py b/wscript_build.py
index 6f574ced6e..d2d514419b 100644
--- a/wscript_build.py
+++ b/wscript_build.py
@@ -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" ),