summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristopher Arndt2019-08-10 20:38:22 +0200
committerChristopher Arndt2019-08-10 20:38:22 +0200
commitdb12b9d9f91906fd64ca2f62f2b458084ebef780 (patch)
treed7a1ed0473cfa24a8548bfeea8569bf49b92d94e
downloadaur-db12b9d9f91906fd64ca2f62f2b458084ebef780.tar.gz
Add new VCS package 'ensemble-chorus-git'
Signed-off-by: Christopher Arndt <chris@chrisarndt.de>
-rw-r--r--.SRCINFO37
-rw-r--r--.gitignore12
-rw-r--r--PKGBUILD70
-rw-r--r--juce-pixel.patch161
4 files changed, 280 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..d7adef558e18
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,37 @@
+pkgbase = ensemble-chorus-git
+ pkgdesc = An LV2/VST2 plugin and stand-alone application emulating a string ensemble chorus
+ pkgver = 0.0.1.r56.59baeb8
+ pkgrel = 1
+ url = https://github.com/jpcima/ensemble-chorus
+ arch = i686
+ arch = x86_64
+ groups = pro-audio
+ groups = lv2-plugins
+ groups = vst-plugins
+ license = Boost
+ makedepends = git
+ depends = fltk
+ depends = jack
+ depends = libpulse
+ provides = ensemble-chorus
+ provides = ensemble-chorus=0.0.1
+ conflicts = ensemble-chorus
+ source = ensemble-chorus::git+https://github.com/jpcima/ensemble-chorus.git
+ source = git+https://github.com/vinniefalco/DSPFilters.git
+ source = git+https://github.com/martinmoene/gsl-lite.git
+ source = git+https://github.com/thestk/rtaudio.git
+ source = git+https://github.com/boostorg/predef.git
+ source = git+https://github.com/zeux/pugixml.git
+ source = git+https://github.com/jpcima/JUCE.git
+ source = juce-pixel.patch
+ md5sums = SKIP
+ md5sums = SKIP
+ md5sums = SKIP
+ md5sums = SKIP
+ md5sums = SKIP
+ md5sums = SKIP
+ md5sums = SKIP
+ md5sums = a98866e03ccdebf93969755277c2712d
+
+pkgname = ensemble-chorus-git
+
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 000000000000..a77da735c1f7
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,12 @@
+DSPFilters/
+ensemble-chorus/
+gsl-lite/
+JUCE/
+predef/
+pugixml/
+rtaudio/
+pkg/
+src/
+ensemble-chorus-git-*.src.tar.gz
+ensemble-chorus-git-*.tar.xz
+.AURINFO
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..23234271b2d0
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,70 @@
+# Maintainer: Christopher Arndt <aur -at- chrisarndt -dot- de>
+
+_pkgname=ensemble-chorus
+pkgname="${_pkgname}-git"
+pkgver=0.0.1.r56.59baeb8
+pkgrel=1
+pkgdesc="An LV2/VST2 plugin and stand-alone application emulating a string ensemble chorus"
+arch=('i686' 'x86_64')
+url="https://github.com/jpcima/ensemble-chorus"
+license=('Boost')
+depends=('fltk' 'jack' 'libpulse')
+makedepends=('git')
+groups=('pro-audio' 'lv2-plugins' 'vst-plugins')
+provides=("${_pkgname}" "${_pkgname}=${pkgver//.r*/}")
+conflicts=("${_pkgname}")
+source=(
+ "${_pkgname}::git+https://github.com/jpcima/${_pkgname}.git"
+ 'git+https://github.com/vinniefalco/DSPFilters.git'
+ 'git+https://github.com/martinmoene/gsl-lite.git'
+ 'git+https://github.com/thestk/rtaudio.git'
+ 'git+https://github.com/boostorg/predef.git'
+ 'git+https://github.com/zeux/pugixml.git'
+ 'git+https://github.com/jpcima/JUCE.git'
+ 'juce-pixel.patch'
+)
+md5sums=('SKIP'
+ 'SKIP'
+ 'SKIP'
+ 'SKIP'
+ 'SKIP'
+ 'SKIP'
+ 'SKIP'
+ 'a98866e03ccdebf93969755277c2712d')
+
+
+pkgver() {
+ cd "${srcdir}/${_pkgname}"
+
+ local ver=$(grep 'EnsembleChorus VERSION' CMakeLists.txt | cut -d '"' -f 2)
+ echo "$ver.r$(git rev-list --count HEAD).$(git rev-parse --short HEAD)"
+}
+
+prepare() {
+ cd "${srcdir}/${_pkgname}"
+
+ for submodule in DSPFilters gsl-lite rtaudio predef pugixml JUCE; do
+ git config submodule.thirdparty/${submodule}.url "${srcdir}/${submodule}"
+ done
+ git submodule update
+
+ # https://github.com/WeAreROLI/JUCE/commit/4e0adb2af8b424c43d22bd431011c9a6c57d36b6.patch
+ ( cd thirdparty/JUCE; patch -N -r - -p1 -i "${srcdir}/juce-pixel.patch" || exit 0; )
+}
+
+build() {
+ cd "${srcdir}/${_pkgname}"
+
+ mkdir -p build && cd build
+ cmake \
+ -DCMAKE_BUILD_TYPE=Release \
+ -DCMAKE_INSTALL_PREFIX=/usr \
+ ..
+ cmake --build .
+}
+
+package() {
+ cd "${srcdir}/${_pkgname}/build"
+
+ make DESTDIR="${pkgdir}" install
+}
diff --git a/juce-pixel.patch b/juce-pixel.patch
new file mode 100644
index 000000000000..2d94c4a6d256
--- /dev/null
+++ b/juce-pixel.patch
@@ -0,0 +1,161 @@
+From 4e0adb2af8b424c43d22bd431011c9a6c57d36b6 Mon Sep 17 00:00:00 2001
+From: Tom Poole <thomas.poole@roli.com>
+Date: Tue, 30 Apr 2019 17:11:24 +0100
+Subject: [PATCH] GCC 9 compatibility fixes
+
+---
+ .../juce_graphics/colour/juce_PixelFormats.h | 34 +++---------
+ .../native/juce_RenderingHelpers.h | 52 ++-----------------
+ 2 files changed, 9 insertions(+), 77 deletions(-)
+
+diff --git a/modules/juce_graphics/colour/juce_PixelFormats.h b/modules/juce_graphics/colour/juce_PixelFormats.h
+index c57ad53c635..934c61c4781 100644
+--- a/modules/juce_graphics/colour/juce_PixelFormats.h
++++ b/modules/juce_graphics/colour/juce_PixelFormats.h
+@@ -107,22 +107,9 @@ class JUCE_API PixelARGB
+
+ //==============================================================================
+ forcedinline uint8 getAlpha() const noexcept { return components.a; }
+- forcedinline uint8 getRed() const noexcept { return components.r; }
++ forcedinline uint8 getRed() const noexcept { return components.r; }
+ forcedinline uint8 getGreen() const noexcept { return components.g; }
+- forcedinline uint8 getBlue() const noexcept { return components.b; }
+-
+- #if JUCE_GCC
+- // NB these are here as a workaround because GCC refuses to bind to packed values.
+- forcedinline uint8& getAlpha() noexcept { return comps [indexA]; }
+- forcedinline uint8& getRed() noexcept { return comps [indexR]; }
+- forcedinline uint8& getGreen() noexcept { return comps [indexG]; }
+- forcedinline uint8& getBlue() noexcept { return comps [indexB]; }
+- #else
+- forcedinline uint8& getAlpha() noexcept { return components.a; }
+- forcedinline uint8& getRed() noexcept { return components.r; }
+- forcedinline uint8& getGreen() noexcept { return components.g; }
+- forcedinline uint8& getBlue() noexcept { return components.b; }
+- #endif
++ forcedinline uint8 getBlue() const noexcept { return components.b; }
+
+ //==============================================================================
+ /** Copies another pixel colour over this one.
+@@ -341,9 +328,6 @@ class JUCE_API PixelARGB
+ {
+ uint32 internal;
+ Components components;
+- #if JUCE_GCC
+- uint8 comps[4]; // helper struct needed because gcc does not allow references to packed union members
+- #endif
+ };
+ }
+ #ifndef DOXYGEN
+@@ -428,13 +412,9 @@ class JUCE_API PixelRGB
+
+ //==============================================================================
+ forcedinline uint8 getAlpha() const noexcept { return 0xff; }
+- forcedinline uint8 getRed() const noexcept { return r; }
++ forcedinline uint8 getRed() const noexcept { return r; }
+ forcedinline uint8 getGreen() const noexcept { return g; }
+- forcedinline uint8 getBlue() const noexcept { return b; }
+-
+- forcedinline uint8& getRed() noexcept { return r; }
+- forcedinline uint8& getGreen() noexcept { return g; }
+- forcedinline uint8& getBlue() noexcept { return b; }
++ forcedinline uint8 getBlue() const noexcept { return b; }
+
+ //==============================================================================
+ /** Copies another pixel colour over this one.
+@@ -651,11 +631,9 @@ class JUCE_API PixelAlpha
+
+ //==============================================================================
+ forcedinline uint8 getAlpha() const noexcept { return a; }
+- forcedinline uint8& getAlpha() noexcept { return a; }
+-
+- forcedinline uint8 getRed() const noexcept { return 0; }
++ forcedinline uint8 getRed() const noexcept { return 0; }
+ forcedinline uint8 getGreen() const noexcept { return 0; }
+- forcedinline uint8 getBlue() const noexcept { return 0; }
++ forcedinline uint8 getBlue() const noexcept { return 0; }
+
+ //==============================================================================
+ /** Copies another pixel colour over this one.
+diff --git a/modules/juce_graphics/native/juce_RenderingHelpers.h b/modules/juce_graphics/native/juce_RenderingHelpers.h
+index b8137ac4d04..10bd64e1459 100644
+--- a/modules/juce_graphics/native/juce_RenderingHelpers.h
++++ b/modules/juce_graphics/native/juce_RenderingHelpers.h
+@@ -577,18 +577,10 @@ namespace EdgeTableFillers
+ : destData (image), sourceColour (colour)
+ {
+ if (sizeof (PixelType) == 3 && (size_t) destData.pixelStride == sizeof (PixelType))
+- {
+ areRGBComponentsEqual = sourceColour.getRed() == sourceColour.getGreen()
+ && sourceColour.getGreen() == sourceColour.getBlue();
+- filler[0].set (sourceColour);
+- filler[1].set (sourceColour);
+- filler[2].set (sourceColour);
+- filler[3].set (sourceColour);
+- }
+ else
+- {
+ areRGBComponentsEqual = false;
+- }
+ }
+
+ forcedinline void setEdgeTableYPos (int y) noexcept
+@@ -670,7 +662,6 @@ namespace EdgeTableFillers
+ const Image::BitmapData& destData;
+ PixelType* linePixels;
+ PixelARGB sourceColour;
+- PixelRGB filler[4];
+ bool areRGBComponentsEqual;
+
+ forcedinline PixelType* getPixel (int x) const noexcept
+@@ -685,47 +676,10 @@ namespace EdgeTableFillers
+
+ forcedinline void replaceLine (PixelRGB* dest, PixelARGB colour, int width) const noexcept
+ {
+- if ((size_t) destData.pixelStride == sizeof (*dest))
+- {
+- if (areRGBComponentsEqual) // if all the component values are the same, we can cheat..
+- {
+- memset ((void*) dest, colour.getRed(), (size_t) width * 3);
+- }
+- else
+- {
+- if (width >> 5)
+- {
+- auto intFiller = reinterpret_cast<const int*> (filler);
+-
+- while (width > 8 && (((pointer_sized_int) dest) & 7) != 0)
+- {
+- dest->set (colour);
+- ++dest;
+- --width;
+- }
+-
+- while (width > 4)
+- {
+- auto d = reinterpret_cast<int*> (dest);
+- *d++ = intFiller[0];
+- *d++ = intFiller[1];
+- *d++ = intFiller[2];
+- dest = reinterpret_cast<PixelRGB*> (d);
+- width -= 4;
+- }
+- }
+-
+- while (--width >= 0)
+- {
+- dest->set (colour);
+- ++dest;
+- }
+- }
+- }
++ if ((size_t) destData.pixelStride == sizeof (*dest) && areRGBComponentsEqual)
++ memset ((void*) dest, colour.getRed(), (size_t) width * 3); // if all the component values are the same, we can cheat..
+ else
+- {
+- JUCE_PERFORM_PIXEL_OP_LOOP (set (colour))
+- }
++ JUCE_PERFORM_PIXEL_OP_LOOP (set (colour));
+ }
+
+ forcedinline void replaceLine (PixelAlpha* dest, const PixelARGB colour, int width) const noexcept