Gentoo Archives: gentoo-commits

From: Andreas Sturmlechner <asturm@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: media-sound/mixxx/, media-sound/mixxx/files/
Date: Fri, 07 Sep 2018 20:34:53
Message-Id: 1536352431.13663ab3d2b090900cb411d0df9ad6a89b887f22.asturm@gentoo
1 commit: 13663ab3d2b090900cb411d0df9ad6a89b887f22
2 Author: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
3 AuthorDate: Thu Aug 30 22:45:56 2018 +0000
4 Commit: Andreas Sturmlechner <asturm <AT> gentoo <DOT> org>
5 CommitDate: Fri Sep 7 20:33:51 2018 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=13663ab3
7
8 media-sound/mixxx: Drop 2.0.0
9
10 Package-Manager: Portage-2.3.48, Repoman-2.3.10
11
12 media-sound/mixxx/Manifest | 3 -
13 .../mixxx/files/mixxx-2.0.0-chromaprint-1.4.patch | 40 ---
14 ...nate-unnecessary-heap-allocation-of-qtime.patch | 55 ----
15 ...xx-2.0.0-fix-formatting-of-time-durations.patch | 24 --
16 ...x-2.0.0-fix-formatting-of-time-durations2.patch | 139 ----------
17 ...-2.0.0-fix-missing-pointer-initialization.patch | 271 --------------------
18 media-sound/mixxx/files/mixxx-2.0.0-gcc62.patch | 24 --
19 ...n-of-time-formatseconds-into-dot-cpp-file.patch | 88 -------
20 ...xx-2.0.0-rmx2-backport-controller-scripts.patch | 280 ---------------------
21 media-sound/mixxx/files/mixxx-2.0.0-sqlite3.patch | 14 --
22 media-sound/mixxx/mixxx-2.0.0-r5.ebuild | 144 -----------
23 11 files changed, 1082 deletions(-)
24
25 diff --git a/media-sound/mixxx/Manifest b/media-sound/mixxx/Manifest
26 index 81cb96df556..878c9c13d2a 100644
27 --- a/media-sound/mixxx/Manifest
28 +++ b/media-sound/mixxx/Manifest
29 @@ -1,5 +1,2 @@
30 -DIST mixxx-2.0.0-ffmpeg30.patch 714 BLAKE2B 00c5cdc233262e64fa52abcc97fc15d1347a391d411b5a0e2650bc3d06f1ef994b28c1f5bd942026201850925f6959fa0b3896c5dff48fbad1c28df8bcd8067b SHA512 60788ecab1fa92b825815fff5dfdfefe02fb097e46f7f55f318bb8a8677da42e4601cce51eaaec51988990eebb72d59346d1ec45ed76cac3c8a7f9a9d1e8cf54
31 -DIST mixxx-2.0.0-ffmpeg31.patch 2844 BLAKE2B ee44c1da8af553cff478d12bc4fb05ae50bd788340ba5e414b6a535873a3c1868363762697ab21580bfa8f4006c0314acdc2c778f80a910c316a49d91c3e0205 SHA512 7207ad72d0ea851b1425ff7472aafe5f828ca70aad0821a1ef1eb54845527532489ac7913f6584e3af5fb53bf3459abc173fbf482f83be8a22358d28b1b5cf74
32 -DIST mixxx-2.0.0-src.tar.gz 25300881 BLAKE2B a0dbc03350bf6d6a8ce5abd06df50bf58cf3d75fcc3f8614873c807ad8a77d1afb12a8715944ebba80da5750e4c6d6570ea60a5afb83b87f8cc54c7c4d0ccb00 SHA512 8878c0f785e4c5f67724deeca61154d2587969a81d28aef8fa9d526aec8419a218ce2a7ef88d6fcf468d30fa13d31ac9a56ca9082431a35b7e4e040a7ccfbb1a
33 DIST mixxx-2.1.1.tar.gz 34458368 BLAKE2B cf718cfea64fe71e2ccd5f299454fc9d396266052cc2516fa4494216a9d8ae9cea62858bf02e026d5072705df780d6243616d1d1705e3f251bc2392b4dc3d166 SHA512 c0047a238bf39e464f2bc25646ba03138d0b8d27cde667ca7b12bfba5f40d339ce4b426853e048d695b2c59c847e88322e27b91bead467899d7bf1cb43358f20
34 DIST mixxx-2.1.3.tar.gz 34471372 BLAKE2B 88b634003a6014ebe746cf0f5f2b3d3de6775c6b2a5298898e70c55feb1ae5a54a692f9428103419943e829438b2ac2fdbfa93c45d4624a7aede59f8ecbe98ae SHA512 3aaf207963cb7380d98c9458f9c1d85c2c72bc0bc2197758a47af50ea38a80158c1abacc70ef50398ccd89a4bd4c30d93c65d70112332e529f3a3aed31509324
35
36 diff --git a/media-sound/mixxx/files/mixxx-2.0.0-chromaprint-1.4.patch b/media-sound/mixxx/files/mixxx-2.0.0-chromaprint-1.4.patch
37 deleted file mode 100644
38 index 77827f3d8d8..00000000000
39 --- a/media-sound/mixxx/files/mixxx-2.0.0-chromaprint-1.4.patch
40 +++ /dev/null
41 @@ -1,40 +0,0 @@
42 -Backported chromaprint-1.4 API changes based on the fix suggested in:
43 -https://github.com/mixxxdj/mixxx/pull/1073
44 -
45 -and the work done by Charlie Gehlin in:
46 -https://bugs.gentoo.org/604528
47 -
48 ---- mixxx-2.0.0/src/musicbrainz/chromaprinter.cpp
49 -+++ mixxx-2.0.0/src/musicbrainz/chromaprinter.cpp
50 -@@ -25,6 +25,16 @@
51 -
52 - QString ChromaPrinter::calcFingerPrint(const Mixxx::SoundSourcePointer& pSoundSource) {
53 -
54 -+ // Type declarations of *fprint and *encoded pointers need to account for Chromaprint API version
55 -+ // (void* -> uint32_t*) and (void* -> char*) changed in versions v1.4.0 or later -- alyptik 12/2016
56 -+ #if (CHROMAPRINT_VERSION_MINOR > 3) || (CHROMAPRINT_VERSION_MAJOR > 1)
57 -+ typedef uint32_t* uint32_p;
58 -+ typedef char* char_p;
59 -+ #else
60 -+ typedef void* uint32_p;
61 -+ typedef void* char_p;
62 -+ #endif
63 -+
64 - // this is worth 2min of audio, multiply by 2 because we have 2 channels
65 - // AcoustID only stores a fingerprint for the first two minutes of a song
66 - // on their server so we need only a fingerprint of the first two minutes
67 -@@ -57,12 +67,12 @@
68 - }
69 - chromaprint_finish(ctx);
70 -
71 -- void* fprint = NULL;
72 -+ uint32_p fprint = NULL;
73 - int size = 0;
74 - int ret = chromaprint_get_raw_fingerprint(ctx, &fprint, &size);
75 - QByteArray fingerprint;
76 - if (ret == 1) {
77 -- void* encoded = NULL;
78 -+ char_p encoded = NULL;
79 - int encoded_size = 0;
80 - chromaprint_encode_fingerprint(fprint, size,
81 - CHROMAPRINT_ALGORITHM_DEFAULT,
82
83 diff --git a/media-sound/mixxx/files/mixxx-2.0.0-eliminate-unnecessary-heap-allocation-of-qtime.patch b/media-sound/mixxx/files/mixxx-2.0.0-eliminate-unnecessary-heap-allocation-of-qtime.patch
84 deleted file mode 100644
85 index 04538a01e15..00000000000
86 --- a/media-sound/mixxx/files/mixxx-2.0.0-eliminate-unnecessary-heap-allocation-of-qtime.patch
87 +++ /dev/null
88 @@ -1,55 +0,0 @@
89 -diff -dNur a/src/analyserwaveform.cpp b/src/analyserwaveform.cpp
90 ---- a/src/analyserwaveform.cpp 2015-12-29 17:10:41.000000000 +0100
91 -+++ b/src/analyserwaveform.cpp 2017-02-04 21:12:30.127952910 +0100
92 -@@ -1,6 +1,3 @@
93 --#include <QImage>
94 --#include <QtDebug>
95 --#include <QTime>
96 - #include <QtDebug>
97 -
98 - #include "analyserwaveform.h"
99 -@@ -40,7 +37,6 @@
100 - }
101 - }
102 -
103 -- m_timer = new QTime();
104 - m_analysisDao = new AnalysisDao(m_database, pConfig);
105 - }
106 -
107 -@@ -48,14 +44,13 @@
108 - qDebug() << "AnalyserWaveform::~AnalyserWaveform()";
109 - destroyFilters();
110 - m_database.close();
111 -- delete m_timer;
112 - delete m_analysisDao;
113 - }
114 -
115 - bool AnalyserWaveform::initialise(TrackPointer tio, int sampleRate, int totalSamples) {
116 - m_skipProcessing = false;
117 -
118 -- m_timer->start();
119 -+ m_timer.start();
120 -
121 - if (totalSamples == 0) {
122 - qWarning() << "AnalyserWaveform::initialise - no waveform/waveform summary";
123 -@@ -320,7 +315,7 @@
124 - #endif
125 -
126 - qDebug() << "Waveform generation for track" << tio->getId() << "done"
127 -- << m_timer->elapsed()/1000.0 << "s";
128 -+ << m_timer.elapsed()/1000.0 << "s";
129 - }
130 -
131 - void AnalyserWaveform::storeIfGreater(float* pDest, float source) {
132 -diff -dNur a/src/analyserwaveform.h b/src/analyserwaveform.h
133 ---- a/src/analyserwaveform.h 2015-12-29 17:10:41.000000000 +0100
134 -+++ b/src/analyserwaveform.h 2017-02-04 21:12:45.367713395 +0100
135 -@@ -171,7 +171,7 @@
136 - EngineFilterIIRBase* m_filter[FilterCount];
137 - std::vector<float> m_buffers[FilterCount];
138 -
139 -- QTime* m_timer;
140 -+ QTime m_timer;
141 - QSqlDatabase m_database;
142 - AnalysisDao* m_analysisDao;
143 -
144
145 diff --git a/media-sound/mixxx/files/mixxx-2.0.0-fix-formatting-of-time-durations.patch b/media-sound/mixxx/files/mixxx-2.0.0-fix-formatting-of-time-durations.patch
146 deleted file mode 100644
147 index 654c01f53b9..00000000000
148 --- a/media-sound/mixxx/files/mixxx-2.0.0-fix-formatting-of-time-durations.patch
149 +++ /dev/null
150 @@ -1,24 +0,0 @@
151 -From 76c53b0f0a2be7b5cf85fa523f3521a5725affb2 Mon Sep 17 00:00:00 2001
152 -From: Uwe Klotz <uwe_klotz@×××.de>
153 -Date: Fri, 8 Jan 2016 18:22:33 +0100
154 -Subject: [PATCH] Fix formatting of time durations
155 -
156 ----
157 - src/util/time.h | 4 +++-
158 - 1 file changed, 3 insertions(+), 1 deletion(-)
159 -
160 -diff --git a/src/util/time.h b/src/util/time.h
161 -index 29187ad..7b38eb4 100644
162 ---- a/src/util/time.h
163 -+++ b/src/util/time.h
164 -@@ -75,7 +75,9 @@ class Time {
165 - const int days = static_cast<int>(dSeconds) / kSecondsPerDay;
166 - dSeconds -= days * kSecondsPerDay;
167 -
168 -- QTime t = QTime().addMSecs(dSeconds * kMillisPerSecond);
169 -+ // NOTE(uklotzde): Time() constructs a 'null' object, but
170 -+ // we need 'zero' here.
171 -+ QTime t = QTime(0, 0).addMSecs(dSeconds * kMillisPerSecond);
172 -
173 - QString formatString =
174 - (days > 0 ? (QString::number(days) %
175
176 diff --git a/media-sound/mixxx/files/mixxx-2.0.0-fix-formatting-of-time-durations2.patch b/media-sound/mixxx/files/mixxx-2.0.0-fix-formatting-of-time-durations2.patch
177 deleted file mode 100644
178 index f8c041e4043..00000000000
179 --- a/media-sound/mixxx/files/mixxx-2.0.0-fix-formatting-of-time-durations2.patch
180 +++ /dev/null
181 @@ -1,139 +0,0 @@
182 -diff -dNur a/src/library/basesqltablemodel.cpp b/src/library/basesqltablemodel.cpp
183 ---- a/src/library/basesqltablemodel.cpp 2015-12-29 17:10:41.000000000 +0100
184 -+++ b/src/library/basesqltablemodel.cpp 2017-02-04 21:33:39.403861857 +0100
185 -@@ -559,7 +559,7 @@
186 - if (column == fieldIndex(ColumnCache::COLUMN_LIBRARYTABLE_DURATION)) {
187 - int duration = value.toInt();
188 - if (duration > 0) {
189 -- value = Time::formatSeconds(duration, false);
190 -+ value = Time::formatSeconds(duration);
191 - } else {
192 - value = QString();
193 - }
194 -diff -dNur a/src/library/browse/browsethread.cpp b/src/library/browse/browsethread.cpp
195 ---- a/src/library/browse/browsethread.cpp 2015-12-29 17:10:41.000000000 +0100
196 -+++ b/src/library/browse/browsethread.cpp 2017-02-04 21:32:23.605066421 +0100
197 -@@ -185,8 +185,7 @@
198 - item->setData(item->text(), Qt::UserRole);
199 - row_data.insert(COLUMN_COMMENT, item);
200 -
201 -- QString duration = Time::formatSeconds(qVariantValue<int>(
202 -- tio.getDuration()), false);
203 -+ QString duration = Time::formatSeconds(tio.getDuration());
204 - item = new QStandardItem(duration);
205 - item->setToolTip(item->text());
206 - item->setData(item->text(), Qt::UserRole);
207 -diff -dNur a/src/library/cratefeature.cpp b/src/library/cratefeature.cpp
208 ---- a/src/library/cratefeature.cpp 2015-12-29 17:10:41.000000000 +0100
209 -+++ b/src/library/cratefeature.cpp 2017-02-04 21:30:54.962474898 +0100
210 -@@ -493,7 +493,7 @@
211 - crateListTableModel.index(row, durationColumn)).toInt();
212 - m_crateList.append(qMakePair(id, QString("%1 (%2) %3")
213 - .arg(name, QString::number(count),
214 -- Time::formatSeconds(duration, false))));
215 -+ Time::formatSeconds(duration))));
216 - }
217 - }
218 -
219 -diff -dNur a/src/library/playlistfeature.cpp b/src/library/playlistfeature.cpp
220 ---- a/src/library/playlistfeature.cpp 2015-12-29 17:10:41.000000000 +0100
221 -+++ b/src/library/playlistfeature.cpp 2017-02-04 21:33:06.920378091 +0100
222 -@@ -168,7 +168,7 @@
223 - playlistTableModel.index(row, durationColumn)).toInt();
224 - m_playlistList.append(qMakePair(id, QString("%1 (%2) %3")
225 - .arg(name, QString::number(count),
226 -- Time::formatSeconds(duration, false))));
227 -+ Time::formatSeconds(duration))));
228 - }
229 - }
230 -
231 -diff -dNur a/src/trackinfoobject.cpp b/src/trackinfoobject.cpp
232 ---- a/src/trackinfoobject.cpp 2015-12-29 17:10:41.000000000 +0100
233 -+++ b/src/trackinfoobject.cpp 2017-02-04 21:42:36.423323807 +0100
234 -@@ -293,7 +293,7 @@
235 - int iDuration = m_iDuration;
236 - lock.unlock();
237 -
238 -- return Time::formatSeconds(iDuration, false);
239 -+ return Time::formatSeconds(iDuration);
240 - }
241 -
242 - void TrackInfoObject::setLocation(const QString& location) {
243 -diff -dNur a/src/util/time.cpp b/src/util/time.cpp
244 ---- a/src/util/time.cpp 2017-02-04 21:29:44.439595305 +0100
245 -+++ b/src/util/time.cpp 2017-02-04 21:37:54.739803100 +0100
246 -@@ -1,5 +1,7 @@
247 - #include "util/time.h"
248 -
249 -+#include "util/assert.h"
250 -+
251 - // static
252 - LLTIMER Time::s_timer;
253 - // static
254 -@@ -8,7 +10,7 @@
255 - qint64 Time::s_testElapsed_nsecs = 0;
256 -
257 - // static
258 --QString Time::formatSeconds(double dSeconds, bool showCentis) {
259 -+QString Time::formatSeconds(double dSeconds, Precision precision) {
260 - if (dSeconds < 0) {
261 - return "?";
262 - }
263 -@@ -24,13 +26,14 @@
264 - (days > 0 ? (QString::number(days) %
265 - QLatin1String("'d', ")) : QString()) %
266 - QLatin1String(days > 0 || t.hour() > 0 ? "hh:mm:ss" : "mm:ss") %
267 -- QLatin1String(showCentis ? ".zzz" : "");
268 -+ QLatin1String(Precision::SECONDS == precision ? "" : ".zzz");
269 -
270 - QString timeString = t.toString(formatString);
271 -
272 - // The format string gives us milliseconds but we want
273 - // centiseconds. Slice one character off.
274 -- if (showCentis) {
275 -+ if (Precision::CENTISECONDS == precision) {
276 -+ DEBUG_ASSERT(1 <= timeString.length());
277 - timeString = timeString.left(timeString.length() - 1);
278 - }
279 -
280 -diff -dNur a/src/util/time.h b/src/util/time.h
281 ---- a/src/util/time.h 2017-02-04 21:29:44.439595305 +0100
282 -+++ b/src/util/time.h 2017-02-04 21:41:01.476833822 +0100
283 -@@ -55,10 +55,17 @@
284 - s_testElapsed_nsecs = elapsed * 1000000;
285 - }
286 -
287 -- // The standard way of formatting a time in seconds. Used for display of
288 -- // track duration, etc. showCentis indicates whether to include
289 -- // centisecond-precision or to round to the nearest second.
290 -- static QString formatSeconds(double dSeconds, bool showCentis);
291 -+ enum class Precision {
292 -+ SECONDS,
293 -+ CENTISECONDS,
294 -+ MILLISECONDS
295 -+ };
296 -+
297 -+ // The standard way of formatting a time in seconds. Used for display
298 -+ // of track duration, etc.
299 -+ static QString formatSeconds(
300 -+ double dSeconds,
301 -+ Precision precision = Time::Precision::SECONDS);
302 -
303 - private:
304 - static LLTIMER s_timer;
305 -diff -dNur a/src/widget/wnumberpos.cpp b/src/widget/wnumberpos.cpp
306 ---- a/src/widget/wnumberpos.cpp 2015-12-29 17:10:41.000000000 +0100
307 -+++ b/src/widget/wnumberpos.cpp 2017-02-04 21:41:57.023950430 +0100
308 -@@ -92,10 +92,10 @@
309 - QString valueString;
310 - if (valueMillis >= 0) {
311 - valueString = m_skinText % Time::formatSeconds(
312 -- valueMillis / Time::kMillisPerSecond, true);
313 -+ valueMillis / Time::kMillisPerSecond, Time::Precision::MILLISECONDS);
314 - } else {
315 - valueString = m_skinText % QLatin1String("-") % Time::formatSeconds(
316 -- -valueMillis / Time::kMillisPerSecond, true);
317 -+ -valueMillis / Time::kMillisPerSecond, Time::Precision::CENTISECONDS);
318 - }
319 - setText(valueString);
320 - }
321
322 diff --git a/media-sound/mixxx/files/mixxx-2.0.0-fix-missing-pointer-initialization.patch b/media-sound/mixxx/files/mixxx-2.0.0-fix-missing-pointer-initialization.patch
323 deleted file mode 100644
324 index 3364995ce4f..00000000000
325 --- a/media-sound/mixxx/files/mixxx-2.0.0-fix-missing-pointer-initialization.patch
326 +++ /dev/null
327 @@ -1,271 +0,0 @@
328 -diff -dNur a/src/analyserwaveform.cpp b/src/analyserwaveform.cpp
329 ---- a/src/analyserwaveform.cpp 2017-02-04 21:14:33.266016824 +0100
330 -+++ b/src/analyserwaveform.cpp 2017-02-04 21:19:09.205671982 +0100
331 -@@ -11,8 +11,8 @@
332 -
333 - AnalyserWaveform::AnalyserWaveform(ConfigObject<ConfigValue>* pConfig) :
334 - m_skipProcessing(false),
335 -- m_waveformData(NULL),
336 -- m_waveformSummaryData(NULL),
337 -+ m_waveformData(nullptr),
338 -+ m_waveformSummaryData(nullptr),
339 - m_stride(0, 0),
340 - m_currentStride(0),
341 - m_currentSummaryStride(0) {
342 -@@ -37,14 +37,13 @@
343 - }
344 - }
345 -
346 -- m_analysisDao = new AnalysisDao(m_database, pConfig);
347 -+ m_pAnalysisDao = std::make_unique<AnalysisDao>(m_database, pConfig);
348 - }
349 -
350 - AnalyserWaveform::~AnalyserWaveform() {
351 - qDebug() << "AnalyserWaveform::~AnalyserWaveform()";
352 - destroyFilters();
353 - m_database.close();
354 -- delete m_analysisDao;
355 - }
356 -
357 - bool AnalyserWaveform::initialise(TrackPointer tio, int sampleRate, int totalSamples) {
358 -@@ -115,7 +114,7 @@
359 -
360 - if (trackId != -1 && (missingWaveform || missingWavesummary)) {
361 - QList<AnalysisDao::AnalysisInfo> analyses =
362 -- m_analysisDao->getAnalysesForTrack(trackId);
363 -+ m_pAnalysisDao->getAnalysesForTrack(trackId);
364 -
365 - QListIterator<AnalysisDao::AnalysisInfo> it(analyses);
366 - while (it.hasNext()) {
367 -@@ -130,7 +129,7 @@
368 - missingWaveform = false;
369 - } else if (vc != WaveformFactory::VC_KEEP) {
370 - // remove all other Analysis except that one we should keep
371 -- m_analysisDao->deleteAnalysis(analysis.analysisId);
372 -+ m_pAnalysisDao->deleteAnalysis(analysis.analysisId);
373 - }
374 - } if (analysis.type == AnalysisDao::TYPE_WAVESUMMARY) {
375 - vc = WaveformFactory::waveformSummaryVersionToVersionClass(analysis.version);
376 -@@ -140,7 +139,7 @@
377 - missingWavesummary = false;
378 - } else if (vc != WaveformFactory::VC_KEEP) {
379 - // remove all other Analysis except that one we should keep
380 -- m_analysisDao->deleteAnalysis(analysis.analysisId);
381 -+ m_pAnalysisDao->deleteAnalysis(analysis.analysisId);
382 - }
383 - }
384 - }
385 -@@ -273,13 +272,13 @@
386 - tio->setWaveform(ConstWaveformPointer());
387 - // Since clear() could delete the waveform, clear our pointer to the
388 - // waveform's vector data first.
389 -- m_waveformData = NULL;
390 -+ m_waveformData = nullptr;
391 - m_waveform.clear();
392 -
393 - tio->setWaveformSummary(ConstWaveformPointer());
394 - // Since clear() could delete the waveform, clear our pointer to the
395 - // waveform's vector data first.
396 -- m_waveformSummaryData = NULL;
397 -+ m_waveformSummaryData = nullptr;
398 - m_waveformSummary.clear();
399 - }
400 -
401 -@@ -295,7 +294,7 @@
402 - m_waveform->setDescription(WaveformFactory::currentWaveformDescription());
403 - // Since clear() could delete the waveform, clear our pointer to the
404 - // waveform's vector data first.
405 -- m_waveformData = NULL;
406 -+ m_waveformData = nullptr;
407 - m_waveform.clear();
408 - }
409 -
410 -@@ -306,7 +305,7 @@
411 - m_waveformSummary->setDescription(WaveformFactory::currentWaveformSummaryDescription());
412 - // Since clear() could delete the waveform, clear our pointer to the
413 - // waveform's vector data first.
414 -- m_waveformSummaryData = NULL;
415 -+ m_waveformSummaryData = nullptr;
416 - m_waveformSummary.clear();
417 - }
418 -
419 -diff -dNur a/src/analyserwaveform.h b/src/analyserwaveform.h
420 ---- a/src/analyserwaveform.h 2017-02-04 21:14:33.266016824 +0100
421 -+++ b/src/analyserwaveform.h 2017-02-04 21:20:17.308598419 +0100
422 -@@ -4,12 +4,14 @@
423 - #include <QTime>
424 - #include <QImage>
425 - #include <QSqlDatabase>
426 -+
427 - #include <limits>
428 -
429 - #include "configobject.h"
430 - #include "analyser.h"
431 - #include "waveform/waveform.h"
432 - #include "util/math.h"
433 -+#include "util/memory.h"
434 -
435 - //NOTS vrince some test to segment sound, to apply color in the waveform
436 - //#define TEST_HEAT_MAP
437 -@@ -173,7 +175,7 @@
438 -
439 - QTime m_timer;
440 - QSqlDatabase m_database;
441 -- AnalysisDao* m_analysisDao;
442 -+ std::unique_ptr<AnalysisDao> m_pAnalysisDao;
443 -
444 - #ifdef TEST_HEAT_MAP
445 - QImage* test_heatMap;
446 -diff -dNur a/src/util/memory.h b/src/util/memory.h
447 ---- a/src/util/memory.h 1970-01-01 01:00:00.000000000 +0100
448 -+++ b/src/util/memory.h 2017-02-04 22:19:41.846922929 +0100
449 -@@ -0,0 +1,149 @@
450 -+// Taken from https://github.com/bstreiff/cppbits
451 -+// Thank you Brandon Streiff!
452 -+
453 -+// Implementation of C++14's make_unique for C++11 compilers.
454 -+//
455 -+// This has been tested with:
456 -+// - MSVC 11.0 (Visual Studio 2012)
457 -+// - gcc 4.6.3
458 -+// - Xcode 4.4 (with clang "4.0")
459 -+//
460 -+// It is based off an implementation proposed by Stephan T. Lavavej for
461 -+// inclusion in the C++14 standard:
462 -+// http://isocpp.org/files/papers/N3656.txt
463 -+// Where appropriate, it borrows the use of MSVC's _VARIADIC_EXPAND_0X macro
464 -+// machinery to compensate for lack of variadic templates.
465 -+//
466 -+// This file injects make_unique into the std namespace, which I acknowledge is
467 -+// technically forbidden ([C++11: 17.6.4.2.2.1/1]), but is necessary in order
468 -+// to have syntax compatibility with C++14.
469 -+//
470 -+// I perform compiler version checking for MSVC, gcc, and clang to ensure that
471 -+// we don't add make_unique if it is already there (instead, we include
472 -+// <memory> to get the compiler-provided one). You can override the compiler
473 -+// version checking by defining the symbol COMPILER_SUPPORTS_MAKE_UNIQUE.
474 -+//
475 -+//
476 -+// ===============================================================================
477 -+// This file is released into the public domain. See LICENCE for more information.
478 -+// ===============================================================================
479 -+
480 -+#ifndef MIXXX_UTIL_MEMORY_H
481 -+#define MIXXX_UTIL_MEMORY_H
482 -+
483 -+// If user hasn't specified COMPILER_SUPPORTS_MAKE_UNIQUE then try to figure out
484 -+// based on compiler version if std::make_unique is provided.
485 -+#if !defined(COMPILER_SUPPORTS_MAKE_UNIQUE)
486 -+ // Compiling with -std=c++11 sets __cplusplus=201103L and disables
487 -+ // std::make_unique() from C++14! We need to take this into account.
488 -+ #define CPLUSPLUS_SUPPORTS_MAKE_UNIQUE (__cplusplus > 201103L)
489 -+ #if defined(_MSC_VER)
490 -+ // std::make_unique was added in MSVC 12.0
491 -+ #if _MSC_VER >= 1800 // MSVC 12.0 (Visual Studio 2013)
492 -+ #define COMPILER_SUPPORTS_MAKE_UNIQUE
493 -+ #endif
494 -+ #elif defined(__clang__)
495 -+ // std::make_unique was added in clang 3.4, but not until Xcode 6.
496 -+ // Annoyingly, Apple makes the clang version defines match the version
497 -+ // of Xcode, not the version of clang.
498 -+ #define CLANG_VERSION (__clang_major__ * 10000 + __clang_minor__ * 100 + __clang_patchlevel__)
499 -+ #if defined(__APPLE__) && CLANG_VERSION >= 60000 && CPLUSPLUS_SUPPORTS_MAKE_UNIQUE
500 -+ #define COMPILER_SUPPORTS_MAKE_UNIQUE
501 -+ #elif !defined(__APPLE__) && CLANG_VERSION >= 30400 && CPLUSPLUS_SUPPORTS_MAKE_UNIQUE
502 -+ #define COMPILER_SUPPORTS_MAKE_UNIQUE
503 -+ #endif
504 -+ #elif defined(__GNUC__)
505 -+ // std::make_unique was added in gcc 4.9
506 -+ #define GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__)
507 -+ #if GCC_VERSION >= 40900 && CPLUSPLUS_SUPPORTS_MAKE_UNIQUE
508 -+ #define COMPILER_SUPPORTS_MAKE_UNIQUE
509 -+ #endif
510 -+ #endif
511 -+#endif
512 -+
513 -+#if defined(COMPILER_SUPPORTS_MAKE_UNIQUE)
514 -+
515 -+// If the compiler supports std::make_unique, then pull in <memory> to get it.
516 -+#include <memory>
517 -+
518 -+#else
519 -+
520 -+// Otherwise, the compiler doesn't provide it, so implement it ourselves.
521 -+
522 -+#include <cstddef>
523 -+#include <memory>
524 -+#include <type_traits>
525 -+#include <utility>
526 -+
527 -+namespace std {
528 -+
529 -+template<class _Ty> struct _Unique_if {
530 -+ typedef unique_ptr<_Ty> _Single_object;
531 -+};
532 -+
533 -+template<class _Ty> struct _Unique_if<_Ty[]> {
534 -+ typedef unique_ptr<_Ty[]> _Unknown_bound;
535 -+};
536 -+
537 -+template<class _Ty, size_t N> struct _Unique_if<_Ty[N]> {
538 -+ typedef void _Known_bound;
539 -+};
540 -+
541 -+//
542 -+// template< class T, class... Args >
543 -+// unique_ptr<T> make_unique( Args&&... args);
544 -+//
545 -+
546 -+#if defined(_MSC_VER) && (_MSC_VER < 1800)
547 -+
548 -+// Macro machinery because MSVC 11.0 doesn't support variadic templates.
549 -+// The _VARIADIC_EXPAND_0X stuff is defined in <xstddef>
550 -+#define _MAKE_UNIQUE( \
551 -+ TEMPLATE_LIST, PADDING_LIST, LIST, COMMA, X1, X2, X3, X4) \
552 -+ template<class _Ty COMMA LIST(_CLASS_TYPE)> inline \
553 -+ typename _Unique_if<_Ty>::_Single_object make_unique(LIST(_TYPE_REFREF_ARG)) \
554 -+ { \
555 -+ return unique_ptr<_Ty>(new _Ty(LIST(_FORWARD_ARG))); \
556 -+ } \
557 -+
558 -+_VARIADIC_EXPAND_0X(_MAKE_UNIQUE, , , , )
559 -+#undef _MAKE_UNIQUE
560 -+
561 -+#else // not MSVC 11.0 or earlier
562 -+
563 -+template<class _Ty, class... Args>
564 -+ typename _Unique_if<_Ty>::_Single_object
565 -+ make_unique(Args&&... args) {
566 -+ return unique_ptr<_Ty>(new _Ty(std::forward<Args>(args)...));
567 -+ }
568 -+
569 -+#endif
570 -+
571 -+// template< class T >
572 -+// unique_ptr<T> make_unique( std::size_t size );
573 -+
574 -+template<class _Ty>
575 -+ typename _Unique_if<_Ty>::_Unknown_bound
576 -+ make_unique(size_t n) {
577 -+ typedef typename remove_extent<_Ty>::type U;
578 -+ return unique_ptr<_Ty>(new U[n]());
579 -+ }
580 -+
581 -+// template< class T, class... Args >
582 -+// /* unspecified */ make_unique( Args&&... args ) = delete;
583 -+
584 -+// MSVC 11.0 doesn't support deleted functions, so the best we can do
585 -+// is simply not define the function.
586 -+#if !(defined(_MSC_VER) && (_MSC_VER < 1800))
587 -+
588 -+template<class T, class... Args>
589 -+ typename _Unique_if<T>::_Known_bound
590 -+ make_unique(Args&&...) = delete;
591 -+
592 -+#endif
593 -+
594 -+} // namespace std
595 -+
596 -+#endif // !COMPILER_SUPPORTS_MAKE_UNIQUE
597 -+
598 -+#endif /* MIXXX_UTIL_MEMORY_H */
599
600 diff --git a/media-sound/mixxx/files/mixxx-2.0.0-gcc62.patch b/media-sound/mixxx/files/mixxx-2.0.0-gcc62.patch
601 deleted file mode 100644
602 index c19c914b330..00000000000
603 --- a/media-sound/mixxx/files/mixxx-2.0.0-gcc62.patch
604 +++ /dev/null
605 @@ -1,24 +0,0 @@
606 ---- a/src/util/math.h 2015-12-29 17:10:41.000000000 +0100
607 -+++ b/src/util/math.h 2016-09-25 12:54:18.345291146 +0200
608 -@@ -3,8 +3,20 @@
609 -
610 - // Causes MSVC to define M_PI and friends.
611 - // http://msdn.microsoft.com/en-us/library/4hwaceh6.aspx
612 -+// Our SConscript defines this but check anyway.
613 -+#ifdef __WINDOWS__
614 -+#ifndef _USE_MATH_DEFINES
615 - #define _USE_MATH_DEFINES
616 --#include <cmath>
617 -+#endif
618 -+#endif
619 -+
620 -+#include <math.h>
621 -+#include <cmath>
622 -+// Note: Because of our fpclassify hack, we actualy need to inlude both,
623 -+// the c and the c++ version of the math header.
624 -+// From GCC 6.1.1 math.h depends on cmath, which failes to compile if included
625 -+// after our fpclassify hack
626 -+
627 - #include <algorithm>
628 -
629 - #include "util/assert.h"
630
631 diff --git a/media-sound/mixxx/files/mixxx-2.0.0-move-definition-of-time-formatseconds-into-dot-cpp-file.patch b/media-sound/mixxx/files/mixxx-2.0.0-move-definition-of-time-formatseconds-into-dot-cpp-file.patch
632 deleted file mode 100644
633 index 9a95a5d675e..00000000000
634 --- a/media-sound/mixxx/files/mixxx-2.0.0-move-definition-of-time-formatseconds-into-dot-cpp-file.patch
635 +++ /dev/null
636 @@ -1,88 +0,0 @@
637 -From c2af9e6eeb469718b9aa069b90a719fac80dd0d9 Mon Sep 17 00:00:00 2001
638 -From: Uwe Klotz <uwe_klotz@×××.de>
639 -Date: Fri, 8 Jan 2016 19:25:58 +0100
640 -Subject: [PATCH] Move definition of Time::formatSeconds() into .cpp file
641 -
642 ----
643 - src/util/time.cpp | 30 ++++++++++++++++++++++++++++++
644 - src/util/time.h | 29 +----------------------------
645 - 2 files changed, 31 insertions(+), 28 deletions(-)
646 -
647 -diff --git a/src/util/time.cpp b/src/util/time.cpp
648 -index 998fa73..d8a122b 100644
649 ---- a/src/util/time.cpp
650 -+++ b/src/util/time.cpp
651 -@@ -6,3 +6,33 @@ LLTIMER Time::s_timer;
652 - bool Time::s_testMode = false;
653 - // static
654 - qint64 Time::s_testElapsed_nsecs = 0;
655 -+
656 -+// static
657 -+QString Time::formatSeconds(double dSeconds, bool showCentis) {
658 -+ if (dSeconds < 0) {
659 -+ return "?";
660 -+ }
661 -+
662 -+ const int days = static_cast<int>(dSeconds) / kSecondsPerDay;
663 -+ dSeconds -= days * kSecondsPerDay;
664 -+
665 -+ // NOTE(uklotzde): Time() constructs a 'null' object, but
666 -+ // we need 'zero' here.
667 -+ QTime t = QTime(0, 0).addMSecs(dSeconds * kMillisPerSecond);
668 -+
669 -+ QString formatString =
670 -+ (days > 0 ? (QString::number(days) %
671 -+ QLatin1String("'d', ")) : QString()) %
672 -+ QLatin1String(days > 0 || t.hour() > 0 ? "hh:mm:ss" : "mm:ss") %
673 -+ QLatin1String(showCentis ? ".zzz" : "");
674 -+
675 -+ QString timeString = t.toString(formatString);
676 -+
677 -+ // The format string gives us milliseconds but we want
678 -+ // centiseconds. Slice one character off.
679 -+ if (showCentis) {
680 -+ timeString = timeString.left(timeString.length() - 1);
681 -+ }
682 -+
683 -+ return timeString;
684 -+}
685 -diff --git a/src/util/time.h b/src/util/time.h
686 -index 7b38eb4..b4e2c2d 100644
687 ---- a/src/util/time.h
688 -+++ b/src/util/time.h
689 -@@ -67,34 +67,7 @@ class Time {
690 - // The standard way of formatting a time in seconds. Used for display of
691 - // track duration, etc. showCentis indicates whether to include
692 - // centisecond-precision or to round to the nearest second.
693 -- static QString formatSeconds(double dSeconds, bool showCentis) {
694 -- if (dSeconds < 0) {
695 -- return "?";
696 -- }
697 --
698 -- const int days = static_cast<int>(dSeconds) / kSecondsPerDay;
699 -- dSeconds -= days * kSecondsPerDay;
700 --
701 -- // NOTE(uklotzde): Time() constructs a 'null' object, but
702 -- // we need 'zero' here.
703 -- QTime t = QTime(0, 0).addMSecs(dSeconds * kMillisPerSecond);
704 --
705 -- QString formatString =
706 -- (days > 0 ? (QString::number(days) %
707 -- QLatin1String("'d', ")) : QString()) %
708 -- QLatin1String(days > 0 || t.hour() > 0 ? "hh:mm:ss" : "mm:ss") %
709 -- QLatin1String(showCentis ? ".zzz" : "");
710 --
711 -- QString timeString = t.toString(formatString);
712 --
713 -- // The format string gives us milliseconds but we want
714 -- // centiseconds. Slice one character off.
715 -- if (showCentis) {
716 -- timeString = timeString.left(timeString.length() - 1);
717 -- }
718 --
719 -- return timeString;
720 -- }
721 -+ static QString formatSeconds(double dSeconds, bool showCentis);
722 -
723 - private:
724 - static LLTIMER s_timer;
725
726 diff --git a/media-sound/mixxx/files/mixxx-2.0.0-rmx2-backport-controller-scripts.patch b/media-sound/mixxx/files/mixxx-2.0.0-rmx2-backport-controller-scripts.patch
727 deleted file mode 100644
728 index a82f27166ab..00000000000
729 --- a/media-sound/mixxx/files/mixxx-2.0.0-rmx2-backport-controller-scripts.patch
730 +++ /dev/null
731 @@ -1,280 +0,0 @@
732 -diff -dNur a/res/controllers/Hercules-DJ-Console-RMX-2-scripts.js b/res/controllers/Hercules-DJ-Console-RMX-2-scripts.js
733 ---- a/res/controllers/Hercules-DJ-Console-RMX-2-scripts.js 2015-12-29 17:10:41.000000000 +0100
734 -+++ b/res/controllers/Hercules-DJ-Console-RMX-2-scripts.js 2017-02-04 22:01:01.629506434 +0100
735 -@@ -1,128 +1,159 @@
736 --/*╔══:::Made Lovingly By Circuitfry:::═════════════════════════════════╗
737 -- ║ Hercules DJConsole RMX 2 Mapping Scripts v. 0.1.3 ║
738 -- ╚════════════════════════════════════════════════════════════════════╝
739 -- * Version 0.1.0: Basic Midi Wizard Mapping
740 -- * Version 0.1.1: Partially-Functional platters (version 1).
741 -- * Version 0.1.2: Functional platters (version 1)
742 -- * Version 0.1.3: Functional EQ Kill/Pitch Bending buttons
743 -- Functional Looping/Sample/Effect pads
744 -- Bugfix: Source 2 Gain knob doesn't load tracks.
745 -- Overhaul: MIDI Scripting file.
746 -- Worklog: Need to implement Microphone/Source1/Source2 input.
747 -- * Note 1: [DEP] Means the command is meant for Mixxx v1.10.x + below.
748 -- * Note 2: [FUT] Means the command is meant for Mixxx v1.11.x + above.
749 --*/
750 --function DJCRMX2(){}
751 --DJCRMX2.scratching = [];
752 -+/* ╔══:::Made Lovingly By Circuitfry:::═════════════════════════════════╗
753 -+ * ║ Hercules DJConsole RMX 2 Mapping Scripts ║
754 -+ * ╚════════════════════════════════════════════════════════════════════╝
755 -+ */
756 -
757 --/* [ Function init ] - Version 0.1.3
758 -- * Initiates some global variables and assigns an ID. Required.
759 --*/
760 --DJCRMX2.init = function(id){
761 -- DJCRMX2.id = id;
762 -- DJCRMX2.scratching[1]=false;
763 -- DJCRMX2.scratching[2]=false;
764 -- engine.setValue("[Microphone]","enabled",0);
765 -- engine.setValue("[Microphone]","talkover",0);
766 -+function DJCRMX2() {}
767 -+DJCRMX2.decks = [];
768 -+
769 -+/* [ Function init ]
770 -+ * Initiates some global variables and assigns an ID. Required.
771 -+ */
772 -+DJCRMX2.init = function (id) {
773 -+ DJCRMX2.id = id;
774 -+ DJCRMX2.decks[1] = new DJCRMX2.Deck(1);
775 -+ DJCRMX2.decks[2] = new DJCRMX2.Deck(2);
776 -+ engine.setValue("[Microphone]", "enabled", 0);
777 -+ engine.setValue("[Microphone]", "talkover", 0);
778 - }
779 -
780 --/* [ Function wheelPress ] - Version 0.1.2
781 -- * Detects whether a jog wheel is pressed or not and sets a specific
782 -- * variable on and off accordingly.
783 --*/
784 --DJCRMX2.wheelPress = function (channel, control, value, status, group){
785 -- if (status == 0x90) // If status #144 is active (2 possibilities)
786 -- {
787 -- if (value == 0x7F) // And the jog wheel is pressed down:
788 -- { /* engine.scratchEnable(int,int,float,float,float,bool);
789 -- * [ int deck ] Which track/platter is playing?
790 -- * [ int intervalsPerRev ] # of MIDI signals sent in 1 spin.
791 -- * [ float rpm ] Imaginary vinyl rotation speed.
792 -- * [ float alpha ] Just a fine-tuning variable.
793 -- * [ float beta ] Just a fine-tuning variable.
794 -- * [ bool ramp ] As far as I know, nothing...
795 -- */
796 -- var alpha = 1.0/8;
797 -- var beta = alpha/32;
798 -- if(group=="[Channel1]")
799 -- {
800 -- engine.scratchEnable(1, 250, 50, alpha, beta);
801 -- DJCRMX2.scratching[1] = true; //[DEP]
802 -- }
803 -- if(group=="[Channel2]")
804 -- {
805 -- engine.scratchEnable(2, 250, 50, alpha, beta);
806 -- DJCRMX2.scratching[2] = true; //[DEP]
807 -- }
808 --
809 -- }
810 -- if (value == 0x00 ) // If the jog wheel is released:
811 -- {
812 -- if(group=="[Channel1]")
813 -- {
814 -- DJCRMX2.scratching[1] = false; // <- v1.10.x and below
815 -- engine.scratchDisable(1);
816 -- }
817 -- if(group=="[Channel2]")
818 -- {
819 -- DJCRMX2.scratching[2] = false; // <- v1.10.x and below
820 -- engine.scratchDisable(2);
821 -- }
822 -- }
823 -- }
824 -- else //Default setting where button is not held down.
825 -- {
826 -- DJCRMX2.scratching[1] = false; // Only for v1.10.x and below
827 -- DJCRMX2.scratching[2] = false; // Only for v1.10.x and below
828 -- engine.scratchDisable(1);
829 -- engine.scratchDisable(2);
830 -- }
831 -- return;
832 -+////////////////////////////////////////////////////////////////////////
833 -+// Decks //
834 -+////////////////////////////////////////////////////////////////////////
835 -+
836 -+DJCRMX2.Deck = function(number) {
837 -+ this.number = number;
838 -+ this.group = "[Channel" + this.number + "]";
839 -+ this.scratchTimer = 0;
840 -+};
841 -+
842 -+DJCRMX2.Deck.prototype.wheelPress = function (value) {
843 -+ if (this.scratchTimer != 0) {
844 -+ // The wheel was touched again, reset the timer.
845 -+ engine.stopTimer(this.scratchTimer);
846 -+ this.scratchTimer = 0;
847 -+ }
848 -+ if (value == 0x7F) {
849 -+ // And the jog wheel is pressed down:
850 -+
851 -+ /* engine.scratchEnable(int,int,float,float,float,bool);
852 -+ * [ int deck ] Which track/platter is playing?
853 -+ * [ int intervalsPerRev ] # of MIDI signals sent in 1 spin.
854 -+ * [ float rpm ] Imaginary vinyl rotation speed.
855 -+ * [ float alpha ] Just a fine-tuning variable.
856 -+ * [ float beta ] Just a fine-tuning variable.
857 -+ * [ bool ramp ] As far as I know, nothing...
858 -+ */
859 -+
860 -+ var alpha = 1.0 / 8;
861 -+ var beta = alpha / 32;
862 -+ engine.scratchEnable(this.number, 256, 33 + 1/3, alpha, beta);
863 -+ } else {
864 -+ // The wheel touch sensor can be overly sensitive, so don't release scratch mode right away.
865 -+ // Depending on how fast the platter was moving, lengthen the time we'll wait.
866 -+ var scratchRate = Math.abs(engine.getValue(this.group, "scratch2"));
867 -+ var inertiaTime = Math.pow(1.8, scratchRate) * 50;
868 -+ if (inertiaTime < 100) {
869 -+ // Just do it now.
870 -+ this.finishWheelPress();
871 -+ } else {
872 -+ this.scratchTimer = engine.beginTimer(
873 -+ 100, "DJCRMX2.decks[" + this.number + "].finishWheelPress()", true);
874 -+ }
875 -+ }
876 -+}
877 -+
878 -+DJCRMX2.Deck.prototype.finishWheelPress = function() {
879 -+ this.scratchTimer = 0;
880 -+ var play = engine.getValue(this.group, "play");
881 -+ if (play != 0) {
882 -+ // If we are playing, just hand off to the engine.
883 -+ engine.scratchDisable(this.number, true);
884 -+ } else {
885 -+ // If things are paused, there will be a non-smooth handoff between scratching and jogging.
886 -+ // Instead, keep scratch on until the platter is not moving.
887 -+ var scratchRate = Math.abs(engine.getValue(this.group, "scratch2"));
888 -+ if (scratchRate < 0.01) {
889 -+ // The platter is basically stopped, now we can disable scratch and hand off to jogging.
890 -+ engine.scratchDisable(this.number, false);
891 -+ } else {
892 -+ // Check again soon.
893 -+ this.scratchTimer = engine.beginTimer(
894 -+ 100, "DJCRMX2.decks[" + this.number + "].finishWheelPress()", true);
895 -+ }
896 -+ }
897 -+};
898 -+
899 -+
900 -+/* [ Function wheelTurn ]
901 -+ * Pays attention to the current deck, checks scratching, affects the
902 -+ * song accordingly.
903 -+ */
904 -+DJCRMX2.Deck.prototype.wheelTurn = function (value) {
905 -+ var newValue = 0;
906 -+ // Spinning backwards = 127 or less (less meaning faster)
907 -+ // Spinning forwards = 1 or more (more meaning faster)
908 -+ if (value - 64 > 0) {
909 -+ newValue = value - 128;
910 -+ } else {
911 -+ newValue = value;
912 -+ }
913 -+
914 -+ if (engine.isScratching(this.number)) {
915 -+ engine.scratchTick(this.number, newValue);
916 -+ } else {
917 -+ engine.setValue(this.group, "jog", newValue);
918 -+ }
919 - }
920 -+
921 -+/* [ Function wheelPress ]
922 -+ * Detects whether a jog wheel is pressed or not and sets a specific
923 -+ * variable on and off accordingly.
924 -+ */
925 -+DJCRMX2.wheelPress = function (channel, control, value, status, group) {
926 -+ var deck = 0;
927 -+ if (group == "[Channel1]") {
928 -+ deck = 1;
929 -+ } else if (group == "[Channel2]") {
930 -+ deck = 2;
931 -+ } else {
932 -+ return;
933 -+ }
934 -+ DJCRMX2.decks[deck].wheelPress(value);
935 -+}
936 -+
937 -
938 --/* [ Function wheelTurn ] - Version 0.1.2
939 -- * Pays attention to the current deck, checks scratching, affects the
940 -- * song accordingly.
941 --*/
942 --DJCRMX2.wheelTurn = function (channel, control, value, status, group){
943 -- var newValue=0;
944 -- // Spinning backwards = 127 or less (less meaning faster)
945 -- // Spinning forwards = 1 or more (more meaning faster)
946 -- if (value-64 > 0) newValue = (value-128);
947 -- else newValue=value;
948 -- //if (!engine.isScratching(DJCRMX2.currentDeck)) // [FUT]
949 -- if(group=="[Channel1]")
950 -- {
951 -- if(DJCRMX2.scratching[1]==true) {engine.scratchTick(1,newValue);return;}
952 -- }
953 -- else if(group=="[Channel2]")
954 -- {
955 -- if(DJCRMX2.scratching[2]==true) {engine.scratchTick(2,newValue);return;}
956 -- }
957 -- engine.setValue(group, "jog", newValue);
958 -- return;
959 -+/* [ Function wheelTurn ]
960 -+ * Pays attention to the current deck, checks scratching, affects the
961 -+ * song accordingly.
962 -+ */
963 -+DJCRMX2.wheelTurn = function (channel, control, value, status, group) {
964 -+ var deck = 0;
965 -+ if (group == "[Channel1]") {
966 -+ deck = 1;
967 -+ } else if (group == "[Channel2]") {
968 -+ deck = 2;
969 -+ } else {
970 -+ return;
971 -+ }
972 -+ DJCRMX2.decks[deck].wheelTurn(value);
973 - }
974 -
975 --DJCRMX2.micSwitch = function (channel, control, value, status) //???
976 -+DJCRMX2.micSwitch = function (channel, control, value, status)
977 - {
978 -- if(status == 0x90 && control == 0x48 && value == 0x7F)
979 -- {
980 -- engine.setValue("[Microphone]","enabled",1);
981 -- engine.setValue("[Microphone]","talkover",1);
982 -- }
983 -- if(status == 0x90 && control == 0x48 && value == 0x00)
984 -- {
985 -- engine.setValue("[Microphone]","enabled",0);
986 -- engine.setValue("[Microphone]","talkover",0);
987 -- }
988 -+ if (status == 0x90 && control == 0x48 && value == 0x7F) {
989 -+ engine.setValue("[Microphone]","enabled",1);
990 -+ engine.setValue("[Microphone]","talkover",1);
991 -+ } else if (status == 0x90 && control == 0x48 && value == 0x00) {
992 -+ engine.setValue("[Microphone]","enabled",0);
993 -+ engine.setValue("[Microphone]","talkover",0);
994 -+ }
995 - }
996 -
997 --/* [ Function shutdown ] - Version 0.1.3
998 -- * Sets variables down for shutoff.
999 --*/
1000 --DJCRMX2.shutdown = function(id){
1001 -- DJCRMX2.scratching[1]=false;
1002 -- DJCRMX2.scratching[2]=false;
1003 -- engine.setValue("[Microphone]","enabled",0);
1004 -- engine.setValue("[Microphone]","talkover",0);
1005 -+/* [ Function shutdown ] - Version 0.1.3
1006 -+ * Sets variables down for shutoff.
1007 -+ */
1008 -+DJCRMX2.shutdown = function (id) {
1009 -+ engine.setValue("[Microphone]", "enabled", 0);
1010 -+ engine.setValue("[Microphone]", "talkover", 0);
1011 - }
1012
1013 diff --git a/media-sound/mixxx/files/mixxx-2.0.0-sqlite3.patch b/media-sound/mixxx/files/mixxx-2.0.0-sqlite3.patch
1014 deleted file mode 100644
1015 index a8cb15e63c6..00000000000
1016 --- a/media-sound/mixxx/files/mixxx-2.0.0-sqlite3.patch
1017 +++ /dev/null
1018 @@ -1,14 +0,0 @@
1019 -https://bugs.gentoo.org/622776
1020 -
1021 ---- mixxx-2.0.0/src/library/trackcollection.h
1022 -+++ mixxx-2.0.0/src/library/trackcollection.h
1023 -@@ -34,8 +34,7 @@
1024 - #include "library/dao/libraryhashdao.h"
1025 -
1026 - #ifdef __SQLITE3__
1027 --typedef struct sqlite3_context sqlite3_context;
1028 --typedef struct Mem sqlite3_value;
1029 -+#include <sqlite3.h>
1030 - #endif
1031 -
1032 - class TrackInfoObject;
1033
1034 diff --git a/media-sound/mixxx/mixxx-2.0.0-r5.ebuild b/media-sound/mixxx/mixxx-2.0.0-r5.ebuild
1035 deleted file mode 100644
1036 index a8fcb5ca5c8..00000000000
1037 --- a/media-sound/mixxx/mixxx-2.0.0-r5.ebuild
1038 +++ /dev/null
1039 @@ -1,144 +0,0 @@
1040 -# Copyright 1999-2018 Gentoo Foundation
1041 -# Distributed under the terms of the GNU General Public License v2
1042 -
1043 -EAPI=6
1044 -
1045 -inherit flag-o-matic scons-utils toolchain-funcs
1046 -
1047 -DESCRIPTION="Advanced Digital DJ tool based on Qt"
1048 -HOMEPAGE="https://www.mixxx.org/"
1049 -SRC_URI="https://downloads.${PN}.org/${P}/${P}-src.tar.gz"
1050 -
1051 -# Upstream patches
1052 -SRC_URI+=" https://github.com/mixxxdj/mixxx/commit/51d95ba58d99309f439cb7e2d1285cfb33aa0f63.patch -> ${PN}-2.0.0-ffmpeg30.patch"
1053 -SRC_URI+=" https://github.com/mixxxdj/mixxx/commit/869e07067b15e09bf7ef886a8772afdfb79cbc3c.patch -> ${PN}-2.0.0-ffmpeg31.patch"
1054 -
1055 -LICENSE="GPL-2"
1056 -SLOT="0"
1057 -KEYWORDS="amd64 x86"
1058 -IUSE="aac debug doc ffmpeg hid mp3 mp4 opus shout wavpack"
1059 -
1060 -# fails to compile system-fidlib. Add ">media-libs/fidlib-0.9.10-r1" once this
1061 -# got fixed
1062 -RDEPEND="
1063 - dev-db/sqlite
1064 - dev-libs/protobuf:0=
1065 - dev-qt/qtconcurrent:5
1066 - dev-qt/qtcore:5
1067 - dev-qt/qtgui:5
1068 - dev-qt/qtnetwork:5
1069 - dev-qt/qtopengl:5
1070 - dev-qt/qtscript:5[scripttools]
1071 - dev-qt/qtsql:5
1072 - dev-qt/qtsvg:5
1073 - dev-qt/qtwidgets:5
1074 - dev-qt/qtxml:5
1075 - media-libs/chromaprint
1076 - media-libs/flac
1077 - media-libs/libid3tag
1078 - media-libs/libogg
1079 - media-libs/libsndfile
1080 - >=media-libs/libsoundtouch-1.5
1081 - media-libs/libvorbis
1082 - >=media-libs/portaudio-19_pre
1083 - media-libs/portmidi
1084 - media-libs/rubberband
1085 - media-libs/taglib
1086 - media-libs/vamp-plugin-sdk
1087 - sci-libs/fftw:3.0=
1088 - virtual/libusb:1
1089 - virtual/opengl
1090 - x11-libs/libX11
1091 - aac? (
1092 - media-libs/faad2
1093 - media-libs/libmp4v2:0
1094 - )
1095 - hid? ( dev-libs/hidapi )
1096 - mp3? ( media-libs/libmad )
1097 - mp4? ( media-libs/libmp4v2:= )
1098 - opus? ( media-libs/opusfile )
1099 - shout? ( media-libs/libshout )
1100 - wavpack? ( media-sound/wavpack )
1101 - ffmpeg? ( media-video/ffmpeg:0= )
1102 -"
1103 -# media-libs/rubberband RDEPENDs on sci-libs/fftw:3.0
1104 -DEPEND="
1105 - ${RDEPEND}
1106 - virtual/pkgconfig
1107 - dev-qt/qttest:5
1108 - dev-qt/qtxmlpatterns:5
1109 -"
1110 -
1111 -PATCHES=(
1112 - "${FILESDIR}"/${PN}-2.0.0-docs.patch
1113 -
1114 - "${DISTDIR}"/${P}-ffmpeg30.patch
1115 - "${DISTDIR}"/${P}-ffmpeg31.patch
1116 -
1117 - "${FILESDIR}"/${P}-chromaprint-1.4.patch #604528
1118 - "${FILESDIR}"/${P}-gcc62.patch #595090
1119 -
1120 - "${FILESDIR}"/${PN}-2.0.0-sqlite3.patch #622776
1121 -
1122 - # The following patches were taken from sunny-overlay (bug #608430)
1123 - "${FILESDIR}"/${P}-fix-formatting-of-time-durations.patch
1124 - "${FILESDIR}"/${P}-eliminate-unnecessary-heap-allocation-of-qtime.patch
1125 - "${FILESDIR}"/${P}-fix-missing-pointer-initialization.patch
1126 - "${FILESDIR}"/${P}-move-definition-of-time-formatseconds-into-dot-cpp-file.patch
1127 - "${FILESDIR}"/${P}-fix-formatting-of-time-durations2.patch
1128 - "${FILESDIR}"/${P}-rmx2-backport-controller-scripts.patch
1129 -)
1130 -
1131 -src_prepare() {
1132 - # use multilib compatible directory for plugins
1133 - sed -i -e "/unix_lib_path =/s/'lib'/'$(get_libdir)'/" src/SConscript || die
1134 -
1135 - default
1136 -}
1137 -
1138 -src_configure() {
1139 - local myoptimize=0
1140 -
1141 - # Required for >=qt-5.7.0 (bug #590690)
1142 - append-cxxflags -std=c++11
1143 -
1144 - # Try to get cpu type based on CFLAGS.
1145 - # Bug #591968
1146 - for i in $(get-flag mcpu) $(get-flag march) ; do
1147 - if [[ ${i} = native ]] ; then
1148 - myoptimize="native"
1149 - break
1150 - fi
1151 - done
1152 -
1153 - myesconsargs=(
1154 - prefix="${EPREFIX}/usr"
1155 - qtdir="${EPREFIX}/usr/$(get_libdir)/qt5"
1156 - faad="$(usex aac 1 0)"
1157 - ffmpeg="$(usex ffmpeg 1 0)"
1158 - hid="$(usex hid 1 0)"
1159 - hifieq=1
1160 - m4a="$(usex mp4 1 0)"
1161 - mad="$(usex mp3 1 0)"
1162 - optimize="${myoptimize}"
1163 - opus="$(usex opus 1 0)"
1164 - qdebug="$(usex debug 1 0)"
1165 - qt5=1
1166 - shoutcast="$(usex shout 1 0)"
1167 - vinylcontrol=1
1168 - wv="$(usex wavpack 1 0)"
1169 - )
1170 -}
1171 -
1172 -src_compile() {
1173 - CC="$(tc-getCC)" CXX="$(tc-getCXX)" LINKFLAGS="${LDFLAGS}" \
1174 - LIBDIR="${EPREFIX}/usr/$(get_libdir)" escons ${myesconsargs[@]}
1175 -}
1176 -
1177 -src_install() {
1178 - CC="$(tc-getCC)" CXX="$(tc-getCXX)" LINKFLAGS="${LDFLAGS}" \
1179 - LIBDIR="${EPREFIX}/usr/$(get_libdir)" escons ${myesconsargs[@]} \
1180 - install_root="${ED}"/usr install
1181 -
1182 - dodoc README Mixxx-Manual.pdf
1183 -}