1
0
mirror of https://github.com/dguglielmi/sunny-overlay.git synced 2025-12-06 09:32:37 +01:00

media-sound/mixxx: update pre-2.1.1 patches #6

This commit is contained in:
2018-05-27 15:34:08 +02:00
parent 63b4589b7f
commit dac2695f62
6 changed files with 1341 additions and 1 deletions

View File

@@ -1,4 +1,5 @@
AUX mixxx-2.0.0-docs.patch 435 BLAKE2B c2e9b09abb293e59b2af49527eccf07c9488ae5e30e29e6c4d6330cc298a568ee7dd7014af6b9c1f1c4d98b8c11c96da7f74660eb4b3b522f449e7a6a431addc SHA512 01ab76466f782f538c894e460f7694553ae12804651f68aabb6aaa0dbdc89e2ff7e2b51529b0f112cee42c8053b75fc64241a9c8898def8cf1c76231b1ec5d59 AUX mixxx-2.0.0-docs.patch 435 BLAKE2B c2e9b09abb293e59b2af49527eccf07c9488ae5e30e29e6c4d6330cc298a568ee7dd7014af6b9c1f1c4d98b8c11c96da7f74660eb4b3b522f449e7a6a431addc SHA512 01ab76466f782f538c894e460f7694553ae12804651f68aabb6aaa0dbdc89e2ff7e2b51529b0f112cee42c8053b75fc64241a9c8898def8cf1c76231b1ec5d59
AUX mixxx-2.1.0-beatsync-fix.patch 3892 BLAKE2B 427ebd19f459174cafd0fb89c3baea59d03029baae6a70b9dc7f0d78c319c3fe6f62b257df35b5f31bab86adbf2720ae2a6d2ffbf3f52cb8a648a138b04a992b SHA512 7ef778ac2b4abe7b896f6f44154ae819f6753c17a4760d06cabdc4a3fae6d25473b087036adc9e1b728f05f03ac9982a0df05c25e690240a1484ce892e068651
AUX mixxx-2.1.0-components-js-fixes.patch 3370 BLAKE2B ff9295a8c938e9c3a526e206792cd27cd4025ea07ede79da844cbd80565f10020b8856bdfbb2cf7557dba0bc8b3d775eb10c45f689d975aad13c35a22705a4a0 SHA512 ff27ad09b119bbf51e678a84c5eb60f9c6822a55160ea9d175f043caa33005d311d10366c91a1b7f402e6d7039cabac675aa35f893f02efe0015e831f2751bc8 AUX mixxx-2.1.0-components-js-fixes.patch 3370 BLAKE2B ff9295a8c938e9c3a526e206792cd27cd4025ea07ede79da844cbd80565f10020b8856bdfbb2cf7557dba0bc8b3d775eb10c45f689d975aad13c35a22705a4a0 SHA512 ff27ad09b119bbf51e678a84c5eb60f9c6822a55160ea9d175f043caa33005d311d10366c91a1b7f402e6d7039cabac675aa35f893f02efe0015e831f2751bc8
AUX mixxx-2.1.0-debug-assert-and-fix-false-poisitiv-restart-request.patch 5694 BLAKE2B 7732252cf6438df9d52e6de8ceaaf6b2e1c30e35d8154eb7af5d94641346117d4ab0b5501686909d35c81a5fd5aa9442831f11b66faaec782c11a55e14a11363 SHA512 ee35ea84db8bf91cd2f14dd779faa91857df7bcc376525d533e65c778e241a5e66c829ab208e2da5d4afb3a48571042c13e5092c4974a07a9ea11146df68d326 AUX mixxx-2.1.0-debug-assert-and-fix-false-poisitiv-restart-request.patch 5694 BLAKE2B 7732252cf6438df9d52e6de8ceaaf6b2e1c30e35d8154eb7af5d94641346117d4ab0b5501686909d35c81a5fd5aa9442831f11b66faaec782c11a55e14a11363 SHA512 ee35ea84db8bf91cd2f14dd779faa91857df7bcc376525d533e65c778e241a5e66c829ab208e2da5d4afb3a48571042c13e5092c4974a07a9ea11146df68d326
AUX mixxx-2.1.0-deere-add-gain-knob-to-expanded-sampler-view.patch 1116 BLAKE2B a32d877d6877a2dfc3b12b1dc6e6b40342120a735aa35814d203a7c9e5581f40ec9950c5732f6698e4facbe0e3b98d278e1c2ca39c880e141d863e3042407863 SHA512 8b7093ded2c79ab7f7adc7b578f3b349a364fe5c3d01a4617184a64f30799f336d5911221f79478bf8e61159b99144584efef1add0df835fa84d309ba68ea0cb AUX mixxx-2.1.0-deere-add-gain-knob-to-expanded-sampler-view.patch 1116 BLAKE2B a32d877d6877a2dfc3b12b1dc6e6b40342120a735aa35814d203a7c9e5581f40ec9950c5732f6698e4facbe0e3b98d278e1c2ca39c880e141d863e3042407863 SHA512 8b7093ded2c79ab7f7adc7b578f3b349a364fe5c3d01a4617184a64f30799f336d5911221f79478bf8e61159b99144584efef1add0df835fa84d309ba68ea0cb
@@ -6,6 +7,7 @@ AUX mixxx-2.1.0-denon-mc6000mk2-fix-looping.patch 13668 BLAKE2B e6c214029df15349
AUX mixxx-2.1.0-denon-mc6000mk2-use-ramping-for-back-spins.patch 64070 BLAKE2B fd6941c4c995559e12900db68a92c32e79ee94841cb0c7f536296ef079db39fdcde6014c697f94d2f2d92d17c8e41f72c02343cdadc8054816ca2d6ca98b4dc4 SHA512 7d481cec81e88f7fefeff92969a49881ffaca9bd7fb17c215c45363d3078e9e31350829299479eb111000a04924634ff1b25579f951d6da9dc52ac4d3ac38a96 AUX mixxx-2.1.0-denon-mc6000mk2-use-ramping-for-back-spins.patch 64070 BLAKE2B fd6941c4c995559e12900db68a92c32e79ee94841cb0c7f536296ef079db39fdcde6014c697f94d2f2d92d17c8e41f72c02343cdadc8054816ca2d6ca98b4dc4 SHA512 7d481cec81e88f7fefeff92969a49881ffaca9bd7fb17c215c45363d3078e9e31350829299479eb111000a04924634ff1b25579f951d6da9dc52ac4d3ac38a96
AUX mixxx-2.1.0-detect-m4a-decoding-errors-on-windows.patch 6352 BLAKE2B 6d7e83f037089729c085c7458fba7580063cff2a01bbc9b2260688cb350ebc3924da0190dab5d353b1e6db4766b6ef1ca63d5e7776728eddfd7032bfb355738b SHA512 18fbbf80fa72aaf50b1f716b220ea741d9deb3c003f56bdb34e10f9c4421b1b0c8ad19775927be93e3ca6b0aea35c10c3927dcb8f1ffcf95a5b60203fce452b5 AUX mixxx-2.1.0-detect-m4a-decoding-errors-on-windows.patch 6352 BLAKE2B 6d7e83f037089729c085c7458fba7580063cff2a01bbc9b2260688cb350ebc3924da0190dab5d353b1e6db4766b6ef1ca63d5e7776728eddfd7032bfb355738b SHA512 18fbbf80fa72aaf50b1f716b220ea741d9deb3c003f56bdb34e10f9c4421b1b0c8ad19775927be93e3ca6b0aea35c10c3927dcb8f1ffcf95a5b60203fce452b5
AUX mixxx-2.1.0-dlgtrackinfo-mismatching-signal-slot-connection.patch 2196 BLAKE2B fa238d47fcab50770b63061ae9c2c72035b2f608a8d237c5af0693c2baf91447aa5db8fc53bf384cc3d1166228c50091ba7f6a5cd375247e8e7a58086b76eca0 SHA512 87fe610f586117a709010be3424aece865a31430ae4e65c369e84f5c86cbde2cf9d6454eb036e3406784f82faed264009b5eca49e65cc91e062c2a0baeadc943 AUX mixxx-2.1.0-dlgtrackinfo-mismatching-signal-slot-connection.patch 2196 BLAKE2B fa238d47fcab50770b63061ae9c2c72035b2f608a8d237c5af0693c2baf91447aa5db8fc53bf384cc3d1166228c50091ba7f6a5cd375247e8e7a58086b76eca0 SHA512 87fe610f586117a709010be3424aece865a31430ae4e65c369e84f5c86cbde2cf9d6454eb036e3406784f82faed264009b5eca49e65cc91e062c2a0baeadc943
AUX mixxx-2.1.0-empty-library-fix-lp1772591.patch 3337 BLAKE2B 3ab3e5f922dfe2fa5fa227746c69a4cee7095efa2fe78b4b468e98ab5e730c06d9fb3ab28f22535e30881af71704a221d3091643cf30647e483f3e1ce8cf3cee SHA512 e3714addb94d238d8cca643a5cd61623a41e15687511b5064379c9268b01fa01401ca376efea523bbbfd4742110faa83c9889f483db399d9a49a39764010afca
AUX mixxx-2.1.0-fidlib-thread-safe-and-reentrant-generation-of-filters.patch 35122 BLAKE2B 976c623afc6f62fb5ee5082bcc503b7ca4bf5af160e102257024874e750a681347d6e4b70328a6596c88b261ed02f66ccb7c5897d1cf8174a92e4bb50d1e55c9 SHA512 377e2cd176264849f7de28d48107dca1c41b18a02c610d4f8c1ac824dc6e4c3d8b18363a7a3ae0d585157fed33592ad6cf578148508416b0783bd6b4084aaeb1 AUX mixxx-2.1.0-fidlib-thread-safe-and-reentrant-generation-of-filters.patch 35122 BLAKE2B 976c623afc6f62fb5ee5082bcc503b7ca4bf5af160e102257024874e750a681347d6e4b70328a6596c88b261ed02f66ccb7c5897d1cf8174a92e4bb50d1e55c9 SHA512 377e2cd176264849f7de28d48107dca1c41b18a02c610d4f8c1ac824dc6e4c3d8b18363a7a3ae0d585157fed33592ad6cf578148508416b0783bd6b4084aaeb1
AUX mixxx-2.1.0-fix-cachingreader-compiler-warnings-about-non-trivial-types.patch 7055 BLAKE2B 669038949243674c8b7aaccd0cea4cc6c21644dd4bc2de463800bed71677d4e77cc5b3f5da89d0be3bdc44c847247afbf7b6248a29840aec676916bc8b9bc96f SHA512 45ec03e0d37b72d969fa730348a068df61200bae0a613045d9711637b6abc04608f2b3e7c2d99551dfa24c86846b3426c9f3600518258012e6e4d118f7beb947 AUX mixxx-2.1.0-fix-cachingreader-compiler-warnings-about-non-trivial-types.patch 7055 BLAKE2B 669038949243674c8b7aaccd0cea4cc6c21644dd4bc2de463800bed71677d4e77cc5b3f5da89d0be3bdc44c847247afbf7b6248a29840aec676916bc8b9bc96f SHA512 45ec03e0d37b72d969fa730348a068df61200bae0a613045d9711637b6abc04608f2b3e7c2d99551dfa24c86846b3426c9f3600518258012e6e4d118f7beb947
AUX mixxx-2.1.0-fix-clearing-of-replaygain-gain-ratio-in-file-tags.patch 6898 BLAKE2B 7e20e44b0d6646cf410473b3d4c1ca310aa1b9ec8fafb06ee4480a90be7cb6fd3b67ac1a425d98beed03eef22016ad76f127ddcb46c6a7a22237ca93b59826ab SHA512 ecffb8bab5ad1d1f55acc2c3187a4dd10edda22e6708754e76184181808afc3fb014d43544b0a1006c9a439673bb56ab54549a0d95c0a05e709dcaba3600f8cc AUX mixxx-2.1.0-fix-clearing-of-replaygain-gain-ratio-in-file-tags.patch 6898 BLAKE2B 7e20e44b0d6646cf410473b3d4c1ca310aa1b9ec8fafb06ee4480a90be7cb6fd3b67ac1a425d98beed03eef22016ad76f127ddcb46c6a7a22237ca93b59826ab SHA512 ecffb8bab5ad1d1f55acc2c3187a4dd10edda22e6708754e76184181808afc3fb014d43544b0a1006c9a439673bb56ab54549a0d95c0a05e709dcaba3600f8cc
@@ -22,8 +24,10 @@ AUX mixxx-2.1.0-fix-spinback-inertia-effect-partial-revert-of-2b612c2.patch 1151
AUX mixxx-2.1.0-fix-unresponsive-scrolling-through-crates-and-playlists-using-encoder.patch 10554 BLAKE2B fedfdb247f55ac438635a527e30b132386e95f40143c26b581f6929a45126b7d97a4ea98d84582a6dded002afa623a7fac3a0f1e2e03499e592967df0fbe7646 SHA512 18b3d51f5c341e412f9fae2bb596ef569906e628ea5102d35864f299be2c2f21853833964b0566f4c3c6a964ee52627eb6ec0982ebc3d4151b3e6210765504e1 AUX mixxx-2.1.0-fix-unresponsive-scrolling-through-crates-and-playlists-using-encoder.patch 10554 BLAKE2B fedfdb247f55ac438635a527e30b132386e95f40143c26b581f6929a45126b7d97a4ea98d84582a6dded002afa623a7fac3a0f1e2e03499e592967df0fbe7646 SHA512 18b3d51f5c341e412f9fae2bb596ef569906e628ea5102d35864f299be2c2f21853833964b0566f4c3c6a964ee52627eb6ec0982ebc3d4151b3e6210765504e1
AUX mixxx-2.1.0-optimize-flac-decoding.patch 9430 BLAKE2B f3d0b707f69332f94db54416fc9a9a6374302853daa8fb3046048e66f25259081f9bbe46c1dc8620076904a7f1a57abf051be0db3af02378ac9df06dc353f765 SHA512 5d244f8fe606eab6c6bea64439a520ada568dd2681d05fcdbdd1abebabf5bc74eecf3aa67765f4d2d78295a9a87c9ca7746cfc59cfd5db1a4b8a085f36b95cd6 AUX mixxx-2.1.0-optimize-flac-decoding.patch 9430 BLAKE2B f3d0b707f69332f94db54416fc9a9a6374302853daa8fb3046048e66f25259081f9bbe46c1dc8620076904a7f1a57abf051be0db3af02378ac9df06dc353f765 SHA512 5d244f8fe606eab6c6bea64439a520ada568dd2681d05fcdbdd1abebabf5bc74eecf3aa67765f4d2d78295a9a87c9ca7746cfc59cfd5db1a4b8a085f36b95cd6
AUX mixxx-2.1.0-pioneer-ddj-sx-mapping-bugfixes.patch 11255 BLAKE2B 9e15935f3fcfe9e26c04960496998450ee15cf8eb7b98e0439064caf9653617b94e0bf4c93f13ee49d169accabe662f9f8ca2abea05559b91d7f5362225de1c9 SHA512 f4774fe4884d339f2929468551b2f248200f3dc1c31c436070c8a439d18cf524aab0dd7ca990595e0c88ddd70e1e71dee025a641df6d240724fec94f2087ebd0 AUX mixxx-2.1.0-pioneer-ddj-sx-mapping-bugfixes.patch 11255 BLAKE2B 9e15935f3fcfe9e26c04960496998450ee15cf8eb7b98e0439064caf9653617b94e0bf4c93f13ee49d169accabe662f9f8ca2abea05559b91d7f5362225de1c9 SHA512 f4774fe4884d339f2929468551b2f248200f3dc1c31c436070c8a439d18cf524aab0dd7ca990595e0c88ddd70e1e71dee025a641df6d240724fec94f2087ebd0
AUX mixxx-2.1.0-qt5-2.1.patch 20604 BLAKE2B 97b0145e68de1622020b52f08b9160fd23a7d9e42469201e40d93779eba903c496728a517ba274468de572a7714cfb0353859e76a380002219c39deb3fd23943 SHA512 8856aaa2d3c870a684d3e78deea2e162b00c96e3d64405615066430984525abcb71cc07c9f1dc0cdd18161ebb1aff8c1ebe223d21c3f3c4d3e92f3c38da3ffab
AUX mixxx-2.1.0-reduce-log-spam-from-soundsourceproxy.patch 1791 BLAKE2B 84f51305c1054bc1ac50e59abf1fbad01f07dd316592fb6fdcbe268d19d19400c9a99e54ec74674c73632b8e443f25168f262eaa02e221204d0c3eb9320f3609 SHA512 d58f42be3b711df919e50ed2e665f95f63b265c6571e5b8109f2c7977f823d0360c8bd5e0618912d4c0d15a92a8ee673320fbd23c9fc2d75bd3a78aea0f9558b AUX mixxx-2.1.0-reduce-log-spam-from-soundsourceproxy.patch 1791 BLAKE2B 84f51305c1054bc1ac50e59abf1fbad01f07dd316592fb6fdcbe268d19d19400c9a99e54ec74674c73632b8e443f25168f262eaa02e221204d0c3eb9320f3609 SHA512 d58f42be3b711df919e50ed2e665f95f63b265c6571e5b8109f2c7977f823d0360c8bd5e0618912d4c0d15a92a8ee673320fbd23c9fc2d75bd3a78aea0f9558b
AUX mixxx-2.1.0-swap-default-values-for-temp-perm-ratechanges.patch 1534 BLAKE2B 30e2c7fe396919fcdfba7102f360e307e2104bfa6480ec5615bc1482f2e496f99435d745468621f6ff7ae15e0e4857fd6db692061cf5d7b19b0bc7672b889aea SHA512 e0c6365f26313935b503de36edb9ed247333e892352645d5379659bc7a53761b7b24d1a162dee38cb776e17f5e8741d5235713d47f5812975169395bb4d00f05 AUX mixxx-2.1.0-swap-default-values-for-temp-perm-ratechanges.patch 1534 BLAKE2B 30e2c7fe396919fcdfba7102f360e307e2104bfa6480ec5615bc1482f2e496f99435d745468621f6ff7ae15e0e4857fd6db692061cf5d7b19b0bc7672b889aea SHA512 e0c6365f26313935b503de36edb9ed247333e892352645d5379659bc7a53761b7b24d1a162dee38cb776e17f5e8741d5235713d47f5812975169395bb4d00f05
AUX mixxx-2.1.0-update-american-audio-vms4-preset-for-mixxx-v2.1.x.patch 26106 BLAKE2B e08dcc0a1572dcd1d6909644e2704e4b2c2f9646e0c96da6e0631bbebca4b680b490f13f20a5de5761ee826c77a53577ab24b5ba2d3627124bb4a93a4c54ef27 SHA512 5866243851348abfcb59db7d60932c523af62227d15df845517a283c1d579b358271ca22a1062a7df144f6c43ba9bdfc1c06eac41ea8b2ca23ae2493ca481322
AUX mixxx-2.1.0-use-an-in-memory-database-to-speed-up-library-tests.patch 3086 BLAKE2B d2cb0b7992cdb07b1ba2accde1d272cd3f75adf8bd3bb2450ad9203db5d7978c9b29dbf6e278a2a1f1fb8fb84f28b23f276f0f999b3e5d77c272b91716dcc9f1 SHA512 a6fefbc80f8facc8cd0bf501858b4dadb6ebe4bf476dc97273ad7e97ae2c0840ca9bd6b0b3aaa34caa837b967ee7fa12635c7c2957241ca6aff5a26531b6e25f AUX mixxx-2.1.0-use-an-in-memory-database-to-speed-up-library-tests.patch 3086 BLAKE2B d2cb0b7992cdb07b1ba2accde1d272cd3f75adf8bd3bb2450ad9203db5d7978c9b29dbf6e278a2a1f1fb8fb84f28b23f276f0f999b3e5d77c272b91716dcc9f1 SHA512 a6fefbc80f8facc8cd0bf501858b4dadb6ebe4bf476dc97273ad7e97ae2c0840ca9bd6b0b3aaa34caa837b967ee7fa12635c7c2957241ca6aff5a26531b6e25f
DIST mixxx-2.1.0-src.tar.gz 34835250 BLAKE2B 7a90c3794a146001fd0df6bb7c9c6231c0d26814eafc5c83da666d511d7af0e193b75da9b8728ad399dbef208cf2437881df2c87818e503945b02591bc300567 SHA512 d9f4fab92c2896ec455e2041aa6033f9a9091d2915a185a99427b9c35afe7c99565350ce477bf0487c6276c9585875f0be61f310779ae90195917d2e995bbf90 DIST mixxx-2.1.0-src.tar.gz 34835250 BLAKE2B 7a90c3794a146001fd0df6bb7c9c6231c0d26814eafc5c83da666d511d7af0e193b75da9b8728ad399dbef208cf2437881df2c87818e503945b02591bc300567 SHA512 d9f4fab92c2896ec455e2041aa6033f9a9091d2915a185a99427b9c35afe7c99565350ce477bf0487c6276c9585875f0be61f310779ae90195917d2e995bbf90
EBUILD mixxx-2.1.0.ebuild 4459 BLAKE2B 12953b22d02ba03d043bbd6e1e4b2d9e2fa1beab2f752ca7e6a79cefcdf85e3b9d341b244f40ca5712007642f57bc3622e4da08a5b4d9bbd014e43828c522cc8 SHA512 5e729e6ea30646bb890fd023cb229352a41548bfb4d4d02f00f8721bad734a7d222e9282b7d66c882995998bec9dd9de6f0f9133f666d99cfa87a1ce2d2dc182 EBUILD mixxx-2.1.0.ebuild 4663 BLAKE2B 7041f834fc0ebd35223734bb9cb48518ade04722522d6edc3391071c9dcb5ea3c99a3d541e27eedf15d19629e859c03978b917abafa180860f97006560353bb3 SHA512 df2ca290915d317a3a7d6e6cc46d408120b68b176d4a616c350e79a171c74c83c1643f5a8ec6585422737a7346204450ed56878780ad5a44ba7e2957ea3185c2

View File

@@ -0,0 +1,87 @@
From 5b656450844d09f41afbb2cccbec74ef3b72eb99 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Daniel=20Sch=C3=BCrmann?= <daschuer@mixxx.org>
Date: Tue, 22 May 2018 02:29:42 +0200
Subject: [PATCH 1/2] fix beatsync control syncing phase, an old regression
since 2.0
---
src/engine/enginebuffer.cpp | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/engine/enginebuffer.cpp b/src/engine/enginebuffer.cpp
index 1218f017b6..42087bc248 100644
--- a/src/engine/enginebuffer.cpp
+++ b/src/engine/enginebuffer.cpp
@@ -658,7 +658,7 @@ void EngineBuffer::slotControlPlayRequest(double v) {
bool verifiedPlay = updateIndicatorsAndModifyPlay(v > 0.0);
if (!oldPlay && verifiedPlay) {
- if (m_pQuantize->get() > 0.0
+ if (m_pQuantize->toBool()
#ifdef __VINYLCONTROL__
&& m_pVinylControlControl && !m_pVinylControlControl->isEnabled()
#endif
@@ -900,7 +900,7 @@ void EngineBuffer::process(CSAMPLE* pOutput, const int iBufferSize) {
// we need to sync phase or we'll be totally out of whack and the sync
// adjuster will kick in and push the track back in to sync with the
// master.
- if (m_scratching_old && !is_scratching && m_pQuantize->get() > 0.0
+ if (m_scratching_old && !is_scratching && m_pQuantize->toBool()
&& m_pSyncControl->getSyncMode() == SYNC_FOLLOWER && !paused) {
// TODO() The resulting seek is processed in the following callback
// That is to late
@@ -1179,7 +1179,7 @@ void EngineBuffer::processSeek(bool paused) {
return;
}
- if ((seekType & SEEK_PHASE) && !paused && m_pQuantize->toBool()) {
+ if (!paused && ((seekType & SEEK_PHASE) || m_pQuantize->toBool())) {
position = m_pBpmControl->getNearestPositionInPhase(position, true, true);
}
if (position != m_filepos_play) {
From f762d52d65c63bcfac7604011b231019d605dd97 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Daniel=20Sch=C3=BCrmann?= <daschuer@mixxx.org>
Date: Tue, 22 May 2018 02:37:31 +0200
Subject: [PATCH 2/2] Added beatsync to right click on sync in Shade and Deere,
fixes bug #1772526
---
res/skins/Deere/deck_tempo_column.xml | 3 ++-
res/skins/Shade/deck.xml | 2 +-
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/res/skins/Deere/deck_tempo_column.xml b/res/skins/Deere/deck_tempo_column.xml
index 7d7e76ea19..d7de70df24 100644
--- a/res/skins/Deere/deck_tempo_column.xml
+++ b/res/skins/Deere/deck_tempo_column.xml
@@ -15,7 +15,7 @@
<ObjectName>TempoControlButtons</ObjectName>
<Layout>vertical</Layout>
<Children>
- <Template src="skin:left_2state_button.xml">
+ <Template src="skin:left_right_2state_button.xml">
<SetVariable name="TooltipId">sync_enabled</SetVariable>
<SetVariable name="ObjectName">DeckSync</SetVariable>
<SetVariable name="MinimumSize">-1,18</SetVariable>
@@ -28,6 +28,7 @@
<SetVariable name="state_1_pressed"></SetVariable>
<SetVariable name="state_1_unpressed"></SetVariable>
<SetVariable name="left_connection_control"><Variable name="group"/>,sync_enabled</SetVariable>
+ <SetVariable name="right_connection_control"><Variable name="group"/>,beatsync</SetVariable>
</Template>
<WidgetGroup>
diff --git a/res/skins/Shade/deck.xml b/res/skins/Shade/deck.xml
index ad3cabd6d2..494901128a 100644
--- a/res/skins/Shade/deck.xml
+++ b/res/skins/Shade/deck.xml
@@ -450,7 +450,7 @@
<ButtonState>LeftButton</ButtonState>
</Connection>
<Connection>
- <ConfigKey>[Channel<Variable name="channum"/>],beatsync_tempo</ConfigKey>
+ <ConfigKey>[Channel<Variable name="channum"/>],beatsync</ConfigKey>
<ButtonState>RightButton</ButtonState>
</Connection>
</PushButton>

View File

@@ -0,0 +1,73 @@
From c7c5218a8ce51a9bc3384903b056ec485d46e0c7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Daniel=20Sch=C3=BCrmann?= <daschuer@mixxx.org>
Date: Sat, 26 May 2018 23:11:09 +0200
Subject: [PATCH 1/2] manually call doSortByColumn in Qt5, because the required
signal is not emmitted in Qt4
---
src/widget/wtracktableview.cpp | 15 ++++++++++++---
1 file changed, 12 insertions(+), 3 deletions(-)
diff --git a/src/widget/wtracktableview.cpp b/src/widget/wtracktableview.cpp
index f70d20b471..8813d298eb 100644
--- a/src/widget/wtracktableview.cpp
+++ b/src/widget/wtracktableview.cpp
@@ -358,10 +358,14 @@ void WTrackTableView::loadTrackModel(QAbstractItemModel *model) {
// Stupid hack that assumes column 0 is never visible, but this is a weak
// proxy for "there was a saved column sort order"
if (horizontalHeader()->sortIndicatorSection() > 0) {
- // Sort by the saved sort section and order. This line sorts the
- // TrackModel and in turn generates a select()
+ // Sort by the saved sort section and order.
horizontalHeader()->setSortIndicator(horizontalHeader()->sortIndicatorSection(),
horizontalHeader()->sortIndicatorOrder());
+#if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)
+ // in Qt4, the line above emits sortIndicatorChanged
+ // in Qt5, we need to call it manually, which triggers finally the select()
+ doSortByColumn(horizontalHeader()->sortIndicatorSection());
+#endif
} else {
// No saved order is present. Use the TrackModel's default sort order.
int sortColumn = trackModel->defaultSortColumn();
@@ -372,8 +376,13 @@ void WTrackTableView::loadTrackModel(QAbstractItemModel *model) {
while (sortColumn < 0 || trackModel->isColumnInternal(sortColumn)) {
sortColumn++;
}
- // This line sorts the TrackModel and in turn generates a select()
+ // This line sorts the TrackModel
horizontalHeader()->setSortIndicator(sortColumn, sortOrder);
+#if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)
+ // in Qt4, the line above emits sortIndicatorChanged
+ // in Qt5, we need to call it manually, which triggers finally the select()
+ doSortByColumn(sortColumn);
+#endif
}
}
From 7ae7d33ca739f6c7f3250eb3dda182eddb39f627 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Daniel=20Sch=C3=BCrmann?= <daschuer@mixxx.org>
Date: Sun, 27 May 2018 01:36:25 +0200
Subject: [PATCH 2/2] fix double activate of the mixxx library feature
---
src/library/sidebarmodel.cpp | 6 +-----
1 file changed, 1 insertion(+), 5 deletions(-)
diff --git a/src/library/sidebarmodel.cpp b/src/library/sidebarmodel.cpp
index 22a93e2165..518277f640 100644
--- a/src/library/sidebarmodel.cpp
+++ b/src/library/sidebarmodel.cpp
@@ -252,11 +252,7 @@ void SidebarModel::slotPressedUntilClickedTimeout() {
void SidebarModel::pressed(const QModelIndex& index) {
stopPressedUntilClickedTimer();
if (index.isValid()) {
- if (index.internalPointer() == this) {
- m_sFeatures[index.row()]->activate();
- } else {
- startPressedUntilClickedTimer(index);
- }
+ startPressedUntilClickedTimer(index);
}
}

View File

@@ -0,0 +1,524 @@
From 84f6380d0c9397af8da4f4dda443aeb36239d9dd Mon Sep 17 00:00:00 2001
From: RJ Skerry-Ryan <rryan@mixxx.org>
Date: Mon, 23 Apr 2018 22:08:15 -0700
Subject: [PATCH 1/6] Fix lack of QAtomicPointer::operator T*() on Qt5.
---
src/engine/loopingcontrol.cpp | 3 ++-
src/util/compatibility.h | 10 ++++++++++
2 files changed, 12 insertions(+), 1 deletion(-)
diff --git a/src/engine/loopingcontrol.cpp b/src/engine/loopingcontrol.cpp
index 62a70de981..d8a92fc536 100644
--- a/src/engine/loopingcontrol.cpp
+++ b/src/engine/loopingcontrol.cpp
@@ -10,6 +10,7 @@
#include "engine/loopingcontrol.h"
#include "engine/bpmcontrol.h"
#include "engine/enginecontrol.h"
+#include "util/compatibility.h"
#include "util/math.h"
#include "util/sample.h"
@@ -790,7 +791,7 @@ void LoopingControl::notifySeek(double dNewPlaypos, bool adjustingPhase) {
void LoopingControl::setLoopingEnabled(bool enabled) {
m_bLoopingEnabled = enabled;
m_pCOLoopEnabled->set(enabled);
- BeatLoopingControl* pActiveBeatLoop = m_pActiveBeatLoop;
+ BeatLoopingControl* pActiveBeatLoop = load_atomic_pointer(m_pActiveBeatLoop);
if (pActiveBeatLoop != nullptr) {
if (enabled) {
pActiveBeatLoop->activate();
diff --git a/src/util/compatibility.h b/src/util/compatibility.h
index e4c92c7abe..9cf12004c8 100644
--- a/src/util/compatibility.h
+++ b/src/util/compatibility.h
@@ -2,6 +2,7 @@
#define COMPATABILITY_H
#include <QAtomicInt>
+#include <QAtomicPointer>
#include <QStringList>
#include <QApplication>
@@ -21,6 +22,15 @@ inline int load_atomic(const QAtomicInt& value) {
#endif
}
+template <typename T>
+inline T* load_atomic_pointer(const QAtomicPointer<T>& value) {
+#if QT_VERSION < QT_VERSION_CHECK(5, 0, 0)
+ return value;
+#else
+ return value.load();
+#endif
+}
+
inline QLocale inputLocale() {
#if QT_VERSION < QT_VERSION_CHECK(5, 0, 0)
return QApplication::keyboardInputLocale();
From 62a034578ba5683562bcc77bf6909a64fcab3e2f Mon Sep 17 00:00:00 2001
From: RJ Skerry-Ryan <rryan@mixxx.org>
Date: Tue, 24 Apr 2018 08:45:45 -0700
Subject: [PATCH 2/6] More qt5 compatibility fixes. How did these slip in?
---
src/engine/sidechain/shoutconnection.cpp | 4 +--
src/mixer/playermanager.cpp | 45 +++++++++++++++++---------------
src/preferences/broadcastprofile.cpp | 5 ++--
src/soundio/soundmanager.cpp | 9 ++++---
4 files changed, 34 insertions(+), 29 deletions(-)
diff --git a/src/engine/sidechain/shoutconnection.cpp b/src/engine/sidechain/shoutconnection.cpp
index 4b8c59ce73..b72b9dda6d 100644
--- a/src/engine/sidechain/shoutconnection.cpp
+++ b/src/engine/sidechain/shoutconnection.cpp
@@ -26,6 +26,7 @@
#include "preferences/usersettings.h"
#include "recording/defs_recording.h"
#include "track/track.h"
+#include "util/compatibility.h"
#include "util/logger.h"
#include <engine/sidechain/shoutconnection.h>
@@ -899,7 +900,7 @@ QSharedPointer<FIFO<CSAMPLE>> ShoutConnection::getOutputFifo() {
}
bool ShoutConnection::threadWaiting() {
- return m_threadWaiting;
+ return load_atomic(m_threadWaiting);
}
void ShoutConnection::run() {
@@ -996,4 +997,3 @@ void ShoutConnection::ignoreSigpipe() {
#endif
}
#endif
-
diff --git a/src/mixer/playermanager.cpp b/src/mixer/playermanager.cpp
index e57a2a9136..b1fb18729e 100644
--- a/src/mixer/playermanager.cpp
+++ b/src/mixer/playermanager.cpp
@@ -202,52 +202,55 @@ bool PlayerManager::isPreviewDeckGroup(const QString& group, int* number) {
unsigned int PlayerManager::numDecks() {
// We do this to cache the control once it is created so callers don't incur
// a hashtable lookup every time they call this.
- if (m_pCOPNumDecks == nullptr) {
- ControlProxy* pNumCO = new ControlProxy(ConfigKey("[Master]", "num_decks"));
- if (!pNumCO->valid()) {
- delete pNumCO;
- pNumCO = NULL;
+ ControlProxy* pCOPNumDecks = m_pCOPNumDecks.loadAcquire();
+ if (pCOPNumDecks == nullptr) {
+ pCOPNumDecks = new ControlProxy(ConfigKey("[Master]", "num_decks"));
+ if (!pCOPNumDecks->valid()) {
+ delete pCOPNumDecks;
+ pCOPNumDecks = nullptr;
} else {
- m_pCOPNumDecks = pNumCO;
+ m_pCOPNumDecks = pCOPNumDecks;
}
}
// m_pCOPNumDecks->get() fails on MacOs
- return m_pCOPNumDecks ? (*m_pCOPNumDecks).get() : 0;
+ return pCOPNumDecks ? pCOPNumDecks->get() : 0;
}
// static
unsigned int PlayerManager::numSamplers() {
// We do this to cache the control once it is created so callers don't incur
// a hashtable lookup every time they call this.
- if (m_pCOPNumSamplers == nullptr) {
- ControlProxy* pNumCO = new ControlProxy(ConfigKey("[Master]", "num_samplers"));
- if (!pNumCO->valid()) {
- delete pNumCO;
- pNumCO = NULL;
+ ControlProxy* pCOPNumSamplers = m_pCOPNumSamplers.loadAcquire();
+ if (pCOPNumSamplers == nullptr) {
+ pCOPNumSamplers = new ControlProxy(ConfigKey("[Master]", "num_samplers"));
+ if (!pCOPNumSamplers->valid()) {
+ delete pCOPNumSamplers;
+ pCOPNumSamplers = nullptr;
} else {
- m_pCOPNumSamplers = pNumCO;
+ m_pCOPNumSamplers = pCOPNumSamplers;
}
}
// m_pCOPNumSamplers->get() fails on MacOs
- return m_pCOPNumSamplers ? (*m_pCOPNumSamplers).get() : 0;
+ return pCOPNumSamplers ? pCOPNumSamplers->get() : 0;
}
// static
unsigned int PlayerManager::numPreviewDecks() {
// We do this to cache the control once it is created so callers don't incur
// a hashtable lookup every time they call this.
- if (m_pCOPNumPreviewDecks == NULL) {
- ControlProxy* pNumCO = new ControlProxy(
+ ControlProxy* pCOPNumPreviewDecks = m_pCOPNumPreviewDecks.loadAcquire();
+ if (pCOPNumPreviewDecks == nullptr) {
+ pCOPNumPreviewDecks = new ControlProxy(
ConfigKey("[Master]", "num_preview_decks"));
- if (!pNumCO->valid()) {
- delete pNumCO;
- pNumCO = NULL;
+ if (!pCOPNumPreviewDecks->valid()) {
+ delete pCOPNumPreviewDecks;
+ pCOPNumPreviewDecks = nullptr;
} else {
- m_pCOPNumPreviewDecks = pNumCO;
+ m_pCOPNumPreviewDecks = pCOPNumPreviewDecks;
}
}
// m_pCOPNumPreviewDecks->get() fails on MacOs
- return m_pCOPNumPreviewDecks ? (*m_pCOPNumPreviewDecks).get() : 0;
+ return pCOPNumPreviewDecks ? pCOPNumPreviewDecks->get() : 0;
}
void PlayerManager::slotNumDecksControlChanged(double v) {
diff --git a/src/preferences/broadcastprofile.cpp b/src/preferences/broadcastprofile.cpp
index 824d2e9364..0b8a1aa9c1 100644
--- a/src/preferences/broadcastprofile.cpp
+++ b/src/preferences/broadcastprofile.cpp
@@ -16,6 +16,7 @@ using namespace QKeychain;
#include "broadcast/defs_broadcast.h"
#include "defs_urls.h"
+#include "util/compatibility.h"
#include "util/xml.h"
#include "util/memory.h"
#include "util/logger.h"
@@ -387,11 +388,11 @@ QString BroadcastProfile::getProfileName() const {
void BroadcastProfile::setConnectionStatus(int newState) {
m_connectionStatus = newState;
- emit connectionStatusChanged(m_connectionStatus);
+ emit connectionStatusChanged(connectionStatus());
}
int BroadcastProfile::connectionStatus() {
- return m_connectionStatus;
+ return load_atomic(m_connectionStatus);
}
void BroadcastProfile::setSecureCredentialStorage(bool value) {
diff --git a/src/soundio/soundmanager.cpp b/src/soundio/soundmanager.cpp
index ce2cb5dd1f..bcd3b8752b 100644
--- a/src/soundio/soundmanager.cpp
+++ b/src/soundio/soundmanager.cpp
@@ -35,6 +35,7 @@
#include "soundio/sounddevicenotfound.h"
#include "soundio/sounddeviceportaudio.h"
#include "soundio/soundmanagerutil.h"
+#include "util/compatibility.h"
#include "util/cmdlineargs.h"
#include "util/defs.h"
#include "util/sample.h"
@@ -363,8 +364,8 @@ SoundDeviceError SoundManager::setupDevices() {
m_pMasterAudioLatencyOverloadCount->set(0);
- // load with all configured devices.
- // all found devices are removed below
+ // load with all configured devices.
+ // all found devices are removed below
QSet<QString> devicesNotFound = m_config.getDevices();
// pair is isInput, isOutput
@@ -692,14 +693,14 @@ int SoundManager::getConfiguredDeckCount() const {
void SoundManager::processUnderflowHappened() {
if (m_underflowUpdateCount == 0) {
- if (m_underflowHappened) {
+ if (load_atomic(m_underflowHappened)) {
m_pMasterAudioLatencyOverload->set(1.0);
m_pMasterAudioLatencyOverloadCount->set(
m_pMasterAudioLatencyOverloadCount->get() + 1);
m_underflowUpdateCount = CPU_OVERLOAD_DURATION * m_config.getSampleRate()
/ m_config.getFramesPerBuffer() / 1000;
- m_underflowHappened = 0; // reseting her is not thread save,
+ m_underflowHappened = 0; // resetting here is not thread safe,
// but that is OK, because we count only
// 1 underflow each 500 ms
} else {
From 39ac01179aa5da33d6326983858d497701edfd27 Mon Sep 17 00:00:00 2001
From: RJ Skerry-Ryan <rryan@mixxx.org>
Date: Wed, 9 May 2018 03:37:51 -0700
Subject: [PATCH 3/6] Alow Qt5 build on Windows.
---
build/depends.py | 68 ++++++++++++++++++++++++++++++++++++++++++------
build/qt5.py | 6 ++++-
src/mixxxapplication.cpp | 17 ++++++++++++
3 files changed, 82 insertions(+), 9 deletions(-)
diff --git a/build/depends.py b/build/depends.py
index 25f1dd425a..5a8b5af564 100644
--- a/build/depends.py
+++ b/build/depends.py
@@ -233,12 +233,32 @@ def find_framework_libdir(qtdir, qt5):
def enabled_modules(build):
qt5 = Qt.qt5_enabled(build)
qt_modules = [
- 'QtCore', 'QtGui', 'QtOpenGL', 'QtXml', 'QtSvg',
- 'QtSql', 'QtScript', 'QtNetwork',
- 'QtTest', 'QtScriptTools'
+ # Keep alphabetized.
+ 'QtCore',
+ 'QtGui',
+ 'QtNetwork',
+ 'QtOpenGL',
+ 'QtScript',
+ 'QtScriptTools',
+ 'QtSql',
+ 'QtSvg',
+ 'QtTest',
+ 'QtXml',
]
if qt5:
- qt_modules.extend(['QtWidgets', 'QtConcurrent'])
+ qt_modules.extend([
+ # Keep alphabetized.
+ 'QtConcurrent',
+ 'QtWidgets',
+ ])
+ if build.platform_is_windows:
+ qt_modules.extend([
+ # Keep alphabetized.
+ 'QtAccessibilitySupport',
+ 'QtEventDispatcherSupport',
+ 'QtFontDatabaseSupport',
+ 'QtThemeSupport',
+ ])
return qt_modules
@staticmethod
@@ -391,6 +411,22 @@ def configure(self, build, conf):
# QtNetwork openssl-linked
build.env.Append(LIBS = 'crypt32')
+ # New libraries required by Qt5.
+ if qt5:
+ build.env.Append(LIBS = 'dwmapi') # qtwindows
+ build.env.Append(LIBS = 'iphlpapi') # qt5network
+ build.env.Append(LIBS = 'libEGL') # qt5opengl
+ build.env.Append(LIBS = 'libGLESv2') # qt5opengl
+ build.env.Append(LIBS = 'netapi32') # qt5core
+ build.env.Append(LIBS = 'userenv') # qt5core
+ build.env.Append(LIBS = 'uxtheme') # ?
+ build.env.Append(LIBS = 'version') # ?
+
+ build.env.Append(LIBS = 'qtfreetype')
+ build.env.Append(LIBS = 'qtharfbuzz')
+ build.env.Append(LIBS = 'qtlibpng')
+ build.env.Append(LIBS = 'qtpcre2')
+
# NOTE(rryan): If you are adding a plugin here, you must also
# update src/mixxxapplication.cpp to define a Q_IMPORT_PLUGIN
# for it. Not all imageformats plugins are built as .libs when
@@ -409,11 +445,27 @@ def configure(self, build, conf):
build.env.Append(LIBS = 'qico')
build.env.Append(LIBS = 'qsvg')
build.env.Append(LIBS = 'qtga')
+ build.env.Append(LIBS = 'qgif')
+ build.env.Append(LIBS = 'qjpeg')
+
+ # accessibility plugins (gone in Qt5)
+ if not qt5:
+ build.env.Append(LIBPATH=[
+ os.path.join(build.env['QTDIR'],'plugins/accessible')])
+ build.env.Append(LIBS = 'qtaccessiblewidgets')
+
+ # platform plugins (new in Qt5 for Windows)
+ if qt5:
+ build.env.Append(LIBPATH=[
+ os.path.join(build.env['QTDIR'],'plugins/platforms')])
+ build.env.Append(LIBS = 'qwindows')
+
+ # sqldrivers (new in Qt5? or did we just start enabling them)
+ if qt5:
+ build.env.Append(LIBPATH=[
+ os.path.join(build.env['QTDIR'],'plugins/sqldrivers')])
+ build.env.Append(LIBS = 'qsqlite')
- # accessibility plugins
- build.env.Append(LIBPATH=[
- os.path.join(build.env['QTDIR'],'plugins/accessible')])
- build.env.Append(LIBS = 'qtaccessiblewidgets')
# Set the rpath for linux/bsd/osx.
diff --git a/build/qt5.py b/build/qt5.py
index 674abef60a..c080e3243f 100644
--- a/build/qt5.py
+++ b/build/qt5.py
@@ -881,14 +881,18 @@ def enable_modules(self, modules, debug=False, crosscompiling=False, staticdeps=
'QtWebKitWidgets',
'QtWidgets',
# Qt Add-Ons
+ 'QtAccessibilitySupport',
'QtConcurrent',
'QtDBus',
+ 'QtEventDispatcherSupport',
+ 'QtFontDatabaseSupport',
'QtOpenGL',
'QtPrintSupport',
'QtDeclarative',
'QtScript',
'QtScriptTools',
'QtSvg',
+ 'QtThemeSupport',
'QtUiTools',
'QtXml',
'QtXmlPatterns',
@@ -967,7 +971,7 @@ def enable_modules(self, modules, debug=False, crosscompiling=False, staticdeps=
modules.append("QtAssistantClient")
self.AppendUnique(LIBS=['qtmain'+debugSuffix])
self.AppendUnique(LIBS=[lib.replace("Qt","Qt5")+debugSuffix for lib in modules if lib not in staticModules])
- self.PrependUnique(LIBS=[lib+debugSuffix for lib in modules if lib in staticModules])
+ self.PrependUnique(LIBS=[lib.replace("Qt", "Qt5")+debugSuffix for lib in modules if lib in staticModules])
if 'QtOpenGL' in modules:
self.AppendUnique(LIBS=['opengl32'])
self.AppendUnique(CPPPATH=[ '$QT5DIR/include/'])
diff --git a/src/mixxxapplication.cpp b/src/mixxxapplication.cpp
index f6a2281f3a..c2d1c83ffa 100644
--- a/src/mixxxapplication.cpp
+++ b/src/mixxxapplication.cpp
@@ -11,6 +11,22 @@
// plugins we link in build/depends.py.
#ifdef QT_NODLL
#include <QtPlugin>
+#if QT_VERSION >= 0x050000
+// sqldrivers plugins
+Q_IMPORT_PLUGIN(QSQLiteDriverPlugin)
+// platform plugins
+Q_IMPORT_PLUGIN(QWindowsIntegrationPlugin)
+// imageformats plugins
+Q_IMPORT_PLUGIN(QSvgPlugin)
+Q_IMPORT_PLUGIN(QSvgIconPlugin)
+Q_IMPORT_PLUGIN(QICOPlugin)
+Q_IMPORT_PLUGIN(QTgaPlugin)
+Q_IMPORT_PLUGIN(QJpegPlugin)
+Q_IMPORT_PLUGIN(QGifPlugin)
+// accessible plugins
+// TODO(rryan): This is supposed to exist but does not in our builds.
+//Q_IMPORT_PLUGIN(AccessibleFactory)
+#else
// iconengines plugins
Q_IMPORT_PLUGIN(qsvgicon)
// imageformats plugins
@@ -20,6 +36,7 @@ Q_IMPORT_PLUGIN(qtga)
// accessible plugins
Q_IMPORT_PLUGIN(qtaccessiblewidgets)
#endif
+#endif
MixxxApplication::MixxxApplication(int& argc, char** argv)
From 03ce46e29a2e83d38a82f6c4d55c540a9df792ce Mon Sep 17 00:00:00 2001
From: RJ Skerry-Ryan <rryan@mixxx.org>
Date: Mon, 14 May 2018 23:36:59 -0700
Subject: [PATCH 4/6] One more missing library.
---
build/depends.py | 1 +
1 file changed, 1 insertion(+)
diff --git a/build/depends.py b/build/depends.py
index 5a8b5af564..774c10cfd7 100644
--- a/build/depends.py
+++ b/build/depends.py
@@ -417,6 +417,7 @@ def configure(self, build, conf):
build.env.Append(LIBS = 'iphlpapi') # qt5network
build.env.Append(LIBS = 'libEGL') # qt5opengl
build.env.Append(LIBS = 'libGLESv2') # qt5opengl
+ build.env.Append(LIBS = 'mpr') # qt5core
build.env.Append(LIBS = 'netapi32') # qt5core
build.env.Append(LIBS = 'userenv') # qt5core
build.env.Append(LIBS = 'uxtheme') # ?
From 0c857e60511b65cebb08821ecebd636af10d7a56 Mon Sep 17 00:00:00 2001
From: RJ Skerry-Ryan <rryan@mixxx.org>
Date: Sat, 19 May 2018 20:54:17 -0700
Subject: [PATCH 5/6] Add QWindowsVistaStyle support.
---
build/depends.py | 6 ++++++
src/mixxxapplication.cpp | 2 ++
2 files changed, 8 insertions(+)
diff --git a/build/depends.py b/build/depends.py
index 774c10cfd7..fec53d681a 100644
--- a/build/depends.py
+++ b/build/depends.py
@@ -461,6 +461,12 @@ def configure(self, build, conf):
os.path.join(build.env['QTDIR'],'plugins/platforms')])
build.env.Append(LIBS = 'qwindows')
+ # styles (new in Qt5 for Windows)
+ if qt5:
+ build.env.Append(LIBPATH=[
+ os.path.join(build.env['QTDIR'],'plugins/styles')])
+ build.env.Append(LIBS = 'qwindowsvistastyle')
+
# sqldrivers (new in Qt5? or did we just start enabling them)
if qt5:
build.env.Append(LIBPATH=[
diff --git a/src/mixxxapplication.cpp b/src/mixxxapplication.cpp
index c2d1c83ffa..4b0ea8b353 100644
--- a/src/mixxxapplication.cpp
+++ b/src/mixxxapplication.cpp
@@ -16,6 +16,8 @@
Q_IMPORT_PLUGIN(QSQLiteDriverPlugin)
// platform plugins
Q_IMPORT_PLUGIN(QWindowsIntegrationPlugin)
+// style plugins
+Q_IMPORT_PLUGIN(QWindowsVistaStylePlugin)
// imageformats plugins
Q_IMPORT_PLUGIN(QSvgPlugin)
Q_IMPORT_PLUGIN(QSvgIconPlugin)
From ed8b240c683a2ada65b11c092909d22469bd0c18 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Daniel=20Sch=C3=BCrmann?= <daschuer@mixxx.org>
Date: Thu, 24 May 2018 00:28:21 +0200
Subject: [PATCH 6/6] don't use loadAquire(), it is not available in Qt4
---
src/mixer/playermanager.cpp | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/mixer/playermanager.cpp b/src/mixer/playermanager.cpp
index b1fb18729e..5835c480f7 100644
--- a/src/mixer/playermanager.cpp
+++ b/src/mixer/playermanager.cpp
@@ -202,7 +202,7 @@ bool PlayerManager::isPreviewDeckGroup(const QString& group, int* number) {
unsigned int PlayerManager::numDecks() {
// We do this to cache the control once it is created so callers don't incur
// a hashtable lookup every time they call this.
- ControlProxy* pCOPNumDecks = m_pCOPNumDecks.loadAcquire();
+ ControlProxy* pCOPNumDecks = load_atomic_pointer(m_pCOPNumDecks);
if (pCOPNumDecks == nullptr) {
pCOPNumDecks = new ControlProxy(ConfigKey("[Master]", "num_decks"));
if (!pCOPNumDecks->valid()) {
@@ -220,7 +220,7 @@ unsigned int PlayerManager::numDecks() {
unsigned int PlayerManager::numSamplers() {
// We do this to cache the control once it is created so callers don't incur
// a hashtable lookup every time they call this.
- ControlProxy* pCOPNumSamplers = m_pCOPNumSamplers.loadAcquire();
+ ControlProxy* pCOPNumSamplers = load_atomic_pointer(m_pCOPNumSamplers);
if (pCOPNumSamplers == nullptr) {
pCOPNumSamplers = new ControlProxy(ConfigKey("[Master]", "num_samplers"));
if (!pCOPNumSamplers->valid()) {
@@ -238,7 +238,7 @@ unsigned int PlayerManager::numSamplers() {
unsigned int PlayerManager::numPreviewDecks() {
// We do this to cache the control once it is created so callers don't incur
// a hashtable lookup every time they call this.
- ControlProxy* pCOPNumPreviewDecks = m_pCOPNumPreviewDecks.loadAcquire();
+ ControlProxy* pCOPNumPreviewDecks = load_atomic_pointer(m_pCOPNumPreviewDecks);
if (pCOPNumPreviewDecks == nullptr) {
pCOPNumPreviewDecks = new ControlProxy(
ConfigKey("[Master]", "num_preview_decks"));

View File

@@ -0,0 +1,648 @@
From dd9af16a5e8c7e6f61951547d6f1260df8c1f6d4 Mon Sep 17 00:00:00 2001
From: "Sean M. Pappalardo" <pegasus@renegadetech.com>
Date: Fri, 20 Apr 2018 14:22:08 -0700
Subject: [PATCH 1/6] AA VMS4: Fix touch strip needle drop scale
---
res/controllers/American-Audio-VMS4-scripts.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/res/controllers/American-Audio-VMS4-scripts.js b/res/controllers/American-Audio-VMS4-scripts.js
index a29e82c632..754348d33f 100644
--- a/res/controllers/American-Audio-VMS4-scripts.js
+++ b/res/controllers/American-Audio-VMS4-scripts.js
@@ -395,7 +395,7 @@ VMS4.jog_move_msb = function(channel, control, value, status, group) {
VMS4.touch_strip = function(channel, control, value, status, group) {
// Only modify the playposition if the deck is NOT playing!
if (engine.getValue(group, "play") === 0) {
- engine.setValue(group, "playposition", value);
+ engine.setValue(group, "playposition", value/0x7F);
}
}
From 2d912dc18558b73153c43bf365c8a85c4084f0a0 Mon Sep 17 00:00:00 2001
From: "Sean M. Pappalardo" <pegasus@renegadetech.com>
Date: Mon, 14 May 2018 12:48:57 -0700
Subject: [PATCH 2/6] Update AA VMS4 preset - Update Mixxx version - Add
cue_play on shifted CUE buttons (to match Traktor Edition label) - Add
sync_master on shifted PLAY buttons (to match Traktor Edition label) - Update
reloop buttons to use reloop_toggle - Make effect controls operate on
Unit1_EffectM, correcting behavior
---
res/controllers/American Audio VMS4.midi.xml | 50 +++++++++++++++++++-------
res/controllers/American-Audio-VMS4-scripts.js | 6 ++--
2 files changed, 40 insertions(+), 16 deletions(-)
diff --git a/res/controllers/American Audio VMS4.midi.xml b/res/controllers/American Audio VMS4.midi.xml
index 564863598b..147d89d857 100644
--- a/res/controllers/American Audio VMS4.midi.xml
+++ b/res/controllers/American Audio VMS4.midi.xml
@@ -4,7 +4,7 @@
<name>American Audio VMS4/4.1</name>
<author>Anders Gunnarsson &amp; Sean M. Pappalardo</author>
<wiki>http://mixxx.org/wiki/doku.php/american_audio_vms4</wiki>
- <description>2-deck control/4-deck mixer preset for Mixxx 2.0. Assumes "Post EQ" mode. (See Wiki for full setup instructions.)</description>
+ <description>2-deck control/4-deck mixer preset for Mixxx 2.1. Assumes "Post EQ" mode. (See Wiki for full setup instructions.)</description>
</info>
<controller id="American Audio VMS4">
<scriptfiles>
@@ -268,6 +268,18 @@
<status>0x80</status>
<midino>0x0C</midino>
</control>
+ <control><!-- on -->
+ <group>[Channel1]</group>
+ <key>cue_play</key>
+ <status>0x91</status>
+ <midino>0x0C</midino>
+ </control>
+ <control><!-- off -->
+ <group>[Channel1]</group>
+ <key>cue_play</key>
+ <status>0x81</status>
+ <midino>0x0C</midino>
+ </control>
<control><!-- on -->
<group>[Channel1]</group>
<key>play</key>
@@ -275,20 +287,20 @@
<midino>0x0D</midino>
</control>
<control><!-- off -->
- <group>[Channel1]</group>
- <key>play</key>
- <status>0x80</status>
- <midino>0x0D</midino>
+ <group>[Channel1]</group>
+ <key>play</key>
+ <status>0x80</status>
+ <midino>0x0D</midino>
</control>
<control><!-- Shifted Play -->
<group>[Channel1]</group>
- <key>start_play</key>
+ <key>sync_master</key>
<status>0x91</status>
<midino>0x0D</midino>
</control>
<control><!-- Shifted Play -->
<group>[Channel1]</group>
- <key>start_play</key>
+ <key>sync_master</key>
<status>0x81</status>
<midino>0x0D</midino>
</control>
@@ -487,7 +499,7 @@
</control>
<control><!-- on -->
<group>[Channel1]</group>
- <key>reloop_exit</key>
+ <key>reloop_toggle</key>
<status>0x90</status>
<midino>0x21</midino>
<options>
@@ -496,7 +508,7 @@
</control>
<control><!-- off -->
<group>[Channel1]</group>
- <key>reloop_exit</key>
+ <key>reloop_toggle</key>
<status>0x80</status>
<midino>0x21</midino>
<options>
@@ -922,6 +934,18 @@
<status>0x80</status>
<midino>0x2E</midino>
</control>
+ <control><!-- on -->
+ <group>[Channel2]</group>
+ <key>cue_play</key>
+ <status>0x91</status>
+ <midino>0x2E</midino>
+ </control>
+ <control><!-- off -->
+ <group>[Channel2]</group>
+ <key>cue_play</key>
+ <status>0x81</status>
+ <midino>0x2E</midino>
+ </control>
<control><!-- on -->
<group>[Channel2]</group>
<key>play</key>
@@ -930,13 +954,13 @@
</control>
<control><!-- Shifted Play -->
<group>[Channel2]</group>
- <key>start_play</key>
+ <key>sync_master</key>
<status>0x91</status>
<midino>0x2F</midino>
</control>
<control><!-- Shifted Play -->
<group>[Channel2]</group>
- <key>start_play</key>
+ <key>sync_master</key>
<status>0x81</status>
<midino>0x2F</midino>
</control>
@@ -1136,7 +1160,7 @@
</control>
<control><!-- on -->
<group>[Channel2]</group>
- <key>reloop_exit</key>
+ <key>reloop_toggle</key>
<status>0x90</status>
<midino>0x43</midino>
<options>
@@ -1145,7 +1169,7 @@
</control>
<control><!-- off -->
<group>[Channel2]</group>
- <key>reloop_exit</key>
+ <key>reloop_toggle</key>
<status>0x80</status>
<midino>0x43</midino>
<options>
diff --git a/res/controllers/American-Audio-VMS4-scripts.js b/res/controllers/American-Audio-VMS4-scripts.js
index 754348d33f..6f4d95a731 100644
--- a/res/controllers/American-Audio-VMS4-scripts.js
+++ b/res/controllers/American-Audio-VMS4-scripts.js
@@ -313,14 +313,14 @@ VMS4.effectSelect = function(channel, control, value, status, group) {
diff += wrapCount*128;
- engine.setValue("[EffectRack1_EffectUnit"+VMS4.GetDeckNum(group)+"]","chain_selector",diff);
+ engine.setValue("[EffectRack1_EffectUnit"+VMS4.GetDeckNum(group)+"_Effect1]","effect_selector",diff);
}
VMS4.effectSelectPress = function(channel, control, value, status, group) {
var deckNum = VMS4.GetDeckNum(group);
if (value > 0x40) {
- engine.setValue("[EffectRack1_EffectUnit"+deckNum+"]","enabled",
- !engine.getValue("[EffectRack1_EffectUnit"+deckNum+"]","enabled")
+ engine.setValue("[EffectRack1_EffectUnit"+deckNum+"_Effect1]","enabled",
+ !engine.getValue("[EffectRack1_EffectUnit"+deckNum+"_Effect1]","enabled")
);
}
}
From a8269117932b078e93b8b0f65a4178994c23214f Mon Sep 17 00:00:00 2001
From: "Sean M. Pappalardo" <pegasus@renegadetech.com>
Date: Tue, 15 May 2018 15:52:32 -0700
Subject: [PATCH 3/6] American Audio VMS4 updates: - Change CUP button to use
cue_gotoandplay - Add strip scroll and touch functions that make the
absolute-position touch scripts behave like relative-mode ones for scrolling
through the library - Comment-out needle drop function in preparation for
replacing it with effect dry/wet - Update script version and date
---
res/controllers/American Audio VMS4.midi.xml | 91 +++++++++++++++++++++++---
res/controllers/American-Audio-VMS4-scripts.js | 49 ++++++++++++--
2 files changed, 124 insertions(+), 16 deletions(-)
diff --git a/res/controllers/American Audio VMS4.midi.xml b/res/controllers/American Audio VMS4.midi.xml
index 147d89d857..3116252a7a 100644
--- a/res/controllers/American Audio VMS4.midi.xml
+++ b/res/controllers/American Audio VMS4.midi.xml
@@ -4,7 +4,8 @@
<name>American Audio VMS4/4.1</name>
<author>Anders Gunnarsson &amp; Sean M. Pappalardo</author>
<wiki>http://mixxx.org/wiki/doku.php/american_audio_vms4</wiki>
- <description>2-deck control/4-deck mixer preset for Mixxx 2.1. Assumes "Post EQ" mode. (See Wiki for full setup instructions.)</description>
+ <description>2-deck control/4-deck mixer preset for Mixxx 2.1.
+Assumes "Post EQ" mode. (See Wiki for full setup instructions.)</description>
</info>
<controller id="American Audio VMS4">
<scriptfiles>
@@ -270,13 +271,13 @@
</control>
<control><!-- on -->
<group>[Channel1]</group>
- <key>cue_play</key>
+ <key>cue_gotoandplay</key>
<status>0x91</status>
<midino>0x0C</midino>
</control>
<control><!-- off -->
<group>[Channel1]</group>
- <key>cue_play</key>
+ <key>cue_gotoandplay</key>
<status>0x81</status>
<midino>0x0C</midino>
</control>
@@ -705,14 +706,50 @@
</options>
</control>
<control>
- <group>[Channel1]</group>
- <key>VMS4.touch_strip</key>
+ <group>[Library]</group>
+ <key>VMS4.strip_scroll</key>
<status>0xB0</status>
<midino>0x28</midino>
<options>
<Script-Binding/>
</options>
</control>
+ <control>
+ <group>[Channel1]</group>
+ <key>VMS4.strip_touch</key>
+ <status>0x90</status>
+ <midino>0x57</midino>
+ <options>
+ <Script-Binding/>
+ </options>
+ </control>
+ <control>
+ <group>[Channel1]</group>
+ <key>VMS4.strip_touch</key>
+ <status>0x80</status>
+ <midino>0x57</midino>
+ <options>
+ <Script-Binding/>
+ </options>
+ </control>
+ <control> <!-- Shifted -->
+ <group>[Channel1]</group>
+ <key>VMS4.strip_touch</key>
+ <status>0x91</status>
+ <midino>0x57</midino>
+ <options>
+ <Script-Binding/>
+ </options>
+ </control>
+ <control>
+ <group>[Channel1]</group>
+ <key>VMS4.strip_touch</key>
+ <status>0x81</status>
+ <midino>0x57</midino>
+ <options>
+ <Script-Binding/>
+ </options>
+ </control>
<!-- Deck B -->
<control>
@@ -936,13 +973,13 @@
</control>
<control><!-- on -->
<group>[Channel2]</group>
- <key>cue_play</key>
+ <key>cue_gotoandplay</key>
<status>0x91</status>
<midino>0x2E</midino>
</control>
<control><!-- off -->
<group>[Channel2]</group>
- <key>cue_play</key>
+ <key>cue_gotoandplay</key>
<status>0x81</status>
<midino>0x2E</midino>
</control>
@@ -1366,14 +1403,50 @@
</options>
</control>
<control>
- <group>[Channel2]</group>
- <key>VMS4.touch_strip</key>
+ <group>[Library]</group>
+ <key>VMS4.strip_scroll</key>
<status>0xB0</status>
<midino>0x2D</midino>
<options>
<Script-Binding/>
</options>
</control>
+ <control>
+ <group>[Channel2]</group>
+ <key>VMS4.strip_touch</key>
+ <status>0x90</status>
+ <midino>0x58</midino>
+ <options>
+ <Script-Binding/>
+ </options>
+ </control>
+ <control>
+ <group>[Channel2]</group>
+ <key>VMS4.strip_touch</key>
+ <status>0x80</status>
+ <midino>0x58</midino>
+ <options>
+ <Script-Binding/>
+ </options>
+ </control>
+ <control> <!-- Shifted -->
+ <group>[Channel2]</group>
+ <key>VMS4.strip_touch</key>
+ <status>0x91</status>
+ <midino>0x58</midino>
+ <options>
+ <Script-Binding/>
+ </options>
+ </control>
+ <control>
+ <group>[Channel2]</group>
+ <key>VMS4.strip_touch</key>
+ <status>0x81</status>
+ <midino>0x58</midino>
+ <options>
+ <Script-Binding/>
+ </options>
+ </control>
<!-- Mixer main-->
<control>
diff --git a/res/controllers/American-Audio-VMS4-scripts.js b/res/controllers/American-Audio-VMS4-scripts.js
index 6f4d95a731..8096205cee 100644
--- a/res/controllers/American-Audio-VMS4-scripts.js
+++ b/res/controllers/American-Audio-VMS4-scripts.js
@@ -1,7 +1,7 @@
/**
- * American Audio VMS4 controller script v2.0 for Mixxx v2.0
+ * American Audio VMS4 controller script v2.1 for Mixxx v2.1.x
* Copyright (C) 2010 Anders Gunnarsson
- * Copyright (C) 2011-2015 Sean M. Pappalardo
+ * Copyright (C) 2011-2018 Sean M. Pappalardo
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@@ -228,6 +228,8 @@ VMS4.Deck.prototype.keyLockButtonHandler = function(value) {
}
VMS4.Deck.prototype.effectParamButtonHandler = function(value) {
+ // Couldn't get this to work. The buttons are mapped instead to VMS4.effectParameterButton
+
// if(value == ButtonState.pressed) {
// this.controlEffectParameter=!this.controlEffectParameter;
// if (this.controlEffectParameter) {
@@ -244,6 +246,10 @@ VMS4.Deck.prototype.effectParamButtonHandler = function(value) {
VMS4.Decks = {"Left":new VMS4.Deck(1,"[Channel1]"), "Right":new VMS4.Deck(2,"[Channel2]")};
VMS4.GroupToDeck = {"[Channel1]":"Left", "[Channel2]":"Right"};
VMS4.GroupToDeckNum = {"[Channel1]":1, "[Channel2]":2, "[Channel3]":3, "[Channel4]":4};
+VMS4.StripToSide = {0x28:"Left", 0x2D:"Right"};
+VMS4.touchStripPos = {"Left":null, "Right":null}; // Stores the position on touch
+ // to convert the absolute sliders
+ // to relative ones
VMS4.GetDeck = function(group) {
try {
@@ -392,11 +398,40 @@ VMS4.jog_move_msb = function(channel, control, value, status, group) {
deck.jogMsb = value;
}
-VMS4.touch_strip = function(channel, control, value, status, group) {
- // Only modify the playposition if the deck is NOT playing!
- if (engine.getValue(group, "play") === 0) {
- engine.setValue(group, "playposition", value/0x7F);
- }
+// VMS4.touch_strip = function(channel, control, value, status, group) {
+// // Only modify the playposition if the deck is NOT playing!
+// if (engine.getValue(group, "play") === 0) {
+// engine.setValue(group, "playposition", value/0x7F);
+// }
+// }
+
+VMS4.strip_touch = function(channel, control, value, status, group) {
+ var deck = VMS4.GetDeckNum(group);
+ if (deck === 1) { // Left side
+ if ((status & 0xF0) === 0x90) { // If button down
+ // TODO: Need a CO to focus explicitly on category selection pane
+ // "[Library]","MoveFocus" just toggles and is frustrating
+ } else { // Button up
+ VMS4.touchStripPos["Left"] = null;
+ }
+ } else { // Right side
+ if ((status & 0xF0) === 0x90) { // If button down
+ // TODO: Need a CO to focus explicitly on track selection pane
+ // "[Library]","MoveFocus" just toggles and is frustrating
+ } else { // Button up
+ VMS4.touchStripPos["Right"] = null;
+ }
+ }
+}
+
+VMS4.strip_scroll = function(channel, control, value, status, group) {
+ var side = VMS4.StripToSide[control];
+ if (VMS4.touchStripPos[side] != null) {
+ // Higher on the strip gives a higher value, and up is negative on Library
+ // scroll controls
+ engine.setValue(group, "MoveVertical", VMS4.touchStripPos[side] - value);
+ }
+ VMS4.touchStripPos[side] = value;
}
VMS4.vinyl = function(channel, control, value, status, group) {
From 00dc8100a40c5b1ab10ced81567003b31865befb Mon Sep 17 00:00:00 2001
From: "Sean M. Pappalardo" <pegasus@renegadetech.com>
Date: Wed, 16 May 2018 16:34:34 -0700
Subject: [PATCH 4/6] AA VMS4 preset update - touch strip FX - Add effects
dry/wet control to shifted touch strips - Replace setValue() with
setParameter() - Delete now-unneeded strip touch button down if branch
---
res/controllers/American Audio VMS4.midi.xml | 18 +++++++++++++
res/controllers/American-Audio-VMS4-scripts.js | 36 ++++++++++++--------------
2 files changed, 34 insertions(+), 20 deletions(-)
diff --git a/res/controllers/American Audio VMS4.midi.xml b/res/controllers/American Audio VMS4.midi.xml
index 3116252a7a..7e4d0330c8 100644
--- a/res/controllers/American Audio VMS4.midi.xml
+++ b/res/controllers/American Audio VMS4.midi.xml
@@ -714,6 +714,15 @@ Assumes "Post EQ" mode. (See Wiki for full setup instructions.)</description>
<Script-Binding/>
</options>
</control>
+ <control> <!-- Shifted -->
+ <group>[EffectRack1_EffectUnit1]</group>
+ <key>VMS4.strip_fx_dw</key>
+ <status>0xB1</status>
+ <midino>0x28</midino>
+ <options>
+ <Script-Binding/>
+ </options>
+ </control>
<control>
<group>[Channel1]</group>
<key>VMS4.strip_touch</key>
@@ -1411,6 +1420,15 @@ Assumes "Post EQ" mode. (See Wiki for full setup instructions.)</description>
<Script-Binding/>
</options>
</control>
+ <control> <!-- Shifted -->
+ <group>[EffectRack1_EffectUnit2]</group>
+ <key>VMS4.strip_fx_dw</key>
+ <status>0xB1</status>
+ <midino>0x2D</midino>
+ <options>
+ <Script-Binding/>
+ </options>
+ </control>
<control>
<group>[Channel2]</group>
<key>VMS4.strip_touch</key>
diff --git a/res/controllers/American-Audio-VMS4-scripts.js b/res/controllers/American-Audio-VMS4-scripts.js
index 8096205cee..0a001a77dc 100644
--- a/res/controllers/American-Audio-VMS4-scripts.js
+++ b/res/controllers/American-Audio-VMS4-scripts.js
@@ -319,7 +319,8 @@ VMS4.effectSelect = function(channel, control, value, status, group) {
diff += wrapCount*128;
- engine.setValue("[EffectRack1_EffectUnit"+VMS4.GetDeckNum(group)+"_Effect1]","effect_selector",diff);
+ engine.setValue("[EffectRack1_EffectUnit"+VMS4.GetDeckNum(group)+"_Effect1]",
+ "effect_selector",diff);
}
VMS4.effectSelectPress = function(channel, control, value, status, group) {
@@ -336,11 +337,9 @@ VMS4.effectControl = function(channel, control, value, status, group) {
var deck = VMS4.GetDeck(group);
var deckNum = VMS4.GetDeckNum(group);
if (deck.controlEffectParameter) {
- engine.setValue("[EffectRack1_EffectUnit"+deckNum+"]","super1",
- script.absoluteLin(value,0,1));
+ engine.setParameter("[EffectRack1_EffectUnit"+deckNum+"]","super1",value/0x7F);
} else {
- engine.setValue("[EffectRack1_EffectUnit"+deckNum+"]","mix",
- script.absoluteLin(value,0,1));
+ engine.setParameter("[EffectRack1_EffectUnit"+deckNum+"]","mix",value/0x7F);
}
}
@@ -398,27 +397,18 @@ VMS4.jog_move_msb = function(channel, control, value, status, group) {
deck.jogMsb = value;
}
-// VMS4.touch_strip = function(channel, control, value, status, group) {
-// // Only modify the playposition if the deck is NOT playing!
-// if (engine.getValue(group, "play") === 0) {
-// engine.setValue(group, "playposition", value/0x7F);
-// }
-// }
+VMS4.strip_fx_dw = function(channel, control, value, status, group) {
+ engine.setParameter(group,"mix",value/0x7F);
+}
VMS4.strip_touch = function(channel, control, value, status, group) {
var deck = VMS4.GetDeckNum(group);
if (deck === 1) { // Left side
- if ((status & 0xF0) === 0x90) { // If button down
- // TODO: Need a CO to focus explicitly on category selection pane
- // "[Library]","MoveFocus" just toggles and is frustrating
- } else { // Button up
+ if ((status & 0xF0) === 0x80) { // If button up
VMS4.touchStripPos["Left"] = null;
}
} else { // Right side
- if ((status & 0xF0) === 0x90) { // If button down
- // TODO: Need a CO to focus explicitly on track selection pane
- // "[Library]","MoveFocus" just toggles and is frustrating
- } else { // Button up
+ if ((status & 0xF0) === 0x80) { // If button up
VMS4.touchStripPos["Right"] = null;
}
}
@@ -429,7 +419,13 @@ VMS4.strip_scroll = function(channel, control, value, status, group) {
if (VMS4.touchStripPos[side] != null) {
// Higher on the strip gives a higher value, and up is negative on Library
// scroll controls
- engine.setValue(group, "MoveVertical", VMS4.touchStripPos[side] - value);
+ if (side === "Left") {
+ engine.setValue("[Playlist]", "SelectPlaylist",
+ VMS4.touchStripPos[side] - value);
+ } else {
+ engine.setValue("[Playlist]", "SelectTrackKnob",
+ VMS4.touchStripPos[side] - value);
+ }
}
VMS4.touchStripPos[side] = value;
}
From 89c951158c58296e21c8720ea336b8ea0523fd1a Mon Sep 17 00:00:00 2001
From: "Sean M. Pappalardo" <pegasus@renegadetech.com>
Date: Mon, 21 May 2018 08:28:22 -0700
Subject: [PATCH 5/6] Address code review notes.
---
res/controllers/American-Audio-VMS4-scripts.js | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/res/controllers/American-Audio-VMS4-scripts.js b/res/controllers/American-Audio-VMS4-scripts.js
index 0a001a77dc..ab7cd72d0d 100644
--- a/res/controllers/American-Audio-VMS4-scripts.js
+++ b/res/controllers/American-Audio-VMS4-scripts.js
@@ -326,9 +326,7 @@ VMS4.effectSelect = function(channel, control, value, status, group) {
VMS4.effectSelectPress = function(channel, control, value, status, group) {
var deckNum = VMS4.GetDeckNum(group);
if (value > 0x40) {
- engine.setValue("[EffectRack1_EffectUnit"+deckNum+"_Effect1]","enabled",
- !engine.getValue("[EffectRack1_EffectUnit"+deckNum+"_Effect1]","enabled")
- );
+ script.toggleControl("[EffectRack1_EffectUnit"+deckNum+"_Effect1]","enabled");
}
}
@@ -416,7 +414,7 @@ VMS4.strip_touch = function(channel, control, value, status, group) {
VMS4.strip_scroll = function(channel, control, value, status, group) {
var side = VMS4.StripToSide[control];
- if (VMS4.touchStripPos[side] != null) {
+ if (VMS4.touchStripPos[side] !== null) {
// Higher on the strip gives a higher value, and up is negative on Library
// scroll controls
if (side === "Left") {
From 715548faf594a68c23ac8fccc32ce7d2108526bc Mon Sep 17 00:00:00 2001
From: "Sean M. Pappalardo" <pegasus@renegadetech.com>
Date: Mon, 21 May 2018 09:10:14 -0700
Subject: [PATCH 6/6] Add needle drop when deck isn't playing, FX dry/wet when
it is.
---
res/controllers/American Audio VMS4.midi.xml | 4 ++--
res/controllers/American-Audio-VMS4-scripts.js | 8 +++++++-
2 files changed, 9 insertions(+), 3 deletions(-)
diff --git a/res/controllers/American Audio VMS4.midi.xml b/res/controllers/American Audio VMS4.midi.xml
index 7e4d0330c8..e1b83a2fc9 100644
--- a/res/controllers/American Audio VMS4.midi.xml
+++ b/res/controllers/American Audio VMS4.midi.xml
@@ -715,7 +715,7 @@ Assumes "Post EQ" mode. (See Wiki for full setup instructions.)</description>
</options>
</control>
<control> <!-- Shifted -->
- <group>[EffectRack1_EffectUnit1]</group>
+ <group>[Channel1]</group>
<key>VMS4.strip_fx_dw</key>
<status>0xB1</status>
<midino>0x28</midino>
@@ -1421,7 +1421,7 @@ Assumes "Post EQ" mode. (See Wiki for full setup instructions.)</description>
</options>
</control>
<control> <!-- Shifted -->
- <group>[EffectRack1_EffectUnit2]</group>
+ <group>[Channel2]</group>
<key>VMS4.strip_fx_dw</key>
<status>0xB1</status>
<midino>0x2D</midino>
diff --git a/res/controllers/American-Audio-VMS4-scripts.js b/res/controllers/American-Audio-VMS4-scripts.js
index ab7cd72d0d..c312e0394a 100644
--- a/res/controllers/American-Audio-VMS4-scripts.js
+++ b/res/controllers/American-Audio-VMS4-scripts.js
@@ -396,7 +396,13 @@ VMS4.jog_move_msb = function(channel, control, value, status, group) {
}
VMS4.strip_fx_dw = function(channel, control, value, status, group) {
- engine.setParameter(group,"mix",value/0x7F);
+ var deck = VMS4.GetDeckNum(group);
+ // When the deck is playing, adjust effect dry/wet. When it isn't, do needle drop.
+ if (engine.getValue(group, "play") === 0) {
+ engine.setValue(group, "playposition", value/0x7F);
+ } else {
+ engine.setParameter("[EffectRack1_EffectUnit"+deck+"]","mix",value/0x7F);
+ }
}
VMS4.strip_touch = function(channel, control, value, status, group) {

View File

@@ -89,6 +89,10 @@ PATCHES=(
"${FILESDIR}"/${P}-denon-mc6000mk2-fix-looping.patch "${FILESDIR}"/${P}-denon-mc6000mk2-fix-looping.patch
"${FILESDIR}"/${P}-dlgtrackinfo-mismatching-signal-slot-connection.patch "${FILESDIR}"/${P}-dlgtrackinfo-mismatching-signal-slot-connection.patch
"${FILESDIR}"/${P}-reduce-log-spam-from-soundsourceproxy.patch "${FILESDIR}"/${P}-reduce-log-spam-from-soundsourceproxy.patch
"${FILESDIR}"/${P}-qt5-2.1.patch
"${FILESDIR}"/${P}-update-american-audio-vms4-preset-for-mixxx-v2.1.x.patch
"${FILESDIR}"/${P}-empty-library-fix-lp1772591.patch
"${FILESDIR}"/${P}-beatsync-fix.patch
) )
S="${WORKDIR}/${PN}-release-${PV}" S="${WORKDIR}/${PN}-release-${PV}"