summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2015-03-24 15:53:36 +0100
committerwm4 <wm4@nowhere>2015-03-24 16:04:44 +0100
commit1e659a9f0f3a3836912c66ab75b5af38e632ef12 (patch)
tree9b2774cde48b1b89b27df323fcf4c1c1ea6ea327
parentd5318e5e095f3ef831b5251b554ce790da3c40c7 (diff)
downloadmpv-1e659a9f0f3a3836912c66ab75b5af38e632ef12.tar.bz2
mpv-1e659a9f0f3a3836912c66ab75b5af38e632ef12.tar.xz
input: remove classic LIRC support
It's much easier to configure remotes as X11 input devices.
-rw-r--r--DOCS/man/mpv.rst6
-rw-r--r--DOCS/man/options.rst9
-rw-r--r--DOCS/mplayer-changes.rst4
-rw-r--r--input/input.c13
-rw-r--r--input/input.h1
-rw-r--r--input/lirc.c167
-rwxr-xr-xold-configure3
-rw-r--r--old-makefile1
-rw-r--r--options/options.c2
-rw-r--r--wscript4
-rw-r--r--wscript_build.py1
11 files changed, 8 insertions, 203 deletions
diff --git a/DOCS/man/mpv.rst b/DOCS/man/mpv.rst
index 10721f76a2..df25af40c7 100644
--- a/DOCS/man/mpv.rst
+++ b/DOCS/man/mpv.rst
@@ -32,8 +32,10 @@ INTERACTIVE CONTROL
===================
mpv has a fully configurable, command-driven control layer which allows you
-to control mpv using keyboard, mouse, joystick or remote control (with
-LIRC). See the ``--input-`` options for ways to customize it.
+to control mpv using keyboard, mouse, joystick or remote control (there is no
+LIRC support - configure remotes as input devices instead).
+
+See the ``--input-`` options for ways to customize it.
Keyboard Control
----------------
diff --git a/DOCS/man/options.rst b/DOCS/man/options.rst
index 938c5e143d..458ec87fca 100644
--- a/DOCS/man/options.rst
+++ b/DOCS/man/options.rst
@@ -2364,13 +2364,6 @@ Input
``--input-js-dev``
Specifies the joystick device to use (default: ``/dev/input/js0``).
-``--input-lirc``, ``--no-input-lirc``
- Enable/disable LIRC support. Enabled by default.
-
-``--input-lirc-conf=<filename>``
- (LIRC only)
- Specifies a configuration file for LIRC (default: ``~/.lircrc``).
-
``--input-media-keys=<yes|no>``
(OS X only)
Enable/disable media keys support. Enabled by default (except for libmpv).
@@ -2951,7 +2944,7 @@ TV
Use _ for spaces in names (or play with quoting ;-) ). The channel
names will then be written using OSD, and the slave commands
``tv_step_channel``, ``tv_set_channel`` and ``tv_last_channel``
- will be usable for a remote control (see LIRC). Not compatible with
+ will be usable for a remote control. Not compatible with
the ``frequency`` parameter.
.. note::
diff --git a/DOCS/mplayer-changes.rst b/DOCS/mplayer-changes.rst
index a4f3467b53..97892a4232 100644
--- a/DOCS/mplayer-changes.rst
+++ b/DOCS/mplayer-changes.rst
@@ -46,6 +46,9 @@ Input
* Allow customizing whether a key binding for seeking shows the video time, the
OSD bar, or nothing (see the `Input Command Prefixes`_ section).
* Support mapping multiple commands to one key.
+* Classic LIRC support was removed. Install remotes as input devices instead.
+ This way they will send X11 key events to the mpv window, which can be bound
+ using the normal ``input.conf``.
Audio
~~~~~
@@ -227,7 +230,6 @@ Command Line Switches
``-idx`` ``--index``
``-lavdopts ...`` ``--vd-lavc-...``
``-lavfdopts`` ``--demuxer-lavf-...``
- ``-lircconf`` ``--input-lirc-conf``
``-loop 0`` ``--loop=inf``
``-mixer-channel`` AO suboptions (``alsa``, ``oss``)
``-mixer`` AO suboptions (``alsa``, ``oss``)
diff --git a/input/input.c b/input/input.c
index 018a76fd43..b6719fc297 100644
--- a/input/input.c
+++ b/input/input.c
@@ -165,9 +165,6 @@ struct input_opts {
int ar_rate;
char *js_dev;
int use_joystick;
- int use_lirc;
- char *lirc_configfile;
- int use_lircc;
int use_alt_gr;
int use_appleremote;
int use_media_keys;
@@ -190,15 +187,11 @@ const struct m_sub_options input_config = {
OPT_FLAG("test", test, CONF_GLOBAL),
OPT_INTRANGE("doubleclick-time", doubleclick_time, 0, 0, 1000),
OPT_FLAG("joystick", use_joystick, CONF_GLOBAL),
- OPT_FLAG("lirc", use_lirc, CONF_GLOBAL),
OPT_FLAG("right-alt-gr", use_alt_gr, CONF_GLOBAL),
OPT_INTRANGE("key-fifo-size", key_fifo_size, CONF_GLOBAL, 2, 65000),
OPT_FLAG("cursor", enable_mouse_movements, CONF_GLOBAL),
OPT_FLAG("vo-keyboard", vo_key_input, CONF_GLOBAL),
OPT_FLAG("x11-keyboard", vo_key_input, CONF_GLOBAL), // old alias
-#if HAVE_LIRC
- OPT_STRING("lirc-conf", lirc_configfile, CONF_GLOBAL),
-#endif
#if HAVE_COCOA
OPT_FLAG("appleremote", use_appleremote, CONF_GLOBAL),
OPT_FLAG("media-keys", use_media_keys, CONF_GLOBAL),
@@ -212,7 +205,6 @@ const struct m_sub_options input_config = {
.doubleclick_time = 300,
.ar_delay = 200,
.ar_rate = 40,
- .use_lirc = 1,
.use_alt_gr = 1,
.enable_mouse_movements = 1,
#if HAVE_COCOA
@@ -1257,11 +1249,6 @@ void mp_input_load(struct input_ctx *ictx)
mp_input_joystick_add(ictx, input_conf->js_dev);
#endif
-#if HAVE_LIRC
- if (input_conf->use_lirc)
- mp_input_lirc_add(ictx, input_conf->lirc_configfile);
-#endif
-
if (input_conf->use_alt_gr) {
ictx->using_alt_gr = true;
}
diff --git a/input/input.h b/input/input.h
index 33d458ad5f..b684903ef5 100644
--- a/input/input.h
+++ b/input/input.h
@@ -258,7 +258,6 @@ void mp_input_set_repeat_info(struct input_ctx *ictx, int rate, int delay);
void mp_input_pipe_add(struct input_ctx *ictx, const char *filename);
void mp_input_joystick_add(struct input_ctx *ictx, char *dev);
-void mp_input_lirc_add(struct input_ctx *ictx, char *lirc_configfile);
struct mp_ipc_ctx;
struct mp_client_api;
diff --git a/input/lirc.c b/input/lirc.c
deleted file mode 100644
index db8d4f8e79..0000000000
--- a/input/lirc.c
+++ /dev/null
@@ -1,167 +0,0 @@
-/*
- * 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.
- */
-
-#include <lirc/lirc_client.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <stdio.h>
-#include <string.h>
-#include <unistd.h>
-#include <stdlib.h>
-#include <poll.h>
-
-#include "common/common.h"
-#include "common/msg.h"
-#include "input.h"
-
-struct ctx {
- struct mp_log *log;
- struct lirc_config *lirc_config;
- char* cmd_buf;
- int fd;
-};
-
-static struct ctx *mp_input_lirc_init(struct input_ctx *ictx, struct mp_log *log,
- char *lirc_configfile)
-{
- int lirc_sock;
- int mode;
-
- mp_verbose(log,"Setting up LIRC support...\n");
- if((lirc_sock=lirc_init("mpv",0))==-1){
- mp_verbose(log,"Failed to open LIRC support. You will not be able to use your remote control.\n");
- return NULL;
- }
-
- mode = fcntl(lirc_sock, F_GETFL);
- if (mode < 0 || fcntl(lirc_sock, F_SETFL, mode | O_NONBLOCK) < 0) {
- mp_err(log, "setting non-blocking mode failed: %s\n", mp_strerror(errno));
- lirc_deinit();
- return NULL;
- }
-
- struct lirc_config *lirc_config = NULL;
- if(lirc_readconfig( lirc_configfile,&lirc_config,NULL )!=0 ){
- mp_err(log, "Failed to read LIRC config file %s.\n",
- lirc_configfile == NULL ? "~/.lircrc" : lirc_configfile);
- lirc_deinit();
- return NULL;
- }
-
- struct ctx *ctx = talloc_ptrtype(NULL, ctx);
- *ctx = (struct ctx){
- .log = log,
- .lirc_config = lirc_config,
- .fd = lirc_sock,
- };
- return ctx;
-}
-
-static int mp_input_lirc_read(void *pctx,int fd,char* dest, int s) {
- int r,cl = 0;
- char *code = NULL,*c = NULL;
- struct ctx *ctx = pctx;
-
- // We have something in the buffer return it
- if(ctx->cmd_buf != NULL) {
- int l = strlen(ctx->cmd_buf), w = l > s ? s : l;
- memcpy(dest,ctx->cmd_buf,w);
- l -= w;
- if(l > 0)
- memmove(ctx->cmd_buf,&ctx->cmd_buf[w],l+1);
- else {
- free(ctx->cmd_buf);
- ctx->cmd_buf = NULL;
- }
- return w;
- }
-
- // Nothing in the buffer, poll the lirc fd
- if(lirc_nextcode(&code) != 0) {
- MP_ERR(ctx, "Lirc error.\n");
- return -1;
- }
-
- if(!code) return 0;
-
- // We put all cmds in a single buffer separated by \n
- while((r = lirc_code2char(ctx->lirc_config,code,&c))==0 && c!=NULL) {
- int l = strlen(c);
- if(l <= 0)
- continue;
- ctx->cmd_buf = realloc(ctx->cmd_buf,cl+l+2);
- memcpy(&ctx->cmd_buf[cl],c,l);
- cl += l+1;
- ctx->cmd_buf[cl-1] = '\n';
- ctx->cmd_buf[cl] = '\0';
- }
-
- free(code);
-
- if(r < 0)
- return -1;
- else if(ctx->cmd_buf) // return the first command in the buffer
- return mp_input_lirc_read(ctx,fd,dest,s);
- else
- return 0;
-
-}
-
-static int mp_input_lirc_close(void *pctx,int fd)
-{
- struct ctx *ctx = pctx;
- free(ctx->cmd_buf);
- lirc_freeconfig(ctx->lirc_config);
- lirc_deinit();
- close(fd);
- talloc_free(ctx);
- return 0;
-}
-
-static void read_lirc_thread(struct mp_input_src *src, void *param)
-{
- int wakeup_fd = mp_input_src_get_wakeup_fd(src);
- struct ctx *ctx = mp_input_lirc_init(src->input_ctx, src->log, param);
-
- if (!ctx)
- return;
-
- mp_input_src_init_done(src);
-
- while (1) {
- struct pollfd fds[2] = {
- { .fd = ctx->fd, .events = POLLIN },
- { .fd = wakeup_fd, .events = POLLIN },
- };
- poll(fds, 2, -1);
- if (!(fds[0].revents & POLLIN))
- break;
- char buffer[128];
- int r = mp_input_lirc_read(ctx, ctx->fd, buffer, sizeof(buffer));
- if (r < 0)
- break;
- mp_input_src_feed_cmd_text(src, buffer, r);
- }
-
- mp_input_lirc_close(ctx, ctx->fd);
-}
-
-void mp_input_lirc_add(struct input_ctx *ictx, char *lirc_configfile)
-{
- mp_input_add_thread_src(ictx, (void *)lirc_configfile, read_lirc_thread);
-}
diff --git a/old-configure b/old-configure
index fe887afc3e..be271aaa9c 100755
--- a/old-configure
+++ b/old-configure
@@ -164,7 +164,6 @@ options_state_machine() {
opt_yes_no _libguess "libguess"
opt_yes_no _termios "termios database for key codes"
opt_yes_no _iconv "iconv for encoding conversion"
- opt_yes_no _lirc "LIRC (remote control) support"
opt_yes_no _joystick "joystick support" no
opt_yes_no _vm "X video mode extensions"
opt_yes_no _dvb "DVB input"
@@ -841,8 +840,6 @@ check_trivial "VapourSynth core" $_vapoursynth_core VAPOURSYNTH_CORE
check_trivial "joystick" $_joystick JOYSTICK
-check_statement_libs "lirc" $_lirc LIRC lirc/lirc_client.h "" -llirc_client
-
check_trivial "encoding" $_encoding ENCODING
# needs dlopen on unix
diff --git a/old-makefile b/old-makefile
index 5a8b71f9f9..4eda62fa54 100644
--- a/old-makefile
+++ b/old-makefile
@@ -74,7 +74,6 @@ SOURCES-$(GL_WAYLAND) += video/out/wayland_common.c \
SOURCES-$(JACK) += audio/out/ao_jack.c
SOURCES-$(JOYSTICK) += input/joystick.c
-SOURCES-$(LIRC) += input/lirc.c
SOURCES-$(OPENAL) += audio/out/ao_openal.c
SOURCES-$(OSS_AUDIO) += audio/out/ao_oss.c
SOURCES-$(PULSE) += audio/out/ao_pulse.c
diff --git a/options/options.c b/options/options.c
index b76e6d2dde..f806643ad0 100644
--- a/options/options.c
+++ b/options/options.c
@@ -604,7 +604,6 @@ const m_option_t mp_opts[] = {
OPT_REMOVED("identify", "use TOOLS/mpv_identify.sh"),
OPT_REMOVED("lavdopts", "use --vd-lavc-..."),
OPT_REMOVED("lavfdopts", "use --demuxer-lavf-..."),
- OPT_REPLACED("lircconf", "input-lirc-conf"),
OPT_REPLACED("lua", "script"),
OPT_REPLACED("lua-opts", "script-opts"),
OPT_REMOVED("mixer-channel", "use AO suboptions (alsa, oss)"),
@@ -647,7 +646,6 @@ const m_option_t mp_opts[] = {
OPT_REMOVED("xy", "use --autofit"),
OPT_REMOVED("zoom", "Inverse available as ``--video-unscaled"),
OPT_REPLACED("media-keys", "input-media-keys"),
- OPT_REPLACED("lirc", "input-lirc"),
OPT_REPLACED("right-alt-gr", "input-right-alt-gr"),
OPT_REPLACED("autosub", "sub-auto"),
OPT_REPLACED("autosub-match", "sub-auto"),
diff --git a/wscript b/wscript
index cce891b637..c03c9d1cb3 100644
--- a/wscript
+++ b/wscript
@@ -314,10 +314,6 @@ iconv support use --disable-iconv.",
'func': check_cc(header_name='linux/joystick.h'),
'default': 'disable'
}, {
- 'name' : '--lirc',
- 'desc' : 'lirc',
- 'func': check_cc(header_name='lirc/lirc_client.h', lib='lirc_client'),
- }, {
'name': '--libbluray',
'desc': 'Bluray support',
'func': check_pkg_config('libbluray', '>= 0.3.0'),
diff --git a/wscript_build.py b/wscript_build.py
index d78bb803ac..06e0048b7c 100644
--- a/wscript_build.py
+++ b/wscript_build.py
@@ -185,7 +185,6 @@ def build(ctx):
( "input/keycodes.c" ),
( "input/pipe-win32.c", "waio" ),
( "input/joystick.c", "joystick" ),
- ( "input/lirc.c", "lirc" ),
## Misc
( "misc/bstr.c" ),