diff --git a/media-sound/mixxx/Manifest b/media-sound/mixxx/Manifest deleted file mode 100644 index bbd4134..0000000 --- a/media-sound/mixxx/Manifest +++ /dev/null @@ -1,13 +0,0 @@ -AUX mixxx-2.0.0-chromaprint-1.4.patch 1518 SHA256 dd2ee40a6dc2081f9c6592eb9f69001d85fb6fd7eb1860948f2b46c8e864e445 SHA512 31da87b64646188be144611fc6f601d58edfcf9e63b5382060f5088797c24d61ff4b48a4e80c5c3b919b7291287d3977c0f61829ddfe7a43f9fbae7db3b735c0 WHIRLPOOL 9dbcfa9fb14306d43b0294a5d4fc45a2c3644ba83b37868056e76b2c9e77822447ae0a5a8c94140f705f94e847da7a83b8ba5b8f23ba98989fd4423d6ca3bdd4 -AUX mixxx-2.0.0-docs.patch 435 SHA256 133436b8897de326be53e82ca09ce51a8fb956cd8d8c8f3e450ab7d00b50318c SHA512 01ab76466f782f538c894e460f7694553ae12804651f68aabb6aaa0dbdc89e2ff7e2b51529b0f112cee42c8053b75fc64241a9c8898def8cf1c76231b1ec5d59 WHIRLPOOL 9155ef87f9958927bb046a4359a2e7a74210d01dc259df772c8bf97a23081f1fd9e39fa7cd108d90fca502bd366770ad1b656809e431ba45a287fd67289bf98a -AUX mixxx-2.0.0-eliminate-unnecessary-heap-allocation-of-qtime.patch 1615 SHA256 6e0bb9063974a39384af2a4c9a55c64bd5187fe341d28d0bbff3da4a126322ae SHA512 825599d1bdfbcc673c64226bde25f2ae56b046d32139c3347cb2aae698aa27158b17609dd097ce772e62bcd58b7f711d352386069683239541f3f4160dc6d915 WHIRLPOOL 697f730c9bda3d62935b335b3cf79bbd71d2e8d379a7e839f58515b914c5a403fbcaa2b10c3f0f16bdbd9634e7d3974cbe6384f5a90926e3353c88c9d27f7281 -AUX mixxx-2.0.0-fix-formatting-of-time-durations.patch 866 SHA256 8b3da1f2ce481748926d0447ef41bea6c136e53cd146fd5f2a753250406edc00 SHA512 4850724ba1a6809a242976dcec5337b1f9c6c8c93c60c3ce5fa9cf6b6b714aa83485e58e7b97f849720da17e664c89adf33ed53d73d13d249a01700f638de3e2 WHIRLPOOL 43fb9d37735f7da3337c85974062dbe8d4afee544c8b650168bf236088c18b5229a8089b9f250ae5959bb4550e7a11c699c2ef7fdb93c645559a709d2d76e877 -AUX mixxx-2.0.0-fix-formatting-of-time-durations2.patch 5912 SHA256 8188c3019cc7eea1f4c4bae1ea55bf807461e8f78d3c9b0a8a97dc66899886f0 SHA512 c7e7480fb6880e3543ade9455cafa9ef1cfdde0af813cb54c8dc3cd98ad964dcdf7b2c4b209dac89d7654551e54dc0bd185fb00783c0f0507f0f72f21d61a599 WHIRLPOOL 1758e747abf003aa325e45bb7bd81499126a896e2034c0cdd8192623e4fd7c1d6fccbfa7b2ccd634a5396735b52e6e6e444e98b578bd6d9b6f9b3283daaf7ef3 -AUX mixxx-2.0.0-fix-missing-pointer-initialization.patch 9702 SHA256 2cd076c5c09ed5bbbececc91659ee6f70e6fcf4d61fd9be8b58f6fd9e7cc9cad SHA512 048f74fb3c0079f5935f41a4a3b5c04a691f6eaec199a8261dba119e8fa2efe15c4f8e6c24befbfadb7cf1af3db49c75ac52b3a265f52480889d4f9c9ad89eba WHIRLPOOL 4e362b72da4013b35128806515837470f788ef32daa8860318a8bb67479139bf7f1d627f79d6c14a841a527280ae0215ef8580695f2080ce30e97549a35a7cca -AUX mixxx-2.0.0-move-definition-of-time-formatseconds-into-dot-cpp-file.patch 3113 SHA256 487e3c5b180599a480f92c58c15abe3ae3ac4b53b61c759ac98202537dbf3107 SHA512 73ea80adbc32cf8c087cd97d8c8225f1d94ea138835557dac1f8b9cd8e4415ae0f6eb4548a6581aa4a8d3bada01f7c6ad3a538d3907c233a69327f4b3d31b316 WHIRLPOOL d687ba5c3f7cb43ced241f3d98206b6237fd7e37eb52529b7f18b1567308e8748fb6ba1876168f0d68012116c9297e0e5bd73a0bd6001ed863f540c480502039 -AUX mixxx-2.0.0-rmx2-backport-controller-scripts.patch 10840 SHA256 515b8f1d16d13a299770400fb0dfdb09aeaf9dee6c03b94cb73742fd0464f755 SHA512 6ffced1c2368b1c5ad2cadf72fd21c917626318784cfcdbaf2d85ac63955ecdb96aefafd268a005962ced766cf8150b3daf409d587edab6a8b854ab6c7e812c5 WHIRLPOOL 03fb90054dcd30d0b7fb412d46c685cd49b1ed4ea029d7e4b8de56578899e47b1269102fbfc9940190babe1454cc1007653618fe2ceda507cdf27bfadc92955c -DIST mixxx-2.0.0-ffmpeg30.patch 714 SHA256 a5b6e8fd94ae6572efbff79529dcdb8ec2fc78a2c8fc0864d222516c8dc7b272 SHA512 60788ecab1fa92b825815fff5dfdfefe02fb097e46f7f55f318bb8a8677da42e4601cce51eaaec51988990eebb72d59346d1ec45ed76cac3c8a7f9a9d1e8cf54 WHIRLPOOL 8c780336a5f86ba8134603c1f5e3dd310006f62abe228edb2390e611f2734b0ee7c0bfe5cd91de7fab28e56809804c95fd26da6d198513fc705263e8ceca1612 -DIST mixxx-2.0.0-ffmpeg31.patch 2844 SHA256 d03109463fa1191ca07bc2be6b6503c4b57272e97064f99aae812e132737f905 SHA512 7207ad72d0ea851b1425ff7472aafe5f828ca70aad0821a1ef1eb54845527532489ac7913f6584e3af5fb53bf3459abc173fbf482f83be8a22358d28b1b5cf74 WHIRLPOOL 9284dd52c4ffe04ca7977dc4ee1b6c3a6396375a48dcb9673f39a5ceb2698021f93984d57a774b36b3dfaffa15f9ca603eeae169fa146e9951da0a587fed34dd -DIST mixxx-2.0.0-src.tar.gz 25300881 SHA256 e1b8f33bba35046608578095ed3209967034579252d84c99e6bc03ec030f676d SHA512 8878c0f785e4c5f67724deeca61154d2587969a81d28aef8fa9d526aec8419a218ce2a7ef88d6fcf468d30fa13d31ac9a56ca9082431a35b7e4e040a7ccfbb1a WHIRLPOOL d3e4cf26846b54380f9b11eed26b90cf031a902ca82f20e71f85fb495f99179e8d783f2ba92b51d21fcc77d4779b7bcc16d8456a68e890cfe77daa57f0d3b431 -EBUILD mixxx-2.0.0-r3.ebuild 3496 SHA256 3933384324222e304c84e3c8af6fb8f0538135bc2e4555db8d5fb2f535936694 SHA512 bc86c60e26cba080f234bdbff0a69086389d53a9291b37aa1cf11899f2a740a0c1873b77e8045e64fc0201d882e14cb480d409cb55c5ec65fa30e244622cdb7e WHIRLPOOL 9d9927ac3e1e8051c564cca7d87a5755ec106b526da00f5ae17fd39902c15746d1d52b09298e22bb827ad1be1ed3d2a0e12b9e0b8f5b045a03d6a2187bc6d6ab -MISC metadata.xml 561 SHA256 fac51b210ada59f2b25d7b091e0fedbfe8a67b22a6028a2a4da0fac9a6de00a8 SHA512 d8bddfe2914053823ef2366f67472bc19160c053bc8942b96036ee49d581ea496c0bc4788028d3bcd5b546c43483c26deb2917724b525f9040c36a14ab222f2b WHIRLPOOL 7afc7b47f36f06a632fc70b652cf5cbcf88ff69268493136a516c79256c283f720dd25d6ff874dedca12773896488be54a143673d1af6f578df44f99f8f036f8 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 deleted file mode 100644 index 77827f3..0000000 --- a/media-sound/mixxx/files/mixxx-2.0.0-chromaprint-1.4.patch +++ /dev/null @@ -1,40 +0,0 @@ -Backported chromaprint-1.4 API changes based on the fix suggested in: -https://github.com/mixxxdj/mixxx/pull/1073 - -and the work done by Charlie Gehlin in: -https://bugs.gentoo.org/604528 - ---- mixxx-2.0.0/src/musicbrainz/chromaprinter.cpp -+++ mixxx-2.0.0/src/musicbrainz/chromaprinter.cpp -@@ -25,6 +25,16 @@ - - QString ChromaPrinter::calcFingerPrint(const Mixxx::SoundSourcePointer& pSoundSource) { - -+ // Type declarations of *fprint and *encoded pointers need to account for Chromaprint API version -+ // (void* -> uint32_t*) and (void* -> char*) changed in versions v1.4.0 or later -- alyptik 12/2016 -+ #if (CHROMAPRINT_VERSION_MINOR > 3) || (CHROMAPRINT_VERSION_MAJOR > 1) -+ typedef uint32_t* uint32_p; -+ typedef char* char_p; -+ #else -+ typedef void* uint32_p; -+ typedef void* char_p; -+ #endif -+ - // this is worth 2min of audio, multiply by 2 because we have 2 channels - // AcoustID only stores a fingerprint for the first two minutes of a song - // on their server so we need only a fingerprint of the first two minutes -@@ -57,12 +67,12 @@ - } - chromaprint_finish(ctx); - -- void* fprint = NULL; -+ uint32_p fprint = NULL; - int size = 0; - int ret = chromaprint_get_raw_fingerprint(ctx, &fprint, &size); - QByteArray fingerprint; - if (ret == 1) { -- void* encoded = NULL; -+ char_p encoded = NULL; - int encoded_size = 0; - chromaprint_encode_fingerprint(fprint, size, - CHROMAPRINT_ALGORITHM_DEFAULT, diff --git a/media-sound/mixxx/files/mixxx-2.0.0-docs.patch b/media-sound/mixxx/files/mixxx-2.0.0-docs.patch deleted file mode 100644 index 702ce6c..0000000 --- a/media-sound/mixxx/files/mixxx-2.0.0-docs.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- mixxx-9999/src/SConscript -+++ mixxx-9999/src/SConscript -@@ -290,7 +290,6 @@ - env.Alias('install', controllermappings) - env.Alias('install', translations) - env.Alias('install', keyboardmappings) -- env.Alias('install', docs) - env.Alias('install', dotdesktop) - env.Alias('install', icon) - env.Alias('install', promotracks) 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 deleted file mode 100644 index 04538a0..0000000 --- a/media-sound/mixxx/files/mixxx-2.0.0-eliminate-unnecessary-heap-allocation-of-qtime.patch +++ /dev/null @@ -1,55 +0,0 @@ -diff -dNur a/src/analyserwaveform.cpp b/src/analyserwaveform.cpp ---- a/src/analyserwaveform.cpp 2015-12-29 17:10:41.000000000 +0100 -+++ b/src/analyserwaveform.cpp 2017-02-04 21:12:30.127952910 +0100 -@@ -1,6 +1,3 @@ --#include --#include --#include - #include - - #include "analyserwaveform.h" -@@ -40,7 +37,6 @@ - } - } - -- m_timer = new QTime(); - m_analysisDao = new AnalysisDao(m_database, pConfig); - } - -@@ -48,14 +44,13 @@ - qDebug() << "AnalyserWaveform::~AnalyserWaveform()"; - destroyFilters(); - m_database.close(); -- delete m_timer; - delete m_analysisDao; - } - - bool AnalyserWaveform::initialise(TrackPointer tio, int sampleRate, int totalSamples) { - m_skipProcessing = false; - -- m_timer->start(); -+ m_timer.start(); - - if (totalSamples == 0) { - qWarning() << "AnalyserWaveform::initialise - no waveform/waveform summary"; -@@ -320,7 +315,7 @@ - #endif - - qDebug() << "Waveform generation for track" << tio->getId() << "done" -- << m_timer->elapsed()/1000.0 << "s"; -+ << m_timer.elapsed()/1000.0 << "s"; - } - - void AnalyserWaveform::storeIfGreater(float* pDest, float source) { -diff -dNur a/src/analyserwaveform.h b/src/analyserwaveform.h ---- a/src/analyserwaveform.h 2015-12-29 17:10:41.000000000 +0100 -+++ b/src/analyserwaveform.h 2017-02-04 21:12:45.367713395 +0100 -@@ -171,7 +171,7 @@ - EngineFilterIIRBase* m_filter[FilterCount]; - std::vector m_buffers[FilterCount]; - -- QTime* m_timer; -+ QTime m_timer; - QSqlDatabase m_database; - AnalysisDao* m_analysisDao; - 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 deleted file mode 100644 index 654c01f..0000000 --- a/media-sound/mixxx/files/mixxx-2.0.0-fix-formatting-of-time-durations.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 76c53b0f0a2be7b5cf85fa523f3521a5725affb2 Mon Sep 17 00:00:00 2001 -From: Uwe Klotz -Date: Fri, 8 Jan 2016 18:22:33 +0100 -Subject: [PATCH] Fix formatting of time durations - ---- - src/util/time.h | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/src/util/time.h b/src/util/time.h -index 29187ad..7b38eb4 100644 ---- a/src/util/time.h -+++ b/src/util/time.h -@@ -75,7 +75,9 @@ class Time { - const int days = static_cast(dSeconds) / kSecondsPerDay; - dSeconds -= days * kSecondsPerDay; - -- QTime t = QTime().addMSecs(dSeconds * kMillisPerSecond); -+ // NOTE(uklotzde): Time() constructs a 'null' object, but -+ // we need 'zero' here. -+ QTime t = QTime(0, 0).addMSecs(dSeconds * kMillisPerSecond); - - QString formatString = - (days > 0 ? (QString::number(days) % 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 deleted file mode 100644 index f8c041e..0000000 --- a/media-sound/mixxx/files/mixxx-2.0.0-fix-formatting-of-time-durations2.patch +++ /dev/null @@ -1,139 +0,0 @@ -diff -dNur a/src/library/basesqltablemodel.cpp b/src/library/basesqltablemodel.cpp ---- a/src/library/basesqltablemodel.cpp 2015-12-29 17:10:41.000000000 +0100 -+++ b/src/library/basesqltablemodel.cpp 2017-02-04 21:33:39.403861857 +0100 -@@ -559,7 +559,7 @@ - if (column == fieldIndex(ColumnCache::COLUMN_LIBRARYTABLE_DURATION)) { - int duration = value.toInt(); - if (duration > 0) { -- value = Time::formatSeconds(duration, false); -+ value = Time::formatSeconds(duration); - } else { - value = QString(); - } -diff -dNur a/src/library/browse/browsethread.cpp b/src/library/browse/browsethread.cpp ---- a/src/library/browse/browsethread.cpp 2015-12-29 17:10:41.000000000 +0100 -+++ b/src/library/browse/browsethread.cpp 2017-02-04 21:32:23.605066421 +0100 -@@ -185,8 +185,7 @@ - item->setData(item->text(), Qt::UserRole); - row_data.insert(COLUMN_COMMENT, item); - -- QString duration = Time::formatSeconds(qVariantValue( -- tio.getDuration()), false); -+ QString duration = Time::formatSeconds(tio.getDuration()); - item = new QStandardItem(duration); - item->setToolTip(item->text()); - item->setData(item->text(), Qt::UserRole); -diff -dNur a/src/library/cratefeature.cpp b/src/library/cratefeature.cpp ---- a/src/library/cratefeature.cpp 2015-12-29 17:10:41.000000000 +0100 -+++ b/src/library/cratefeature.cpp 2017-02-04 21:30:54.962474898 +0100 -@@ -493,7 +493,7 @@ - crateListTableModel.index(row, durationColumn)).toInt(); - m_crateList.append(qMakePair(id, QString("%1 (%2) %3") - .arg(name, QString::number(count), -- Time::formatSeconds(duration, false)))); -+ Time::formatSeconds(duration)))); - } - } - -diff -dNur a/src/library/playlistfeature.cpp b/src/library/playlistfeature.cpp ---- a/src/library/playlistfeature.cpp 2015-12-29 17:10:41.000000000 +0100 -+++ b/src/library/playlistfeature.cpp 2017-02-04 21:33:06.920378091 +0100 -@@ -168,7 +168,7 @@ - playlistTableModel.index(row, durationColumn)).toInt(); - m_playlistList.append(qMakePair(id, QString("%1 (%2) %3") - .arg(name, QString::number(count), -- Time::formatSeconds(duration, false)))); -+ Time::formatSeconds(duration)))); - } - } - -diff -dNur a/src/trackinfoobject.cpp b/src/trackinfoobject.cpp ---- a/src/trackinfoobject.cpp 2015-12-29 17:10:41.000000000 +0100 -+++ b/src/trackinfoobject.cpp 2017-02-04 21:42:36.423323807 +0100 -@@ -293,7 +293,7 @@ - int iDuration = m_iDuration; - lock.unlock(); - -- return Time::formatSeconds(iDuration, false); -+ return Time::formatSeconds(iDuration); - } - - void TrackInfoObject::setLocation(const QString& location) { -diff -dNur a/src/util/time.cpp b/src/util/time.cpp ---- a/src/util/time.cpp 2017-02-04 21:29:44.439595305 +0100 -+++ b/src/util/time.cpp 2017-02-04 21:37:54.739803100 +0100 -@@ -1,5 +1,7 @@ - #include "util/time.h" - -+#include "util/assert.h" -+ - // static - LLTIMER Time::s_timer; - // static -@@ -8,7 +10,7 @@ - qint64 Time::s_testElapsed_nsecs = 0; - - // static --QString Time::formatSeconds(double dSeconds, bool showCentis) { -+QString Time::formatSeconds(double dSeconds, Precision precision) { - if (dSeconds < 0) { - return "?"; - } -@@ -24,13 +26,14 @@ - (days > 0 ? (QString::number(days) % - QLatin1String("'d', ")) : QString()) % - QLatin1String(days > 0 || t.hour() > 0 ? "hh:mm:ss" : "mm:ss") % -- QLatin1String(showCentis ? ".zzz" : ""); -+ QLatin1String(Precision::SECONDS == precision ? "" : ".zzz"); - - QString timeString = t.toString(formatString); - - // The format string gives us milliseconds but we want - // centiseconds. Slice one character off. -- if (showCentis) { -+ if (Precision::CENTISECONDS == precision) { -+ DEBUG_ASSERT(1 <= timeString.length()); - timeString = timeString.left(timeString.length() - 1); - } - -diff -dNur a/src/util/time.h b/src/util/time.h ---- a/src/util/time.h 2017-02-04 21:29:44.439595305 +0100 -+++ b/src/util/time.h 2017-02-04 21:41:01.476833822 +0100 -@@ -55,10 +55,17 @@ - s_testElapsed_nsecs = elapsed * 1000000; - } - -- // The standard way of formatting a time in seconds. Used for display of -- // track duration, etc. showCentis indicates whether to include -- // centisecond-precision or to round to the nearest second. -- static QString formatSeconds(double dSeconds, bool showCentis); -+ enum class Precision { -+ SECONDS, -+ CENTISECONDS, -+ MILLISECONDS -+ }; -+ -+ // The standard way of formatting a time in seconds. Used for display -+ // of track duration, etc. -+ static QString formatSeconds( -+ double dSeconds, -+ Precision precision = Time::Precision::SECONDS); - - private: - static LLTIMER s_timer; -diff -dNur a/src/widget/wnumberpos.cpp b/src/widget/wnumberpos.cpp ---- a/src/widget/wnumberpos.cpp 2015-12-29 17:10:41.000000000 +0100 -+++ b/src/widget/wnumberpos.cpp 2017-02-04 21:41:57.023950430 +0100 -@@ -92,10 +92,10 @@ - QString valueString; - if (valueMillis >= 0) { - valueString = m_skinText % Time::formatSeconds( -- valueMillis / Time::kMillisPerSecond, true); -+ valueMillis / Time::kMillisPerSecond, Time::Precision::MILLISECONDS); - } else { - valueString = m_skinText % QLatin1String("-") % Time::formatSeconds( -- -valueMillis / Time::kMillisPerSecond, true); -+ -valueMillis / Time::kMillisPerSecond, Time::Precision::CENTISECONDS); - } - setText(valueString); - } 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 deleted file mode 100644 index 3364995..0000000 --- a/media-sound/mixxx/files/mixxx-2.0.0-fix-missing-pointer-initialization.patch +++ /dev/null @@ -1,271 +0,0 @@ -diff -dNur a/src/analyserwaveform.cpp b/src/analyserwaveform.cpp ---- a/src/analyserwaveform.cpp 2017-02-04 21:14:33.266016824 +0100 -+++ b/src/analyserwaveform.cpp 2017-02-04 21:19:09.205671982 +0100 -@@ -11,8 +11,8 @@ - - AnalyserWaveform::AnalyserWaveform(ConfigObject* pConfig) : - m_skipProcessing(false), -- m_waveformData(NULL), -- m_waveformSummaryData(NULL), -+ m_waveformData(nullptr), -+ m_waveformSummaryData(nullptr), - m_stride(0, 0), - m_currentStride(0), - m_currentSummaryStride(0) { -@@ -37,14 +37,13 @@ - } - } - -- m_analysisDao = new AnalysisDao(m_database, pConfig); -+ m_pAnalysisDao = std::make_unique(m_database, pConfig); - } - - AnalyserWaveform::~AnalyserWaveform() { - qDebug() << "AnalyserWaveform::~AnalyserWaveform()"; - destroyFilters(); - m_database.close(); -- delete m_analysisDao; - } - - bool AnalyserWaveform::initialise(TrackPointer tio, int sampleRate, int totalSamples) { -@@ -115,7 +114,7 @@ - - if (trackId != -1 && (missingWaveform || missingWavesummary)) { - QList analyses = -- m_analysisDao->getAnalysesForTrack(trackId); -+ m_pAnalysisDao->getAnalysesForTrack(trackId); - - QListIterator it(analyses); - while (it.hasNext()) { -@@ -130,7 +129,7 @@ - missingWaveform = false; - } else if (vc != WaveformFactory::VC_KEEP) { - // remove all other Analysis except that one we should keep -- m_analysisDao->deleteAnalysis(analysis.analysisId); -+ m_pAnalysisDao->deleteAnalysis(analysis.analysisId); - } - } if (analysis.type == AnalysisDao::TYPE_WAVESUMMARY) { - vc = WaveformFactory::waveformSummaryVersionToVersionClass(analysis.version); -@@ -140,7 +139,7 @@ - missingWavesummary = false; - } else if (vc != WaveformFactory::VC_KEEP) { - // remove all other Analysis except that one we should keep -- m_analysisDao->deleteAnalysis(analysis.analysisId); -+ m_pAnalysisDao->deleteAnalysis(analysis.analysisId); - } - } - } -@@ -273,13 +272,13 @@ - tio->setWaveform(ConstWaveformPointer()); - // Since clear() could delete the waveform, clear our pointer to the - // waveform's vector data first. -- m_waveformData = NULL; -+ m_waveformData = nullptr; - m_waveform.clear(); - - tio->setWaveformSummary(ConstWaveformPointer()); - // Since clear() could delete the waveform, clear our pointer to the - // waveform's vector data first. -- m_waveformSummaryData = NULL; -+ m_waveformSummaryData = nullptr; - m_waveformSummary.clear(); - } - -@@ -295,7 +294,7 @@ - m_waveform->setDescription(WaveformFactory::currentWaveformDescription()); - // Since clear() could delete the waveform, clear our pointer to the - // waveform's vector data first. -- m_waveformData = NULL; -+ m_waveformData = nullptr; - m_waveform.clear(); - } - -@@ -306,7 +305,7 @@ - m_waveformSummary->setDescription(WaveformFactory::currentWaveformSummaryDescription()); - // Since clear() could delete the waveform, clear our pointer to the - // waveform's vector data first. -- m_waveformSummaryData = NULL; -+ m_waveformSummaryData = nullptr; - m_waveformSummary.clear(); - } - -diff -dNur a/src/analyserwaveform.h b/src/analyserwaveform.h ---- a/src/analyserwaveform.h 2017-02-04 21:14:33.266016824 +0100 -+++ b/src/analyserwaveform.h 2017-02-04 21:20:17.308598419 +0100 -@@ -4,12 +4,14 @@ - #include - #include - #include -+ - #include - - #include "configobject.h" - #include "analyser.h" - #include "waveform/waveform.h" - #include "util/math.h" -+#include "util/memory.h" - - //NOTS vrince some test to segment sound, to apply color in the waveform - //#define TEST_HEAT_MAP -@@ -173,7 +175,7 @@ - - QTime m_timer; - QSqlDatabase m_database; -- AnalysisDao* m_analysisDao; -+ std::unique_ptr m_pAnalysisDao; - - #ifdef TEST_HEAT_MAP - QImage* test_heatMap; -diff -dNur a/src/util/memory.h b/src/util/memory.h ---- a/src/util/memory.h 1970-01-01 01:00:00.000000000 +0100 -+++ b/src/util/memory.h 2017-02-04 22:19:41.846922929 +0100 -@@ -0,0 +1,149 @@ -+// Taken from https://github.com/bstreiff/cppbits -+// Thank you Brandon Streiff! -+ -+// Implementation of C++14's make_unique for C++11 compilers. -+// -+// This has been tested with: -+// - MSVC 11.0 (Visual Studio 2012) -+// - gcc 4.6.3 -+// - Xcode 4.4 (with clang "4.0") -+// -+// It is based off an implementation proposed by Stephan T. Lavavej for -+// inclusion in the C++14 standard: -+// http://isocpp.org/files/papers/N3656.txt -+// Where appropriate, it borrows the use of MSVC's _VARIADIC_EXPAND_0X macro -+// machinery to compensate for lack of variadic templates. -+// -+// This file injects make_unique into the std namespace, which I acknowledge is -+// technically forbidden ([C++11: 17.6.4.2.2.1/1]), but is necessary in order -+// to have syntax compatibility with C++14. -+// -+// I perform compiler version checking for MSVC, gcc, and clang to ensure that -+// we don't add make_unique if it is already there (instead, we include -+// to get the compiler-provided one). You can override the compiler -+// version checking by defining the symbol COMPILER_SUPPORTS_MAKE_UNIQUE. -+// -+// -+// =============================================================================== -+// This file is released into the public domain. See LICENCE for more information. -+// =============================================================================== -+ -+#ifndef MIXXX_UTIL_MEMORY_H -+#define MIXXX_UTIL_MEMORY_H -+ -+// If user hasn't specified COMPILER_SUPPORTS_MAKE_UNIQUE then try to figure out -+// based on compiler version if std::make_unique is provided. -+#if !defined(COMPILER_SUPPORTS_MAKE_UNIQUE) -+ // Compiling with -std=c++11 sets __cplusplus=201103L and disables -+ // std::make_unique() from C++14! We need to take this into account. -+ #define CPLUSPLUS_SUPPORTS_MAKE_UNIQUE (__cplusplus > 201103L) -+ #if defined(_MSC_VER) -+ // std::make_unique was added in MSVC 12.0 -+ #if _MSC_VER >= 1800 // MSVC 12.0 (Visual Studio 2013) -+ #define COMPILER_SUPPORTS_MAKE_UNIQUE -+ #endif -+ #elif defined(__clang__) -+ // std::make_unique was added in clang 3.4, but not until Xcode 6. -+ // Annoyingly, Apple makes the clang version defines match the version -+ // of Xcode, not the version of clang. -+ #define CLANG_VERSION (__clang_major__ * 10000 + __clang_minor__ * 100 + __clang_patchlevel__) -+ #if defined(__APPLE__) && CLANG_VERSION >= 60000 && CPLUSPLUS_SUPPORTS_MAKE_UNIQUE -+ #define COMPILER_SUPPORTS_MAKE_UNIQUE -+ #elif !defined(__APPLE__) && CLANG_VERSION >= 30400 && CPLUSPLUS_SUPPORTS_MAKE_UNIQUE -+ #define COMPILER_SUPPORTS_MAKE_UNIQUE -+ #endif -+ #elif defined(__GNUC__) -+ // std::make_unique was added in gcc 4.9 -+ #define GCC_VERSION (__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) -+ #if GCC_VERSION >= 40900 && CPLUSPLUS_SUPPORTS_MAKE_UNIQUE -+ #define COMPILER_SUPPORTS_MAKE_UNIQUE -+ #endif -+ #endif -+#endif -+ -+#if defined(COMPILER_SUPPORTS_MAKE_UNIQUE) -+ -+// If the compiler supports std::make_unique, then pull in to get it. -+#include -+ -+#else -+ -+// Otherwise, the compiler doesn't provide it, so implement it ourselves. -+ -+#include -+#include -+#include -+#include -+ -+namespace std { -+ -+template struct _Unique_if { -+ typedef unique_ptr<_Ty> _Single_object; -+}; -+ -+template struct _Unique_if<_Ty[]> { -+ typedef unique_ptr<_Ty[]> _Unknown_bound; -+}; -+ -+template struct _Unique_if<_Ty[N]> { -+ typedef void _Known_bound; -+}; -+ -+// -+// template< class T, class... Args > -+// unique_ptr make_unique( Args&&... args); -+// -+ -+#if defined(_MSC_VER) && (_MSC_VER < 1800) -+ -+// Macro machinery because MSVC 11.0 doesn't support variadic templates. -+// The _VARIADIC_EXPAND_0X stuff is defined in -+#define _MAKE_UNIQUE( \ -+ TEMPLATE_LIST, PADDING_LIST, LIST, COMMA, X1, X2, X3, X4) \ -+ template inline \ -+ typename _Unique_if<_Ty>::_Single_object make_unique(LIST(_TYPE_REFREF_ARG)) \ -+ { \ -+ return unique_ptr<_Ty>(new _Ty(LIST(_FORWARD_ARG))); \ -+ } \ -+ -+_VARIADIC_EXPAND_0X(_MAKE_UNIQUE, , , , ) -+#undef _MAKE_UNIQUE -+ -+#else // not MSVC 11.0 or earlier -+ -+template -+ typename _Unique_if<_Ty>::_Single_object -+ make_unique(Args&&... args) { -+ return unique_ptr<_Ty>(new _Ty(std::forward(args)...)); -+ } -+ -+#endif -+ -+// template< class T > -+// unique_ptr make_unique( std::size_t size ); -+ -+template -+ typename _Unique_if<_Ty>::_Unknown_bound -+ make_unique(size_t n) { -+ typedef typename remove_extent<_Ty>::type U; -+ return unique_ptr<_Ty>(new U[n]()); -+ } -+ -+// template< class T, class... Args > -+// /* unspecified */ make_unique( Args&&... args ) = delete; -+ -+// MSVC 11.0 doesn't support deleted functions, so the best we can do -+// is simply not define the function. -+#if !(defined(_MSC_VER) && (_MSC_VER < 1800)) -+ -+template -+ typename _Unique_if::_Known_bound -+ make_unique(Args&&...) = delete; -+ -+#endif -+ -+} // namespace std -+ -+#endif // !COMPILER_SUPPORTS_MAKE_UNIQUE -+ -+#endif /* MIXXX_UTIL_MEMORY_H */ 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 deleted file mode 100644 index 9a95a5d..0000000 --- a/media-sound/mixxx/files/mixxx-2.0.0-move-definition-of-time-formatseconds-into-dot-cpp-file.patch +++ /dev/null @@ -1,88 +0,0 @@ -From c2af9e6eeb469718b9aa069b90a719fac80dd0d9 Mon Sep 17 00:00:00 2001 -From: Uwe Klotz -Date: Fri, 8 Jan 2016 19:25:58 +0100 -Subject: [PATCH] Move definition of Time::formatSeconds() into .cpp file - ---- - src/util/time.cpp | 30 ++++++++++++++++++++++++++++++ - src/util/time.h | 29 +---------------------------- - 2 files changed, 31 insertions(+), 28 deletions(-) - -diff --git a/src/util/time.cpp b/src/util/time.cpp -index 998fa73..d8a122b 100644 ---- a/src/util/time.cpp -+++ b/src/util/time.cpp -@@ -6,3 +6,33 @@ LLTIMER Time::s_timer; - bool Time::s_testMode = false; - // static - qint64 Time::s_testElapsed_nsecs = 0; -+ -+// static -+QString Time::formatSeconds(double dSeconds, bool showCentis) { -+ if (dSeconds < 0) { -+ return "?"; -+ } -+ -+ const int days = static_cast(dSeconds) / kSecondsPerDay; -+ dSeconds -= days * kSecondsPerDay; -+ -+ // NOTE(uklotzde): Time() constructs a 'null' object, but -+ // we need 'zero' here. -+ QTime t = QTime(0, 0).addMSecs(dSeconds * kMillisPerSecond); -+ -+ QString formatString = -+ (days > 0 ? (QString::number(days) % -+ QLatin1String("'d', ")) : QString()) % -+ QLatin1String(days > 0 || t.hour() > 0 ? "hh:mm:ss" : "mm:ss") % -+ QLatin1String(showCentis ? ".zzz" : ""); -+ -+ QString timeString = t.toString(formatString); -+ -+ // The format string gives us milliseconds but we want -+ // centiseconds. Slice one character off. -+ if (showCentis) { -+ timeString = timeString.left(timeString.length() - 1); -+ } -+ -+ return timeString; -+} -diff --git a/src/util/time.h b/src/util/time.h -index 7b38eb4..b4e2c2d 100644 ---- a/src/util/time.h -+++ b/src/util/time.h -@@ -67,34 +67,7 @@ class Time { - // The standard way of formatting a time in seconds. Used for display of - // track duration, etc. showCentis indicates whether to include - // centisecond-precision or to round to the nearest second. -- static QString formatSeconds(double dSeconds, bool showCentis) { -- if (dSeconds < 0) { -- return "?"; -- } -- -- const int days = static_cast(dSeconds) / kSecondsPerDay; -- dSeconds -= days * kSecondsPerDay; -- -- // NOTE(uklotzde): Time() constructs a 'null' object, but -- // we need 'zero' here. -- QTime t = QTime(0, 0).addMSecs(dSeconds * kMillisPerSecond); -- -- QString formatString = -- (days > 0 ? (QString::number(days) % -- QLatin1String("'d', ")) : QString()) % -- QLatin1String(days > 0 || t.hour() > 0 ? "hh:mm:ss" : "mm:ss") % -- QLatin1String(showCentis ? ".zzz" : ""); -- -- QString timeString = t.toString(formatString); -- -- // The format string gives us milliseconds but we want -- // centiseconds. Slice one character off. -- if (showCentis) { -- timeString = timeString.left(timeString.length() - 1); -- } -- -- return timeString; -- } -+ static QString formatSeconds(double dSeconds, bool showCentis); - - private: - static LLTIMER s_timer; 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 deleted file mode 100644 index a82f271..0000000 --- a/media-sound/mixxx/files/mixxx-2.0.0-rmx2-backport-controller-scripts.patch +++ /dev/null @@ -1,280 +0,0 @@ -diff -dNur a/res/controllers/Hercules-DJ-Console-RMX-2-scripts.js b/res/controllers/Hercules-DJ-Console-RMX-2-scripts.js ---- a/res/controllers/Hercules-DJ-Console-RMX-2-scripts.js 2015-12-29 17:10:41.000000000 +0100 -+++ b/res/controllers/Hercules-DJ-Console-RMX-2-scripts.js 2017-02-04 22:01:01.629506434 +0100 -@@ -1,128 +1,159 @@ --/*╔══:::Made Lovingly By Circuitfry:::═════════════════════════════════╗ -- ║ Hercules DJConsole RMX 2 Mapping Scripts v. 0.1.3 ║ -- ╚════════════════════════════════════════════════════════════════════╝ -- * Version 0.1.0: Basic Midi Wizard Mapping -- * Version 0.1.1: Partially-Functional platters (version 1). -- * Version 0.1.2: Functional platters (version 1) -- * Version 0.1.3: Functional EQ Kill/Pitch Bending buttons -- Functional Looping/Sample/Effect pads -- Bugfix: Source 2 Gain knob doesn't load tracks. -- Overhaul: MIDI Scripting file. -- Worklog: Need to implement Microphone/Source1/Source2 input. -- * Note 1: [DEP] Means the command is meant for Mixxx v1.10.x + below. -- * Note 2: [FUT] Means the command is meant for Mixxx v1.11.x + above. --*/ --function DJCRMX2(){} --DJCRMX2.scratching = []; -+/* ╔══:::Made Lovingly By Circuitfry:::═════════════════════════════════╗ -+ * ║ Hercules DJConsole RMX 2 Mapping Scripts ║ -+ * ╚════════════════════════════════════════════════════════════════════╝ -+ */ - --/* [ Function init ] - Version 0.1.3 -- * Initiates some global variables and assigns an ID. Required. --*/ --DJCRMX2.init = function(id){ -- DJCRMX2.id = id; -- DJCRMX2.scratching[1]=false; -- DJCRMX2.scratching[2]=false; -- engine.setValue("[Microphone]","enabled",0); -- engine.setValue("[Microphone]","talkover",0); -+function DJCRMX2() {} -+DJCRMX2.decks = []; -+ -+/* [ Function init ] -+ * Initiates some global variables and assigns an ID. Required. -+ */ -+DJCRMX2.init = function (id) { -+ DJCRMX2.id = id; -+ DJCRMX2.decks[1] = new DJCRMX2.Deck(1); -+ DJCRMX2.decks[2] = new DJCRMX2.Deck(2); -+ engine.setValue("[Microphone]", "enabled", 0); -+ engine.setValue("[Microphone]", "talkover", 0); - } - --/* [ Function wheelPress ] - Version 0.1.2 -- * Detects whether a jog wheel is pressed or not and sets a specific -- * variable on and off accordingly. --*/ --DJCRMX2.wheelPress = function (channel, control, value, status, group){ -- if (status == 0x90) // If status #144 is active (2 possibilities) -- { -- if (value == 0x7F) // And the jog wheel is pressed down: -- { /* engine.scratchEnable(int,int,float,float,float,bool); -- * [ int deck ] Which track/platter is playing? -- * [ int intervalsPerRev ] # of MIDI signals sent in 1 spin. -- * [ float rpm ] Imaginary vinyl rotation speed. -- * [ float alpha ] Just a fine-tuning variable. -- * [ float beta ] Just a fine-tuning variable. -- * [ bool ramp ] As far as I know, nothing... -- */ -- var alpha = 1.0/8; -- var beta = alpha/32; -- if(group=="[Channel1]") -- { -- engine.scratchEnable(1, 250, 50, alpha, beta); -- DJCRMX2.scratching[1] = true; //[DEP] -- } -- if(group=="[Channel2]") -- { -- engine.scratchEnable(2, 250, 50, alpha, beta); -- DJCRMX2.scratching[2] = true; //[DEP] -- } -- -- } -- if (value == 0x00 ) // If the jog wheel is released: -- { -- if(group=="[Channel1]") -- { -- DJCRMX2.scratching[1] = false; // <- v1.10.x and below -- engine.scratchDisable(1); -- } -- if(group=="[Channel2]") -- { -- DJCRMX2.scratching[2] = false; // <- v1.10.x and below -- engine.scratchDisable(2); -- } -- } -- } -- else //Default setting where button is not held down. -- { -- DJCRMX2.scratching[1] = false; // Only for v1.10.x and below -- DJCRMX2.scratching[2] = false; // Only for v1.10.x and below -- engine.scratchDisable(1); -- engine.scratchDisable(2); -- } -- return; -+//////////////////////////////////////////////////////////////////////// -+// Decks // -+//////////////////////////////////////////////////////////////////////// -+ -+DJCRMX2.Deck = function(number) { -+ this.number = number; -+ this.group = "[Channel" + this.number + "]"; -+ this.scratchTimer = 0; -+}; -+ -+DJCRMX2.Deck.prototype.wheelPress = function (value) { -+ if (this.scratchTimer != 0) { -+ // The wheel was touched again, reset the timer. -+ engine.stopTimer(this.scratchTimer); -+ this.scratchTimer = 0; -+ } -+ if (value == 0x7F) { -+ // And the jog wheel is pressed down: -+ -+ /* engine.scratchEnable(int,int,float,float,float,bool); -+ * [ int deck ] Which track/platter is playing? -+ * [ int intervalsPerRev ] # of MIDI signals sent in 1 spin. -+ * [ float rpm ] Imaginary vinyl rotation speed. -+ * [ float alpha ] Just a fine-tuning variable. -+ * [ float beta ] Just a fine-tuning variable. -+ * [ bool ramp ] As far as I know, nothing... -+ */ -+ -+ var alpha = 1.0 / 8; -+ var beta = alpha / 32; -+ engine.scratchEnable(this.number, 256, 33 + 1/3, alpha, beta); -+ } else { -+ // The wheel touch sensor can be overly sensitive, so don't release scratch mode right away. -+ // Depending on how fast the platter was moving, lengthen the time we'll wait. -+ var scratchRate = Math.abs(engine.getValue(this.group, "scratch2")); -+ var inertiaTime = Math.pow(1.8, scratchRate) * 50; -+ if (inertiaTime < 100) { -+ // Just do it now. -+ this.finishWheelPress(); -+ } else { -+ this.scratchTimer = engine.beginTimer( -+ 100, "DJCRMX2.decks[" + this.number + "].finishWheelPress()", true); -+ } -+ } -+} -+ -+DJCRMX2.Deck.prototype.finishWheelPress = function() { -+ this.scratchTimer = 0; -+ var play = engine.getValue(this.group, "play"); -+ if (play != 0) { -+ // If we are playing, just hand off to the engine. -+ engine.scratchDisable(this.number, true); -+ } else { -+ // If things are paused, there will be a non-smooth handoff between scratching and jogging. -+ // Instead, keep scratch on until the platter is not moving. -+ var scratchRate = Math.abs(engine.getValue(this.group, "scratch2")); -+ if (scratchRate < 0.01) { -+ // The platter is basically stopped, now we can disable scratch and hand off to jogging. -+ engine.scratchDisable(this.number, false); -+ } else { -+ // Check again soon. -+ this.scratchTimer = engine.beginTimer( -+ 100, "DJCRMX2.decks[" + this.number + "].finishWheelPress()", true); -+ } -+ } -+}; -+ -+ -+/* [ Function wheelTurn ] -+ * Pays attention to the current deck, checks scratching, affects the -+ * song accordingly. -+ */ -+DJCRMX2.Deck.prototype.wheelTurn = function (value) { -+ var newValue = 0; -+ // Spinning backwards = 127 or less (less meaning faster) -+ // Spinning forwards = 1 or more (more meaning faster) -+ if (value - 64 > 0) { -+ newValue = value - 128; -+ } else { -+ newValue = value; -+ } -+ -+ if (engine.isScratching(this.number)) { -+ engine.scratchTick(this.number, newValue); -+ } else { -+ engine.setValue(this.group, "jog", newValue); -+ } - } -+ -+/* [ Function wheelPress ] -+ * Detects whether a jog wheel is pressed or not and sets a specific -+ * variable on and off accordingly. -+ */ -+DJCRMX2.wheelPress = function (channel, control, value, status, group) { -+ var deck = 0; -+ if (group == "[Channel1]") { -+ deck = 1; -+ } else if (group == "[Channel2]") { -+ deck = 2; -+ } else { -+ return; -+ } -+ DJCRMX2.decks[deck].wheelPress(value); -+} -+ - --/* [ Function wheelTurn ] - Version 0.1.2 -- * Pays attention to the current deck, checks scratching, affects the -- * song accordingly. --*/ --DJCRMX2.wheelTurn = function (channel, control, value, status, group){ -- var newValue=0; -- // Spinning backwards = 127 or less (less meaning faster) -- // Spinning forwards = 1 or more (more meaning faster) -- if (value-64 > 0) newValue = (value-128); -- else newValue=value; -- //if (!engine.isScratching(DJCRMX2.currentDeck)) // [FUT] -- if(group=="[Channel1]") -- { -- if(DJCRMX2.scratching[1]==true) {engine.scratchTick(1,newValue);return;} -- } -- else if(group=="[Channel2]") -- { -- if(DJCRMX2.scratching[2]==true) {engine.scratchTick(2,newValue);return;} -- } -- engine.setValue(group, "jog", newValue); -- return; -+/* [ Function wheelTurn ] -+ * Pays attention to the current deck, checks scratching, affects the -+ * song accordingly. -+ */ -+DJCRMX2.wheelTurn = function (channel, control, value, status, group) { -+ var deck = 0; -+ if (group == "[Channel1]") { -+ deck = 1; -+ } else if (group == "[Channel2]") { -+ deck = 2; -+ } else { -+ return; -+ } -+ DJCRMX2.decks[deck].wheelTurn(value); - } - --DJCRMX2.micSwitch = function (channel, control, value, status) //??? -+DJCRMX2.micSwitch = function (channel, control, value, status) - { -- if(status == 0x90 && control == 0x48 && value == 0x7F) -- { -- engine.setValue("[Microphone]","enabled",1); -- engine.setValue("[Microphone]","talkover",1); -- } -- if(status == 0x90 && control == 0x48 && value == 0x00) -- { -- engine.setValue("[Microphone]","enabled",0); -- engine.setValue("[Microphone]","talkover",0); -- } -+ if (status == 0x90 && control == 0x48 && value == 0x7F) { -+ engine.setValue("[Microphone]","enabled",1); -+ engine.setValue("[Microphone]","talkover",1); -+ } else if (status == 0x90 && control == 0x48 && value == 0x00) { -+ engine.setValue("[Microphone]","enabled",0); -+ engine.setValue("[Microphone]","talkover",0); -+ } - } - --/* [ Function shutdown ] - Version 0.1.3 -- * Sets variables down for shutoff. --*/ --DJCRMX2.shutdown = function(id){ -- DJCRMX2.scratching[1]=false; -- DJCRMX2.scratching[2]=false; -- engine.setValue("[Microphone]","enabled",0); -- engine.setValue("[Microphone]","talkover",0); -+/* [ Function shutdown ] - Version 0.1.3 -+ * Sets variables down for shutoff. -+ */ -+DJCRMX2.shutdown = function (id) { -+ engine.setValue("[Microphone]", "enabled", 0); -+ engine.setValue("[Microphone]", "talkover", 0); - } diff --git a/media-sound/mixxx/metadata.xml b/media-sound/mixxx/metadata.xml deleted file mode 100644 index 4300293..0000000 --- a/media-sound/mixxx/metadata.xml +++ /dev/null @@ -1,16 +0,0 @@ - - - - - proaudio@gentoo.org - Gentoo ProAudio Project - - - Enable HID controller support - Enable broadcasting support via media-libs/libshout - Enable vamp analyzing plugins support - - - mixxx - - diff --git a/media-sound/mixxx/mixxx-2.0.0-r3.ebuild b/media-sound/mixxx/mixxx-2.0.0-r3.ebuild deleted file mode 100644 index b52474e..0000000 --- a/media-sound/mixxx/mixxx-2.0.0-r3.ebuild +++ /dev/null @@ -1,134 +0,0 @@ -# Copyright 1999-2017 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Id$ - -EAPI=6 - -inherit flag-o-matic scons-utils toolchain-funcs - -DESCRIPTION="Advanced Digital DJ tool based on Qt" -HOMEPAGE="http://www.mixxx.org/" -SRC_URI="http://downloads.${PN}.org/${P}/${P}-src.tar.gz" - -# Upstream patches -SRC_URI+=" https://github.com/mixxxdj/mixxx/commit/51d95ba58d99309f439cb7e2d1285cfb33aa0f63.patch -> ${PN}-2.0.0-ffmpeg30.patch" -SRC_URI+=" https://github.com/mixxxdj/mixxx/commit/869e07067b15e09bf7ef886a8772afdfb79cbc3c.patch -> ${PN}-2.0.0-ffmpeg31.patch" - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="~amd64 ~x86" -IUSE="aac debug doc ffmpeg hid mp3 mp4 shout wavpack" - -# fails to compile system-fidlib. Add ">media-libs/fidlib-0.9.10-r1" once this -# got fixed -RDEPEND="dev-db/sqlite - dev-libs/protobuf:0= - dev-qt/qtconcurrent:5 - dev-qt/qtcore:5 - dev-qt/qtgui:5 - dev-qt/qtnetwork:5 - dev-qt/qtopengl:5 - dev-qt/qtscript:5[scripttools] - dev-qt/qtsql:5 - dev-qt/qtsvg:5 - dev-qt/qtwidgets:5 - dev-qt/qtxml:5 - media-libs/chromaprint - media-libs/flac - media-libs/libid3tag - media-libs/libogg - media-libs/libsndfile - >=media-libs/libsoundtouch-1.5 - media-libs/libvorbis - >=media-libs/portaudio-19_pre - media-libs/portmidi - media-libs/rubberband - media-libs/taglib - media-libs/vamp-plugin-sdk - sci-libs/fftw:3.0= - virtual/libusb:1 - virtual/opengl - x11-libs/libX11 - aac? ( - media-libs/faad2 - media-libs/libmp4v2:0 - ) - hid? ( dev-libs/hidapi ) - mp3? ( media-libs/libmad ) - mp4? ( media-libs/libmp4v2:= ) - shout? ( media-libs/libshout ) - wavpack? ( media-sound/wavpack ) - ffmpeg? ( media-video/ffmpeg:0= )" -# media-libs/rubberband RDEPENDs on sci-libs/fftw:3.0 -DEPEND="${RDEPEND} - virtual/pkgconfig - dev-qt/qttest:5 - dev-qt/qtxmlpatterns:5 -" - -PATCHES=( - "${FILESDIR}"/${PN}-2.0.0-docs.patch - "${DISTDIR}"/${P}-ffmpeg30.patch - "${DISTDIR}"/${P}-ffmpeg31.patch - "${FILESDIR}"/${P}-chromaprint-1.4.patch #604528 - - "${FILESDIR}"/${P}-fix-formatting-of-time-durations.patch - "${FILESDIR}"/${P}-eliminate-unnecessary-heap-allocation-of-qtime.patch - "${FILESDIR}"/${P}-fix-missing-pointer-initialization.patch - "${FILESDIR}"/${P}-move-definition-of-time-formatseconds-into-dot-cpp-file.patch - "${FILESDIR}"/${P}-fix-formatting-of-time-durations2.patch - "${FILESDIR}"/${P}-rmx2-backport-controller-scripts.patch -) - -src_prepare() { - # use multilib compatible directory for plugins - sed -i -e "/unix_lib_path =/s/'lib'/'$(get_libdir)'/" src/SConscript || die - - default -} - -src_configure() { - local myoptimize=0 - - # Required for >=qt-5.7.0 (bug #590690) - append-cxxflags -std=c++11 - - # Try to get cpu type based on CFLAGS. - # Bug #591968 - for i in $(get-flag mcpu) $(get-flag march) ; do - if [[ ${i} = native ]] ; then - myoptimize="native" - break - fi - done - - myesconsargs=( - prefix="${EPREFIX}/usr" - qtdir="${EPREFIX}/usr/$(get_libdir)/qt5" - faad="$(usex aac 1 0)" - ffmpeg="$(usex ffmpeg 1 0)" - hid="$(usex hid 1 0)" - hifieq=1 - m4a="$(usex mp4 1 0)" - mad="$(usex mp3 1 0)" - optimize="${myoptimize}" - qdebug="$(usex debug 1 0)" - qt5=1 - shoutcast="$(usex shout 1 0)" - vinylcontrol=1 - wv="$(usex wavpack 1 0)" - ) -} - -src_compile() { - CC="$(tc-getCC)" CXX="$(tc-getCXX)" LINKFLAGS="${LDFLAGS}" \ - LIBDIR="${EPREFIX}/usr/$(get_libdir)" escons ${myesconsargs[@]} -} - -src_install() { - CC="$(tc-getCC)" CXX="$(tc-getCXX)" LINKFLAGS="${LDFLAGS}" \ - LIBDIR="${EPREFIX}/usr/$(get_libdir)" escons ${myesconsargs[@]} \ - install_root="${ED}"/usr install - - dodoc README Mixxx-Manual.pdf -}