From 7be543309c85dda52b39e44aea7e0830a1e516cb Mon Sep 17 00:00:00 2001 From: Krzysztof Krakowiak Date: Thu, 16 Dec 2010 12:38:24 +0000 Subject: [PATCH] - added patch to alsaseq server interace that stops in loop polling(saves power/battery) even when idle(constant 99.9 wakeups per second), not its less than 0.1(invisible in powertop) when idle, and goes up to 32 wakeups when playing JazzJackrabbit midis using aplaymidi. Changed files: TiMidity++-stop_polling.patch -> 1.1 TiMidity++.spec -> 1.90 --- TiMidity++-stop_polling.patch | 34 ++++++++++++++++++++++++++++++++++ TiMidity++.spec | 4 +++- 2 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 TiMidity++-stop_polling.patch diff --git a/TiMidity++-stop_polling.patch b/TiMidity++-stop_polling.patch new file mode 100644 index 0000000..35c2b66 --- /dev/null +++ b/TiMidity++-stop_polling.patch @@ -0,0 +1,34 @@ +--- TiMidity++-2.13.2/interface/alsaseq_c.c.orig 2010-12-16 13:26:54.000000000 +0100 ++++ TiMidity++-2.13.2/interface/alsaseq_c.c 2010-12-16 14:15:24.486618509 +0100 +@@ -505,6 +505,8 @@ + + static void doit(struct seq_context *ctxp) + { ++ fd_set rfds; ++ struct timeval timeout; + for (;;) { + while (snd_seq_event_input_pending(ctxp->handle, 1)) { + if (do_sequencer(ctxp)) +@@ -532,15 +534,17 @@ + play_event(&ev); + aq_fill_nonblocking(); + } +- if (! ctxp->active || ! IS_STREAM_TRACE) { +- fd_set rfds; +- struct timeval timeout; +- FD_ZERO(&rfds); +- FD_SET(ctxp->fd, &rfds); ++ ++ FD_ZERO(&rfds); ++ FD_SET(ctxp->fd, &rfds); ++ if (ctxp->active) { + timeout.tv_sec = 0; + timeout.tv_usec = 10000; /* 10ms */ + if (select(ctxp->fd + 1, &rfds, NULL, NULL, &timeout) < 0) + goto __done; ++ } else { ++ if (select(ctxp->fd + 1, &rfds, NULL, NULL, NULL) < 0) ++ goto __done; + } + } + diff --git a/TiMidity++.spec b/TiMidity++.spec index 3cce589..b0c9412 100644 --- a/TiMidity++.spec +++ b/TiMidity++.spec @@ -15,7 +15,7 @@ Summary(ru.UTF-8): Проигрыватель MIDI файлов и конвер Summary(uk.UTF-8): Програвач MIDI-файлів та конвертор їх в WAV формат Name: TiMidity++ Version: 2.13.2 -Release: 5 +Release: 6 License: GPL Group: Applications/Sound Source0: http://dl.sourceforge.net/timidity/%{name}-%{version}.tar.bz2 @@ -32,6 +32,7 @@ Source6: timidity.sysconfig Patch0: %{name}-detach.patch Patch1: %{name}-gcc4.patch Patch2: %{name}-configure.patch +Patch3: %{name}-stop_polling.patch URL: http://timidity.sourceforge.net/ %{?with_alsa:BuildRequires: alsa-lib-devel} %{?with_arts:BuildRequires: arts-devel} @@ -233,6 +234,7 @@ jako silnik syntezatora MIDI w architekturze ALSA. %patch0 -p1 %patch1 -p1 %patch2 -p0 +%patch3 -p1 for f in doc/ja_JP.eucJP/README*; do mv -f $f ${f}.ja -- 2.44.0