summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristopher Arndt2020-04-04 21:46:55 +0200
committerChristopher Arndt2020-04-04 21:46:55 +0200
commit229c6230585a0ad4e5ea2c1fcbcf80c9b88f96d8 (patch)
tree245661b26011e8cdb47698744409b98385c66102
parent319d20767790fbcf96aa0ec143228814534fc468 (diff)
downloadaur-229c6230585a0ad4e5ea2c1fcbcf80c9b88f96d8.tar.gz
Fix compile error with recent GCC; get version number from VERSION_TF4 file
Signed-off-by: Christopher Arndt <chris@chrisarndt.de>
-rw-r--r--.SRCINFO4
-rw-r--r--.gitignore1
-rw-r--r--PKGBUILD18
-rw-r--r--juce-pixel.patch108
4 files changed, 126 insertions, 5 deletions
diff --git a/.SRCINFO b/.SRCINFO
index 178e7fa994d9..d4722fdfdbd3 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -1,6 +1,6 @@
pkgbase = tunefish4-git
pkgdesc = An additive wavetable-based synthesizer VST plugin (git version)
- pkgver = 4.1.0.r80.13bd685
+ pkgver = 4.2.0.r90.a199cb0
pkgrel = 1
url = http://www.tunefish-synth.com/
arch = x86_64
@@ -12,7 +12,9 @@ pkgbase = tunefish4-git
conflicts = tunefish4
conflicts = tunefish4-vst-bin
source = tunefish4::git://github.com/paynebc/tunefish.git
+ source = juce-pixel.patch
sha256sums = SKIP
+ sha256sums = c0b274515dadd14b530c35517d6fb3749b861344cec90c12eef965c9bca3e479
pkgname = tunefish4-git
diff --git a/.gitignore b/.gitignore
index eff59503e889..3c46f3ab3e90 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,5 +2,6 @@ src/
pkg/
tunefish4/
tunefish4-git-*.tar.xz
+tunefish4-git-*.tar.zst
tunefish4-git-*.src.tar.gz
.AURINFO
diff --git a/PKGBUILD b/PKGBUILD
index 31710d741fa6..344097684fff 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -2,7 +2,7 @@
_pkgname=tunefish4
pkgname="${_pkgname}-git"
-pkgver=4.1.0.r80.13bd685
+pkgver=4.2.0.r90.a199cb0
pkgrel=1
pkgdesc="An additive wavetable-based synthesizer VST plugin (git version)"
arch=('x86_64')
@@ -14,18 +14,28 @@ depends=('webkit2gtk')
makedepends=('git')
provides=("${_pkgname}")
conflicts=("${_pkgname}" "${_pkgname}-vst-bin")
-source=("${_pkgname}::git://github.com/paynebc/tunefish.git")
-sha256sums=('SKIP')
+source=("${_pkgname}::git://github.com/paynebc/tunefish.git"
+ "juce-pixel.patch")
+sha256sums=('SKIP'
+ 'c0b274515dadd14b530c35517d6fb3749b861344cec90c12eef965c9bca3e479')
pkgver() {
cd "${srcdir}/${_pkgname}"
- local version="$(git describe --tags | sed -e 's/RELEASE_\([^-]*\).*/\1/;s/_/./g')"
+ #local version="$(git describe --tags | sed -e 's/RELEASE_\([^-]*\).*/\1/;s/_/./g')"
+ local version="$(cat VERSION_TF4)"
local revision=$(git rev-list --count HEAD)
local hash=$(git rev-parse --short HEAD)
echo $version.r$revision.$hash
}
+prepare() {
+ cd "${srcdir}/${_pkgname}"
+
+ msg2 "Patching JUCE graphics..."
+ patch -p1 -N -i "${srcdir}/juce-pixel.patch"
+}
+
build() {
cd "${srcdir}/${_pkgname}/src/tunefish4/Builds/LinuxMakefile/"
diff --git a/juce-pixel.patch b/juce-pixel.patch
new file mode 100644
index 000000000000..feff831a6bdf
--- /dev/null
+++ b/juce-pixel.patch
@@ -0,0 +1,108 @@
+diff --git a/src/tunefish4/JuceLibraryCode/modules/juce_graphics/colour/juce_PixelFormats.h b/src/tunefish4/JuceLibraryCode/modules/juce_graphics/colour/juce_PixelFormats.h
+index f2d8407..ca0ea53 100644
+--- a/src/tunefish4/JuceLibraryCode/modules/juce_graphics/colour/juce_PixelFormats.h
++++ b/src/tunefish4/JuceLibraryCode/modules/juce_graphics/colour/juce_PixelFormats.h
+@@ -111,19 +111,6 @@ public:
+ 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
+-
+ //==============================================================================
+ /** Copies another pixel colour over this one.
+
+@@ -342,9 +329,6 @@ private:
+ {
+ 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
+diff --git a/src/tunefish4/JuceLibraryCode/modules/juce_graphics/native/juce_RenderingHelpers.h b/src/tunefish4/JuceLibraryCode/modules/juce_graphics/native/juce_RenderingHelpers.h
+index 18ed1c6..e06a799 100644
+--- a/src/tunefish4/JuceLibraryCode/modules/juce_graphics/native/juce_RenderingHelpers.h
++++ b/src/tunefish4/JuceLibraryCode/modules/juce_graphics/native/juce_RenderingHelpers.h
+@@ -585,10 +585,6 @@ namespace EdgeTableFillers
+ {
+ 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
+ {
+@@ -675,7 +671,6 @@ namespace EdgeTableFillers
+ const Image::BitmapData& destData;
+ PixelType* linePixels;
+ PixelARGB sourceColour;
+- PixelRGB filler[4];
+ bool areRGBComponentsEqual;
+
+ forcedinline PixelType* getPixel (int x) const noexcept
+@@ -690,47 +685,10 @@ namespace EdgeTableFillers
+
+ forcedinline void replaceLine (PixelRGB* dest, PixelARGB colour, int width) const noexcept
+ {
+- if (destData.pixelStride == sizeof (*dest))
+- {
+- if (areRGBComponentsEqual) // if all the component values are the same, we can cheat..
+- {
+- memset (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