1 |
commit: dd997071f2419d01998a4283731fe6b25e3309fa |
2 |
Author: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org> |
3 |
AuthorDate: Sat Nov 17 21:53:23 2018 +0000 |
4 |
Commit: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org> |
5 |
CommitDate: Sat Nov 17 22:00:04 2018 +0000 |
6 |
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=dd997071 |
7 |
|
8 |
media-plugins/audacious-plugins: 3.10 version bump |
9 |
|
10 |
Bug: https://bugs.gentoo.org/640672 |
11 |
Package-Manager: Portage-2.3.51, Repoman-2.3.12 |
12 |
Signed-off-by: Andreas Sturmlechner <asturm <AT> gentoo.org> |
13 |
|
14 |
media-plugins/audacious-plugins/Manifest | 1 + |
15 |
.../audacious-plugins-3.10.ebuild | 154 +++++++++++++++++++++ |
16 |
.../audacious-plugins-3.10-fix-slow-search.patch | 108 +++++++++++++++ |
17 |
3 files changed, 263 insertions(+) |
18 |
|
19 |
diff --git a/media-plugins/audacious-plugins/Manifest b/media-plugins/audacious-plugins/Manifest |
20 |
index 324166a4f33..607c7195c5e 100644 |
21 |
--- a/media-plugins/audacious-plugins/Manifest |
22 |
+++ b/media-plugins/audacious-plugins/Manifest |
23 |
@@ -1,2 +1,3 @@ |
24 |
+DIST audacious-plugins-3.10.tar.bz2 1701877 BLAKE2B 4db7351af494ff5b7d2a7968524e2480f321505759f4a6532dd86f8fd87f43ab0a66e9f1fc75cfcbc8c59d35c1071048b61a8452fa6e041cd1667872f5b5699e SHA512 88dd93b5a7f6582ec42cf539d1000de0900cce683f4de85d8a17f57c7ba34545c6277882cad1505cb6682ee7b885ffcd1fe5675f7e24dc3e2a650615789d9d52 |
25 |
DIST audacious-plugins-3.9-gtk3.tar.bz2 1842950 BLAKE2B 55f373be204a9b4c9cff41d41d43c4776f680ab203643e90e5d338bec2e7f8a4c60cda9caa08e461089a475f3ec1bc237538f781718eb0d26a4365743337e977 SHA512 e2529af761bc97e589cac08689b16db657096b1bbfcc802789726ae1b472746025bec1b492de52eef755d7b50574d09b9250761bf701b1ca37f8a0e8db0f207b |
26 |
DIST audacious-plugins-3.9.tar.bz2 1843084 BLAKE2B fa3a8433a869a2df0589f59e12513adcc0da0545b53ee441db4b18be7e12334b4125bd60b48902c37041041555859ab19df814c483f7d971214077e9980148b6 SHA512 00c8c53d69995ca1fedb91c7df609cc6c65b13e1af23b98a2fbda143c02ac554cc2c42c01f1c593af252e36bfb85b6324f2daca8632d3b672c69fb4dead2e3fa |
27 |
|
28 |
diff --git a/media-plugins/audacious-plugins/audacious-plugins-3.10.ebuild b/media-plugins/audacious-plugins/audacious-plugins-3.10.ebuild |
29 |
new file mode 100644 |
30 |
index 00000000000..13310dcdcc9 |
31 |
--- /dev/null |
32 |
+++ b/media-plugins/audacious-plugins/audacious-plugins-3.10.ebuild |
33 |
@@ -0,0 +1,154 @@ |
34 |
+# Copyright 1999-2018 Gentoo Authors |
35 |
+# Distributed under the terms of the GNU General Public License v2 |
36 |
+ |
37 |
+EAPI=6 |
38 |
+ |
39 |
+MY_P="${P/_/-}" |
40 |
+ |
41 |
+DESCRIPTION="Lightweight and versatile audio player" |
42 |
+HOMEPAGE="https://audacious-media-player.org/" |
43 |
+ |
44 |
+if [[ ${PV} == *9999 ]]; then |
45 |
+ inherit autotools git-r3 |
46 |
+ EGIT_REPO_URI="https://github.com/audacious-media-player/audacious-plugins.git" |
47 |
+else |
48 |
+ SRC_URI="https://distfiles.audacious-media-player.org/${MY_P}.tar.bz2" |
49 |
+ KEYWORDS="~amd64 ~x86" |
50 |
+fi |
51 |
+ |
52 |
+LICENSE="GPL-2" |
53 |
+SLOT="0" |
54 |
+IUSE="aac +adplug alsa ampache aosd bs2b cdda cue ffmpeg flac fluidsynth hotkeys http gme jack lame libav |
55 |
+ libnotify libsamplerate lirc mms modplug mp3 nls pulseaudio scrobbler sdl sid sndfile soxr speedpitch vorbis wavpack" |
56 |
+REQUIRED_USE=" |
57 |
+ || ( alsa jack pulseaudio sdl ) |
58 |
+ ampache? ( http )" |
59 |
+ |
60 |
+# The following plugins REQUIRE a GUI build of audacious, because non-GUI |
61 |
+# builds do NOT install the libaudgui library & headers. |
62 |
+# Plugins without a configure option: |
63 |
+# alarm |
64 |
+# albumart |
65 |
+# delete-files |
66 |
+# ladspa |
67 |
+# playlist-manager |
68 |
+# search-tool |
69 |
+# skins |
70 |
+# vtx |
71 |
+# Plugins with a configure option: |
72 |
+# glspectrum |
73 |
+# gtkui |
74 |
+# hotkey |
75 |
+# notify |
76 |
+# statusicon |
77 |
+RDEPEND=" |
78 |
+ app-arch/unzip |
79 |
+ dev-libs/dbus-glib |
80 |
+ dev-libs/glib |
81 |
+ dev-libs/libxml2:2 |
82 |
+ dev-qt/qtcore:5 |
83 |
+ dev-qt/qtgui:5 |
84 |
+ dev-qt/qtmultimedia:5 |
85 |
+ dev-qt/qtwidgets:5 |
86 |
+ media-libs/adplug |
87 |
+ ~media-sound/audacious-${PV} |
88 |
+ aac? ( >=media-libs/faad2-2.7 ) |
89 |
+ alsa? ( >=media-libs/alsa-lib-1.0.16 ) |
90 |
+ ampache? ( =media-libs/ampache_browser-1* ) |
91 |
+ aosd? ( |
92 |
+ x11-libs/libXrender |
93 |
+ x11-libs/libXcomposite |
94 |
+ ) |
95 |
+ bs2b? ( media-libs/libbs2b ) |
96 |
+ cdda? ( |
97 |
+ >=media-libs/libcddb-1.2.1 |
98 |
+ dev-libs/libcdio-paranoia |
99 |
+ ) |
100 |
+ cue? ( media-libs/libcue ) |
101 |
+ ffmpeg? ( >=virtual/ffmpeg-0.7.3 ) |
102 |
+ flac? ( |
103 |
+ >=media-libs/libvorbis-1.0 |
104 |
+ >=media-libs/flac-1.2.1-r1 |
105 |
+ ) |
106 |
+ fluidsynth? ( media-sound/fluidsynth ) |
107 |
+ http? ( >=net-libs/neon-0.26.4 ) |
108 |
+ jack? ( |
109 |
+ >=media-libs/bio2jack-0.4 |
110 |
+ virtual/jack |
111 |
+ ) |
112 |
+ lame? ( media-sound/lame ) |
113 |
+ libsamplerate? ( media-libs/libsamplerate:= ) |
114 |
+ lirc? ( app-misc/lirc ) |
115 |
+ mms? ( >=media-libs/libmms-0.3 ) |
116 |
+ modplug? ( media-libs/libmodplug ) |
117 |
+ mp3? ( >=media-sound/mpg123-1.12.1 ) |
118 |
+ pulseaudio? ( >=media-sound/pulseaudio-0.9.3 ) |
119 |
+ scrobbler? ( net-misc/curl ) |
120 |
+ sdl? ( media-libs/libsdl2[sound] ) |
121 |
+ sid? ( >=media-libs/libsidplayfp-1.0.0 ) |
122 |
+ sndfile? ( >=media-libs/libsndfile-1.0.17-r1 ) |
123 |
+ soxr? ( media-libs/soxr ) |
124 |
+ speedpitch? ( media-libs/libsamplerate:= ) |
125 |
+ vorbis? ( |
126 |
+ >=media-libs/libvorbis-1.2.0 |
127 |
+ >=media-libs/libogg-1.1.3 |
128 |
+ ) |
129 |
+ wavpack? ( >=media-sound/wavpack-4.50.1-r1 )" |
130 |
+ |
131 |
+DEPEND="${RDEPEND} |
132 |
+ dev-util/gdbus-codegen |
133 |
+ virtual/pkgconfig |
134 |
+ nls? ( dev-util/intltool )" |
135 |
+ |
136 |
+PATCHES=( "${FILESDIR}/${P}-fix-slow-search.patch" ) |
137 |
+ |
138 |
+S="${WORKDIR}/${MY_P}" |
139 |
+ |
140 |
+src_configure() { |
141 |
+ if ! use mp3 ; then |
142 |
+ ewarn "MP3 support is optional, you may want to enable the mp3 USE-flag" |
143 |
+ fi |
144 |
+ |
145 |
+ econf \ |
146 |
+ --enable-mpris2 \ |
147 |
+ --enable-qt \ |
148 |
+ --enable-qtaudio \ |
149 |
+ --enable-songchange \ |
150 |
+ --disable-coreaudio \ |
151 |
+ --disable-gtk \ |
152 |
+ --disable-notify \ |
153 |
+ --disable-oss4 \ |
154 |
+ --disable-qtglspectrum \ |
155 |
+ --disable-sndio \ |
156 |
+ $(use_enable aac) \ |
157 |
+ $(use_enable alsa) \ |
158 |
+ $(use_enable ampache) \ |
159 |
+ $(use_enable aosd) \ |
160 |
+ $(use_enable bs2b) \ |
161 |
+ $(use_enable cdda cdaudio) \ |
162 |
+ $(use_enable cue) \ |
163 |
+ $(use_enable flac) \ |
164 |
+ $(use_enable fluidsynth amidiplug) \ |
165 |
+ $(use_enable flac filewriter) \ |
166 |
+ $(use_enable gme console) \ |
167 |
+ $(use_enable hotkeys hotkey) \ |
168 |
+ $(use_enable http neon) \ |
169 |
+ $(use_enable jack) \ |
170 |
+ $(use_enable lame filewriter_mp3) \ |
171 |
+ $(use_enable libsamplerate resample) \ |
172 |
+ $(use_enable lirc) \ |
173 |
+ $(use_enable mms) \ |
174 |
+ $(use_enable modplug) \ |
175 |
+ $(use_enable mp3 mpg123) \ |
176 |
+ $(use_enable nls) \ |
177 |
+ $(use_enable pulseaudio pulse) \ |
178 |
+ $(use_enable scrobbler scrobbler2) \ |
179 |
+ $(use_enable sdl sdlout) \ |
180 |
+ $(use_enable sid) \ |
181 |
+ $(use_enable sndfile) \ |
182 |
+ $(use_enable soxr) \ |
183 |
+ $(use_enable speedpitch) \ |
184 |
+ $(use_enable vorbis) \ |
185 |
+ $(use_enable wavpack) \ |
186 |
+ $(use_with ffmpeg ffmpeg $(usex libav libav ffmpeg)) |
187 |
+} |
188 |
|
189 |
diff --git a/media-plugins/audacious-plugins/files/audacious-plugins-3.10-fix-slow-search.patch b/media-plugins/audacious-plugins/files/audacious-plugins-3.10-fix-slow-search.patch |
190 |
new file mode 100644 |
191 |
index 00000000000..3012d313873 |
192 |
--- /dev/null |
193 |
+++ b/media-plugins/audacious-plugins/files/audacious-plugins-3.10-fix-slow-search.patch |
194 |
@@ -0,0 +1,108 @@ |
195 |
+From 9d162207ef01c5972e4bb718d390c494f0ad0241 Mon Sep 17 00:00:00 2001 |
196 |
+From: John Lindgren <john@×××××××××.net> |
197 |
+Date: Tue, 4 Sep 2018 23:39:00 -0400 |
198 |
+Subject: [PATCH] qtui: Fix slow searching on large playlists. Closes: #819. |
199 |
+ |
200 |
+--- |
201 |
+ src/qtui/playlist-qt.cc | 58 +++++++++++++++++++++++++++++------------ |
202 |
+ src/qtui/playlist-qt.h | 1 + |
203 |
+ 2 files changed, 42 insertions(+), 17 deletions(-) |
204 |
+ |
205 |
+diff --git a/src/qtui/playlist-qt.cc b/src/qtui/playlist-qt.cc |
206 |
+index 28c480ead..750d87c37 100644 |
207 |
+--- a/src/qtui/playlist-qt.cc |
208 |
++++ b/src/qtui/playlist-qt.cc |
209 |
+@@ -89,6 +89,31 @@ int PlaylistWidget::indexToRow (const QModelIndex & index) |
210 |
+ return proxyModel->mapToSource (index).row (); |
211 |
+ } |
212 |
+ |
213 |
++QModelIndex PlaylistWidget::visibleIndexNear (int row) |
214 |
++{ |
215 |
++ QModelIndex index = rowToIndex (row); |
216 |
++ if (index.isValid ()) |
217 |
++ return index; |
218 |
++ |
219 |
++ int n_entries = m_playlist.n_entries (); |
220 |
++ |
221 |
++ for (int r = row + 1; r < n_entries; r ++) |
222 |
++ { |
223 |
++ index = rowToIndex (r); |
224 |
++ if (index.isValid ()) |
225 |
++ return index; |
226 |
++ } |
227 |
++ |
228 |
++ for (int r = row - 1; r >= 0; r --) |
229 |
++ { |
230 |
++ index = rowToIndex (r); |
231 |
++ if (index.isValid ()) |
232 |
++ return index; |
233 |
++ } |
234 |
++ |
235 |
++ return index; |
236 |
++} |
237 |
++ |
238 |
+ void PlaylistWidget::contextMenuEvent (QContextMenuEvent * event) |
239 |
+ { |
240 |
+ if (contextMenu) |
241 |
+@@ -379,33 +404,32 @@ void PlaylistWidget::playCurrentIndex () |
242 |
+ |
243 |
+ void PlaylistWidget::setFilter (const char * text) |
244 |
+ { |
245 |
++ // Save the current focus before filtering |
246 |
++ int focus = m_playlist.get_focus (); |
247 |
++ |
248 |
++ // Empty the model before updating the filter. This prevents Qt from |
249 |
++ // performing a series of "rows added" or "rows deleted" updates, which can |
250 |
++ // be very slow (worst case O(N^2) complexity) on a large playlist. |
251 |
++ model->entriesRemoved (0, model->rowCount ()); |
252 |
++ |
253 |
++ // Update the filter |
254 |
+ proxyModel->setFilter (text); |
255 |
+ |
256 |
+- int focus = m_playlist.get_focus (); |
257 |
+- QModelIndex index; |
258 |
++ // Repopulate the model |
259 |
++ model->entriesAdded (0, m_playlist.n_entries ()); |
260 |
+ |
261 |
+- // If there was a valid focus before filtering, Qt updates it for us via |
262 |
+- // currentChanged(). If not, we will set focus on the first visible row. |
263 |
++ // If the previously focused row is no longer visible with the new filter, |
264 |
++ // try to find a nearby one that is, and focus it. |
265 |
++ auto index = visibleIndexNear (focus); |
266 |
+ |
267 |
+- if (focus >= 0) |
268 |
+- index = rowToIndex (focus); |
269 |
+- else |
270 |
++ if (index.isValid ()) |
271 |
+ { |
272 |
+- if (! proxyModel->rowCount ()) |
273 |
+- return; |
274 |
+- |
275 |
+- index = proxyModel->index (0, 0); |
276 |
+ focus = indexToRow (index); |
277 |
+ m_playlist.set_focus (focus); |
278 |
+- } |
279 |
+- |
280 |
+- if (! m_playlist.entry_selected (focus)) |
281 |
+- { |
282 |
+ m_playlist.select_all (false); |
283 |
+ m_playlist.select_entry (focus, true); |
284 |
++ scrollTo (index); |
285 |
+ } |
286 |
+- |
287 |
+- scrollTo (index); |
288 |
+ } |
289 |
+ |
290 |
+ void PlaylistWidget::setFirstVisibleColumn (int col) |
291 |
+diff --git a/src/qtui/playlist-qt.h b/src/qtui/playlist-qt.h |
292 |
+index a2894323c..df44205af 100644 |
293 |
+--- a/src/qtui/playlist-qt.h |
294 |
++++ b/src/qtui/playlist-qt.h |
295 |
+@@ -66,6 +66,7 @@ class PlaylistWidget : public QTreeView |
296 |
+ |
297 |
+ QModelIndex rowToIndex (int row); |
298 |
+ int indexToRow (const QModelIndex & index); |
299 |
++ QModelIndex visibleIndexNear (int row); |
300 |
+ |
301 |
+ void getSelectedRanges (int rowsBefore, int rowsAfter, |
302 |
+ QItemSelection & selected, QItemSelection & deselected); |