Initial commit

Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
This commit is contained in:
Andreas Müller
2019-03-16 19:58:53 +01:00
commit ff9499a1c7
290 changed files with 14388 additions and 0 deletions

17
LICENSE Normal file
View File

@@ -0,0 +1,17 @@
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.

17
README Normal file
View File

@@ -0,0 +1,17 @@
OE layer containing digiatal audio workstation and plugin recipes
This layer depends on:
URI: git://git.openembedded.org/openembedded-core
branch: master
revision: HEAD
URI: git://github.com/openembedded/meta-oe.git
branch: master
revision: HEAD
URI: git://github.com/meta-qt5/meta-qt5.git
branch: master
revision: HEAD
Layer maintainer: Andreas Müller <schnitzeltony@gmail.com>

View File

@@ -0,0 +1,53 @@
# Helper class to handle ontarget-postinst creation of lv2 turtle files
# File created during compile usually. To create this file makefiles have to be
# aligned - see do_configure_prepend at zynaddsubfx or distrho-ports. The file
# is expected with the following format
# lv2-ttl-generator <path>/plugin.so
LV2-TURTLE-BUILD-DATA = "${WORKDIR}/lv2-ttl-generator-data"
# E.g zynaddsubfx needs to create dummy lv2 turtle files to keep install sane.
# To delete them automatically (see below) the contain a dummy string:
LV2-DUMMY-TURTLE-STR = "lv2-dummy-turtle-string"
# To make ontarget postinst/prerm happen, the names of all plugins with their
# paths as installed on target a stored in a file called lv2-postinst-manifest
LV2-POSTINST-MANIFEST = "${datadir}/${BPN}/lv2-postinst-manifest"
do_install_append() {
# remove dummy lv2-turtles again
cd ${D}/${libdir}/lv2
for tfile in `grep -rl ${LV2-DUMMY-TURTLE-STR}`; do
rm $tfile
done
# create postinst manifest
install -d ${D}`dirname ${LV2-POSTINST-MANIFEST}`
for sofile in `cat ${LV2-TURTLE-BUILD-DATA} | awk '{ print $2 }'`; do
sofile=`basename $sofile`
installed=`find ${D}${libdir}/lv2 -name $sofile | sed 's|${D}||g'`
echo $installed >> ${D}${LV2-POSTINST-MANIFEST}
done
}
pkg_postinst_ontarget_${PN}-lv2() {
oldpath=`pwd`
for sofile in `cat ${LV2-POSTINST-MANIFEST}`; do
cd `dirname "$sofile"`
lv2-ttl-generator "$sofile"
done
cd $oldpath
}
pkg_prerm_${PN}-lv2() {
for sofile in `cat ${LV2-POSTINST-MANIFEST}`; do
path=`dirname "$sofile"`
for turtle in `find $path -name '*.ttl'`; do
rm $turtle
done
done
}
FILES_${PN}-lv2 += "${LV2-POSTINST-MANIFEST}"
RDEPENDS_${PN}-lv2 += "lv2-ttl-generator"

View File

@@ -0,0 +1,8 @@
# Auto package audio plugins
PACKAGES =+ "${PN}-dssi ${PN}-ladspa ${PN}-lv2 ${PN}-vst"
FILES_${PN}-dssi += "${libdir}/dssi"
FILES_${PN}-ladspa += "${libdir}/ladspa"
FILES_${PN}-lv2 += "${libdir}/lv2"
FILES_${PN}-vst += "${libdir}/vst"

22
classes/qemu-ext.bbclass Normal file
View File

@@ -0,0 +1,22 @@
inherit qemu
DEPENDS += "qemu-native"
# This is an extended/modified qemu.bbclass tailored four our needs:
#
# * add qemu-native to DEPENDS: we can do that because there is no
# introspection/interception delayed qemu usage here
# * The executable binary is set by absolute path: oe-core's qemu.bbclass
# expects it in sysroot. Here we usually run binaries in builddir which are
# not yet installed.
# * A recipe can set an extra library path in 'QEMU_EXTRA_LIBDIR'. This path is
# an absolute path.
def qemu_run_binary_local(data, rootfs_path, binary):
libdir = rootfs_path + data.getVar("libdir", False)
base_libdir = rootfs_path + data.getVar("base_libdir", False)
extra_libdir = data.getVar("QEMU_EXTRA_LIBDIR", False)
if extra_libdir:
return qemu_wrapper_cmdline(data, rootfs_path, [libdir, base_libdir, extra_libdir]) + binary
else:
return qemu_wrapper_cmdline(data, rootfs_path, [libdir, base_libdir]) + binary

37
classes/wafold.bbclass Normal file
View File

@@ -0,0 +1,37 @@
# avoids build breaks when using no-static-libs.inc
DISABLE_STATIC = ""
EXTRA_OECONF_append = " ${PACKAGECONFIG_CONFARGS}"
python waf_preconfigure() {
import subprocess
from distutils.version import StrictVersion
subsrcdir = d.getVar('S')
wafbin = os.path.join(subsrcdir, 'waf')
try:
result = subprocess.check_output([wafbin, '--version'], cwd=subsrcdir, stderr=subprocess.STDOUT)
version = result.decode('utf-8').split()[1]
if StrictVersion(version) >= StrictVersion("1.8.7"):
d.setVar("WAF_EXTRA_CONF", "--bindir=${bindir} --libdir=${libdir}")
except subprocess.CalledProcessError as e:
bb.warn("Unable to execute waf --version, exit code %d. Assuming waf version without bindir/libdir support." % e.returncode)
except FileNotFoundError:
bb.fatal("waf does not exist in %s" % subsrcdir)
}
do_configure[prefuncs] += "waf_preconfigure"
wafold_do_configure() {
${S}/waf configure --prefix=${prefix} ${WAF_EXTRA_CONF} ${EXTRA_OECONF}
}
do_compile[progress] = "outof:^\[\s*(\d+)/\s*(\d+)\]\s+"
wafold_do_compile() {
${S}/waf build ${@oe.utils.parallel_make_argument(d, '-j%d', limit=64)}
}
wafold_do_install() {
${S}/waf install --destdir=${D}
}
EXPORT_FUNCTIONS do_configure do_compile do_install

14
conf/layer.conf Normal file
View File

@@ -0,0 +1,14 @@
# We have a conf and classes directory, append to BBPATH
BBPATH .= ":${LAYERDIR}"
# recipes
BBFILES += "${LAYERDIR}/recipes-*/*/*.bb ${LAYERDIR}/recipes-*/*/*/*.bb ${LAYERDIR}/recipes-*/*/*/*/*.bb"
# appends
BBFILES += "${LAYERDIR}/extends-*/*.bb ${LAYERDIR}/extends-*/*.bbappend"
BBFILE_COLLECTIONS += "meta-musicians"
BBFILE_PATTERN_meta-musicians := "^${LAYERDIR}/"
BBFILE_PRIORITY_meta-musicians = "20"
LAYERDEPENDS_meta-musicians = "core qt5-layer openembedded-layer networking-layer multimedia-layer xfce-layer"
LAYERSERIES_COMPAT_meta-musicians = "thud"

View File

@@ -0,0 +1,73 @@
SUMMARY = "GStreamer package groups"
LICENSE = "MIT"
DEPENDS = "gstreamer gst-plugins-base gst-plugins-good"
LIC_FILES_CHKSUM = "file://${COMMON_LICENSE_DIR}/MIT;md5=0835ade698e0bcf8506ecda2f7b4f302 \
file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
PR = "r13"
PACKAGES = "\
gst-meta-base \
gst-meta-x11-base \
gst-meta-audio \
gst-meta-debug \
gst-meta-video \
"
ALLOW_EMPTY_gst-meta-base = "1"
ALLOW_EMPTY_gst-meta-x11-base = "1"
ALLOW_EMPTY_gst-meta-audio = "1"
ALLOW_EMPTY_gst-meta-debug = "1"
ALLOW_EMPTY_gst-meta-video = "1"
RDEPENDS_gst-meta-base = "\
${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'gst-meta-x11-base', '', d)} \
gstreamer \
gst-plugins-base-playbin \
gst-plugins-base-decodebin \
gst-plugins-base-decodebin2 \
gst-plugins-base-gio \
gst-plugins-base-alsa \
gst-plugins-base-volume \
gst-plugins-base-audioconvert \
gst-plugins-base-audioresample \
gst-plugins-base-typefindfunctions \
gst-plugins-base-videoscale \
gst-plugins-base-ffmpegcolorspace \
gst-plugins-good-autodetect \
gst-plugins-good-souphttpsrc"
RRECOMMENDS_gst-meta-x11-base = "\
gst-plugins-base-ximagesink \
gst-plugins-base-xvimagesink \
"
RDEPENDS_gst-meta-audio = "\
gst-meta-base \
gst-plugins-base-vorbis \
gst-plugins-base-ogg \
gst-plugins-good-wavparse \
gst-plugins-good-flac \
"
RDEPENDS_gst-meta-debug = "\
gst-meta-base \
gst-plugins-good-debug \
gst-plugins-base-audiotestsrc \
gst-plugins-base-videotestsrc \
"
RDEPENDS_gst-meta-video = " \
gst-meta-base \
gst-plugins-good-avi \
gst-plugins-good-matroska \
gst-plugins-base-theora \
"
RRECOMMENDS_gst-meta-video = " \
gst-meta-audio \
"

View File

@@ -0,0 +1,32 @@
From 5478eafecf618cd8e742cc1b96d688a2c7ce5a79 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
Date: Sun, 2 Oct 2016 21:49:33 +0200
Subject: [PATCH] gst-glib2.m4: don't do crazy things to GLIB_CFLAGS
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
we are definitely not one of those poor souls mentioned
Upstream-Status: Pending
Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
---
common/m4/gst-glib2.m4 | 1 -
1 file changed, 1 deletion(-)
diff --git a/common/m4/gst-glib2.m4 b/common/m4/gst-glib2.m4
index b01f02f..4569ae5 100644
--- a/common/m4/gst-glib2.m4
+++ b/common/m4/gst-glib2.m4
@@ -69,7 +69,6 @@ AC_DEFUN([AG_GST_GLIB_CHECK],
fi
dnl for the poor souls who for example have glib in /usr/local
- AS_SCRUB_INCLUDE(GLIB_CFLAGS)
AC_SUBST(GLIB_EXTRA_CFLAGS)
])
--
2.5.5

View File

@@ -0,0 +1,37 @@
audioresample: Fix build on x86 if emmintrin.h is available but can't be used
On x86, EMMINTRIN is defined but not usable without SSE so check for
__SSE__ and __SSE2__ as well.
https://bugzilla.gnome.org/show_bug.cgi?id=670690
Upstream-Status: Backport
Signed-off-by: Jackie Huang <jackie.huang@windriver.com>
---
gst/audioresample/resample.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/gst/audioresample/resample.c b/gst/audioresample/resample.c
index 98d006c..481fa01 100644
--- a/gst/audioresample/resample.c
+++ b/gst/audioresample/resample.c
@@ -77,13 +77,13 @@
#define EXPORT G_GNUC_INTERNAL
#ifdef _USE_SSE
-#ifndef HAVE_XMMINTRIN_H
+#if !defined(__SSE__) || !defined(HAVE_XMMINTRIN_H)
#undef _USE_SSE
#endif
#endif
#ifdef _USE_SSE2
-#ifndef HAVE_EMMINTRIN_H
+#if !defined(__SSE2__) || !defined(HAVE_EMMINTRIN_H)
#undef _USE_SSE2
#endif
#endif
--
1.7.1

View File

@@ -0,0 +1,27 @@
Upstream-Status: Submitted [similar patch by other author, bugzilla]
Bugtracker-URL: https://bugzilla.gnome.org/show_bug.cgi?id=663600
Prepend PKG_CONFIG_SYSROOT to includedir, so configure doesn't
search for gstconfig.h in /usr/include.
Signed-off-by: Andreas Oberritter <obi@opendreambox.org>
---
configure.ac | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/configure.ac b/configure.ac
index 1901bcf..460fb0a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -435,7 +435,7 @@ AG_GST_CHECK_PLUGIN(volume)
dnl check for gstreamer core features (subsystems)
dnl FIXME: this assumes srcdir == builddir for uninstalled setups
GST_CONFIGPATH=`$PKG_CONFIG --variable=includedir gstreamer-0.10`"/gst/gstconfig.h"
-AG_GST_PARSE_SUBSYSTEM_DISABLES($GST_CONFIGPATH)
+AG_GST_PARSE_SUBSYSTEM_DISABLES($PKG_CONFIG_SYSROOT_DIR$GST_CONFIGPATH)
AM_CONDITIONAL(USE_XML, test $GST_DISABLE_XML != "1")
dnl disable plug-ins that require libxml2's HTML support if it is not available
--
1.7.5.4

View File

@@ -0,0 +1,20 @@
Remove -DTREMOR option since Tremor has dropped its internal
libogg2, and gst-plugins-base has dependency on that.
Upstream-Status: Inappropriate [configuration]
Signed-off-by: Dongxiao Xu <dongxiao.xu@intel.com>
Signed-off-by: Shane Wang <shane.wang@intel.com>
diff -r 70065fb4e085 ext/vorbis/Makefile.am
--- a/ext/vorbis/Makefile.am Tue Mar 13 16:36:56 2012 +0800
+++ b/ext/vorbis/Makefile.am Tue Mar 13 16:38:53 2012 +0800
@@ -30,7 +30,7 @@
gstvorbisdec.c gstvorbisdeclib.c gstvorbiscommon.c
libgstivorbisdec_la_CFLAGS = \
$(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) \
- -DTREMOR $(IVORBIS_CFLAGS)
+ $(IVORBIS_CFLAGS)
libgstivorbisdec_la_LIBADD = \
$(top_builddir)/gst-libs/gst/tag/libgsttag-@GST_MAJORMINOR@.la \
$(top_builddir)/gst-libs/gst/audio/libgstaudio-@GST_MAJORMINOR@.la \

View File

@@ -0,0 +1,43 @@
require gst-plugins.inc
LICENSE = "GPLv2+ & LGPLv2+"
LIC_FILES_CHKSUM = "file://COPYING;md5=0636e73ff0215e8d672dc4c32c317bb3 \
file://common/coverage/coverage-report.pl;beginline=2;endline=17;md5=622921ffad8cb18ab906c56052788a3f \
file://COPYING.LIB;md5=55ca817ccb7d5b5b66355690e9abc605 \
file://gst/ffmpegcolorspace/utils.c;beginline=1;endline=20;md5=9c83a200b8e597b26ca29df20fc6ecd0"
DEPENDS += "alsa-lib libogg libvorbis libtheora util-linux tremor glib-2.0-native"
SRC_URI += "file://gst-plugins-base-tremor.patch \
file://configure.ac-fix-subparse-plugin.patch \
file://audioresample-Fix-build-on-x86-if-emmintrin.h-is-ava.patch \
file://0001-aclocal.m4-don-t-do-crazy-things-to-GLIB_CFLAGS.patch \
"
SRC_URI[md5sum] = "776c73883e567f67b9c4a2847d8d041a"
SRC_URI[sha256sum] = "2cd3b0fa8e9b595db8f514ef7c2bdbcd639a0d63d154c00f8c9b609321f49976"
PR = "r8"
inherit gettext
EXTRA_OECONF += "--disable-freetypetest"
PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'x11', d)}"
PACKAGECONFIG[orc] = "--enable-orc,--disable-orc,orc"
PACKAGECONFIG[pango] = "--enable-pango,--disable-pango,pango"
PACKAGECONFIG[x11] = "--enable-x --enable-xvideo,--disable-x --disable-xvideo,virtual/libx11 libxv libsm libice"
PACKAGECONFIG[cdparanoia] = "--enable-cdparanoia,--disable-cdparanoia,cdparanoia"
do_configure_prepend() {
# This m4 file contains nastiness which conflicts with libtool 2.2.2
rm -f ${S}/m4/lib-link.m4
}
FILES_${PN} += "${datadir}/${BPN}"
CACHED_CONFIGUREVARS_append_x86 = " ac_cv_header_emmintrin_h=no ac_cv_header_xmmintrin_h=no"
# /usr/bin/gst-visualise-0.10 is a perl script.
RDEPENDS_${PN}-apps += "perl"

View File

@@ -0,0 +1,33 @@
From 12d18fe4e98e7c232d59b56d529a0521f293fe6d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
Date: Wed, 5 Sep 2012 18:54:42 +0200
Subject: [PATCH] v4l2: fix build with recent kernels, the v4l2_buffer input
field was removed
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Upstream-Status: Backport
[1] http://cgit.freedesktop.org/gstreamer/gst-plugins-good/commit/?id=9f2aa8d47f835ea155aaf635f618c0fc1ca87012
Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
---
sys/v4l2/gstv4l2bufferpool.c | 1 -
1 files changed, 0 insertions(+), 1 deletions(-)
diff --git a/sys/v4l2/gstv4l2bufferpool.c b/sys/v4l2/gstv4l2bufferpool.c
index b81c6a4..51cc0ce 100644
--- a/sys/v4l2/gstv4l2bufferpool.c
+++ b/sys/v4l2/gstv4l2bufferpool.c
@@ -181,7 +181,6 @@ gst_v4l2_buffer_new (GstV4l2BufferPool * pool, guint index, GstCaps * caps)
GST_LOG_OBJECT (pool->v4l2elem, " MMAP offset: %u",
ret->vbuffer.m.offset);
GST_LOG_OBJECT (pool->v4l2elem, " length: %u", ret->vbuffer.length);
- GST_LOG_OBJECT (pool->v4l2elem, " input: %u", ret->vbuffer.input);
data = (guint8 *) v4l2_mmap (0, ret->vbuffer.length,
PROT_READ | PROT_WRITE, MAP_SHARED, pool->video_fd,
--
1.7.6.5

View File

@@ -0,0 +1,45 @@
From ccb01de8096a32d86d47b0d92ec3416c57ee4d25 Mon Sep 17 00:00:00 2001
From: Bruce Ashfield <bruce.ashfield@windriver.com>
Date: Thu, 22 Aug 2013 12:15:54 -0400
Subject: [PATCH] v4l2_calls: define V4L2_CID_HCENTER and V4L2_CID_VCENTER
kernel commit 24b9f5017 [[media] V4L: Remove deprecated image centering controls]
removed the definitions of V4L2_CID_HCENTER and V4L2_CID_VCENTER after three
years of depreciation.
The ioctl values are still free, and the case statement which processess them
in v4l2 userspace falls through to the proper replacement. So in the short
term, we can explicitly define them using the old absolute values, and everything
will work.
Signed-off-by: Bruce Ashfield <bruce.ashfield@windriver.com>
---
sys/v4l2/v4l2_calls.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/sys/v4l2/v4l2_calls.c b/sys/v4l2/v4l2_calls.c
index 309bfb6..3c64544 100644
--- a/sys/v4l2/v4l2_calls.c
+++ b/sys/v4l2/v4l2_calls.c
@@ -54,11 +54,16 @@
#include "gst/gst-i18n-plugin.h"
/* Those are ioctl calls */
+
+/* V4L2_CID_HCENTER has been removed from the mainline kernel, but
+ the ioctl space is still present. Since these values fall through
+ to their replacement, it is safe (in the short term) to re-use the
+ old values explictily */
#ifndef V4L2_CID_HCENTER
-#define V4L2_CID_HCENTER V4L2_CID_HCENTER_DEPRECATED
+#define V4L2_CID_HCENTER V4L2_CID_BASE+22
#endif
#ifndef V4L2_CID_VCENTER
-#define V4L2_CID_VCENTER V4L2_CID_VCENTER_DEPRECATED
+#define V4L2_CID_VCENTER V4L2_CID_BASE+23
#endif
GST_DEBUG_CATEGORY_EXTERN (v4l2_debug);
--
1.7.10.4

View File

@@ -0,0 +1,47 @@
From ce94b2c2b91b6db190c121860e12a6afafce7ae1 Mon Sep 17 00:00:00 2001
From: Roland Krikava <rkrikava@gmail.com>
Date: Fri, 2 Nov 2012 12:38:44 -0400
Subject: [PATCH 407/440] mulawdec: fix integer overrun
There might be more than 65535 samples in a chunk of data.
https://bugzilla.gnome.org/show_bug.cgi?id=687469
Commit - 3be45f70220310ec1c60d819f90b5f2ae03b5d83 in 0.10 branch
Upstream Status: Backported
Signed-off-by: Roland Krikava <rkrikava@gmail.com>
---
gst/law/mulaw-conversion.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/gst/law/mulaw-conversion.c b/gst/law/mulaw-conversion.c
index 8afae80..190a9f5 100644
--- a/gst/law/mulaw-conversion.c
+++ b/gst/law/mulaw-conversion.c
@@ -51,9 +51,10 @@ mulaw_encode (gint16 * in, guint8 * out, gint numsamples)
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7
};
- gint16 sign, exponent, mantissa, i;
+ gint16 sign, exponent, mantissa;
gint16 sample;
guint8 ulawbyte;
+ gint i;
for (i = 0; i < numsamples; i++) {
sample = in[i];
@@ -102,7 +103,8 @@ mulaw_decode (guint8 * in, gint16 * out, gint numsamples)
static gint16 exp_lut[8] = { 0, 132, 396, 924, 1980, 4092, 8316, 16764 };
gint16 sign, exponent, mantissa;
guint8 ulawbyte;
- gint16 linear, i;
+ gint16 linear;
+ gint i;
for (i = 0; i < numsamples; i++) {
ulawbyte = in[i];
--
1.7.9.5

View File

@@ -0,0 +1,47 @@
require gst-plugins.inc
LICENSE = "GPLv2+ & LGPLv2.1+"
LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343 \
file://common/coverage/coverage-report.pl;beginline=2;endline=17;md5=622921ffad8cb18ab906c56052788a3f \
file://gst/replaygain/rganalysis.c;beginline=1;endline=23;md5=b60ebefd5b2f5a8e0cab6bfee391a5fe"
PR = "r8"
PACKAGECONFIG ?= "jpeg v4l \
${@bb.utils.filter('DISTRO_FEATURES', 'pulseaudio x11', d)} \
"
PACKAGECONFIG[pulseaudio] = "--enable-pulse,--disable-pulse,pulseaudio"
PACKAGECONFIG[jack] = "--enable-jack,--disable-jack,jack"
PACKAGECONFIG[jpeg] = "--enable-jpeg,--disable-jpeg,jpeg"
PACKAGECONFIG[wavpack] = "--enable-wavpack,--disable-wavpack,wavpack"
PACKAGECONFIG[gdkpixbuf] = "--enable-gdk_pixbuf,--disable-gdk_pixbuf,gdk-pixbuf"
PACKAGECONFIG[v4l] = "--enable-gst_v4l2 --with-gudev,--disable-gst_v4l2 --without-gudev,libgudev"
# sub-feature of v4l, but control separately since libv4l is not part of oe-core
PACKAGECONFIG[libv4l] = "--with-libv4l2,--without-libv4l2,libv4l"
PACKAGECONFIG[bzip2] = "--enable-bz2,--disable-bz2,bzip2"
PACKAGECONFIG[orc] = "--enable-orc,--disable-orc,orc"
PACKAGECONFIG[x11] = "--enable-x,--disable-x,virtual/libx11 libxfixes libxdamage"
PACKAGECONFIG[dv1394] = "--enable-dv1394,--disable-dv1394,libraw1394 libiec61883 libavc1394"
DEPENDS += "gst-plugins-base gconf cairo libpng zlib libid3tag flac \
speex libsoup-2.4 libcap"
inherit gettext gconf
SRC_URI += "file://0001-v4l2-fix-build-with-recent-kernels-the-v4l2_buffer-i.patch \
file://0001-v4l2_calls-define-V4L2_CID_HCENTER-and-V4L2_CID_VCEN.patch \
file://0407-mulawdec-fix-integer-overrun.patch \
"
EXTRA_OECONF += "--disable-aalib --disable-esd --disable-shout2 --disable-libcaca --disable-hal \
--disable-examples --disable-taglib"
do_configure_prepend() {
# This m4 file contains nastiness which conflicts with libtool 2.2.2
rm ${S}/m4/lib-link.m4 || true
}
SRC_URI[md5sum] = "24f98a294a2b521e1b29412bdadae2e6"
SRC_URI[sha256sum] = "7e27840e40a7932ef2dc032d7201f9f41afcaf0b437daf5d1d44dc96d9e35ac6"
FILES_${PN}-gconfelements += "${sysconfdir}/gconf/schemas/gstreamer-0.10.schemas"
FILES_${PN}-equalizer += "${datadir}/gstreamer-0.10/presets/*.prs"

View File

@@ -0,0 +1,29 @@
SUMMARY = "Plugins for the GStreamer multimedia framework"
HOMEPAGE = "http://gstreamer.freedesktop.org/"
BUGTRACKER = "https://bugzilla.gnome.org/enter_bug.cgi?product=Gstreamer"
SECTION = "multimedia"
DEPENDS = "gstreamer"
# gobject-introspection to get --disable-introspection into UNKNOWN_CONFIGURE_WHITELIST
inherit autotools pkgconfig gobject-introspection
SRC_URI = "http://gstreamer.freedesktop.org/src/${BPN}/${BPN}-${PV}.tar.bz2"
GSTREAMER_DEBUG ?= "--disable-debug"
EXTRA_OECONF = "--disable-valgrind ${GSTREAMER_DEBUG} --disable-examples --disable-introspection"
acpaths = "-I ${S}/common/m4 -I ${S}/m4"
LIBV = "0.10"
require recipes-multimedia/gstreamer/gst-plugins-package.inc
PACKAGES_DYNAMIC += "^${PN}-.*"
# apply gstreamer hack after Makefile.in.in in source is replaced by our version from
# ${STAGING_DATADIR_NATIVE}/gettext/po/Makefile.in.in, but before configure is executed
# http://lists.linuxtogo.org/pipermail/openembedded-core/2012-November/032233.html
oe_runconf_prepend() {
if [ -e ${S}/po/Makefile.in.in ]; then
sed -i -e "1a\\" -e 'GETTEXT_PACKAGE = @GETTEXT_PACKAGE@' ${S}/po/Makefile.in.in
fi
}

View File

@@ -0,0 +1,32 @@
From ed7f4802222234eef192aa3f74bc92268f338f97 Mon Sep 17 00:00:00 2001
From: Sebastian Droege <sebastian.droege@collabora.co.uk>
Date: Tue, 6 Mar 2012 12:28:02 +0100
Subject: [PATCH] baseparse: Fix 'self-comparison always evaluates to true'
This was really a bug.
Commit is ed7f4802222234eef192aa3f74bc92268f338f97 in 0.10 branch
Upstream Status: Backported
Signed-off-by: Sebastian Droege <sebastian.droege@collabora.co.uk>
---
libs/gst/base/gstbaseparse.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libs/gst/base/gstbaseparse.c b/libs/gst/base/gstbaseparse.c
index 851ec1d..108ee89 100644
--- a/libs/gst/base/gstbaseparse.c
+++ b/libs/gst/base/gstbaseparse.c
@@ -3899,7 +3899,7 @@ gst_base_parse_handle_seek (GstBaseParse * parse, GstEvent * event)
seek event (in bytes) to upstream. Segment / flush handling happens
in corresponding src event handlers */
GST_DEBUG_OBJECT (parse, "seek in PUSH mode");
- if (seekstop >= 0 && seekpos <= seekpos)
+ if (seekstop >= 0 && seekstop <= seekpos)
seekstop = seekpos;
new_event = gst_event_new_seek (rate, GST_FORMAT_BYTES, flags,
GST_SEEK_TYPE_SET, seekpos, stop_type, seekstop);
--
1.7.9.5

View File

@@ -0,0 +1,35 @@
From 60516f4798894f958fc53b470e1283318d0f8706 Mon Sep 17 00:00:00 2001
From: Kerrick Staley <kerrick@kerrickstaley.com>
Date: Tue, 20 Aug 2013 23:59:29 -0700
Subject: [PATCH 1/2] parse: make grammar.y work with Bison 3
YYLEX_PARAM is no longer supported in Bison 3.
https://bugzilla.gnome.org/show_bug.cgi?id=706462
---
gst/parse/grammar.y | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/gst/parse/grammar.y b/gst/parse/grammar.y
index 24fc87b..7f9dd16 100644
--- a/gst/parse/grammar.y
+++ b/gst/parse/grammar.y
@@ -26,7 +26,6 @@
*/
#define YYERROR_VERBOSE 1
-#define YYLEX_PARAM scanner
#define YYENABLE_NLS 0
@@ -648,6 +647,7 @@ static int yyerror (void *scanner, graph_t *graph, const char *s);
%right '.'
%left '!' '='
+%lex-param { void *scanner }
%parse-param { void *scanner }
%parse-param { graph_t *graph }
%pure-parser
--
2.7.2

View File

@@ -0,0 +1,32 @@
From 4b145ceb22bbce7ba6e209c6ab61f2d5867e69f9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
Date: Tue, 1 Nov 2016 19:02:30 +0100
Subject: [PATCH] gst-glib2.m4: don't do crazy things to GLIB_CFLAGS
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
we are definitely not one of those poor souls mentioned
Upstream-Status: Pending
Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
---
common/m4/gst-glib2.m4 | 1 -
1 file changed, 1 deletion(-)
diff --git a/common/m4/gst-glib2.m4 b/common/m4/gst-glib2.m4
index b01f02f..4569ae5 100644
--- a/common/m4/gst-glib2.m4
+++ b/common/m4/gst-glib2.m4
@@ -69,7 +69,6 @@ AC_DEFUN([AG_GST_GLIB_CHECK],
fi
dnl for the poor souls who for example have glib in /usr/local
- AS_SCRUB_INCLUDE(GLIB_CFLAGS)
AC_SUBST(GLIB_EXTRA_CFLAGS)
])
--
2.5.5

View File

@@ -0,0 +1,19 @@
# gstreamer: Fix a problem with configure if check has already been built
# Richard Purdie <rpurdie@linux.intel.com>
Upstream-Status: Inappropriate [configuration]
diff -urN gstreamer-0.10.29-orig/configure.ac gstreamer-0.10.29/configure.ac
--- gstreamer-0.10.29-orig/configure.ac 2010-06-26 12:49:27.774930773 +0800
+++ gstreamer-0.10.29/configure.ac 2010-06-26 12:51:12.899200233 +0800
@@ -543,8 +543,10 @@
*) BUILD_CHECK=yes ;;
esac
])
+
dnl bit of a misnomer, but keep the conditional named like this so we don't
dnl have to change too much elsewhere
+HAVE_CHECK=no
AM_CONDITIONAL(HAVE_CHECK, test "x$BUILD_CHECK" = "xyes")
dnl configure the desired buffer alignment

View File

@@ -0,0 +1,16 @@
# Fix crash with gst-inspect
# Chris Lord <chris@openedhand.com>
Upstream-Status: Pending
--- gstreamer-0.10.9/tools/gst-inspect.c.old 2006-09-12 11:56:53.000000000 +0100
+++ gstreamer-0.10.9/tools/gst-inspect.c 2006-09-12 11:57:27.000000000 +0100
@@ -1123,7 +1123,7 @@
g_option_context_add_main_entries (ctx, options, GETTEXT_PACKAGE);
g_option_context_add_group (ctx, gst_init_get_option_group ());
if (!g_option_context_parse (ctx, &argc, &argv, &err)) {
- g_print ("Error initializing: %s\n", err->message);
+ g_print ("Error initializing: %s\n", err ? err->message : "(null)");
exit (1);
}
g_option_context_free (ctx);

View File

@@ -0,0 +1,487 @@
/* GStreamer
* Copyright (C) 1999,2000 Erik Walthinsen <omega@cse.ogi.edu>
* 2000 Wim Taymans <wtay@chello.be>
* 2005 David A. Schleef <ds@schleef.org>
*
* gstregistryxml.c: GstRegistry object, support routines
*
* This library is free software; you can redistribute it and/or
* modify it ulnder the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this library; if not, write to the
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/
#include <gst/gstregistrybinary.h>
/*
** Simple handy function to write a memory location to the registry cache file
*/
inline static gboolean
gst_registry_binary_write(GstRegistry *registry, const void *mem, const ssize_t size)
{
if (write(registry->cache_file, mem, size) != size)
{
GST_ERROR("Failed to write binary registry element: ptr=%p size=%u error=%s\n",
mem, size, strerror(errno));
return FALSE;
}
return TRUE;
}
/*
** Save features GstBinary style
*/
static gboolean
gst_registry_binary_fill_feature(GList **list, GstPluginFeature *orig, GstBinaryPluginFeature *dest, const char *name)
{
GstBinaryChunck *chk;
if ((chk = calloc(1, sizeof (GstBinaryChunck))) == NULL)
return FALSE;
chk->data = dest;
chk->size = sizeof (GstBinaryPluginFeature);
*list = g_list_append(*list, chk);
dest->rank = orig->rank;
if (!strncpy(dest->typename, name, GST_BINARY_REGISTRY_TYPENAME_TYPENAME_LEN) ||
!strncpy(dest->name, orig->name, GST_BINARY_REGISTRY_TYPENAME_NAME_LEN))
{
GST_ERROR("Failed to write binary registry feature");
goto fail;
}
if (GST_IS_ELEMENT_FACTORY(orig))
{
GstElementFactory *factory = GST_ELEMENT_FACTORY(orig);
if (!strncpy(dest->longname, factory->details.longname, GST_BINARY_REGISTRY_TYPENAME_LONGNAME_LEN) ||
!strncpy(dest->class, factory->details.klass, GST_BINARY_REGISTRY_TYPENAME_CLASS_LEN) ||
!strncpy(dest->description, factory->details.description, GST_BINARY_REGISTRY_TYPENAME_DESCRIPTION_LEN) ||
!strncpy(dest->author, factory->details.author, GST_BINARY_REGISTRY_TYPENAME_AUTHOR_LEN))
{
GST_ERROR("Failed to write binary registry feature");
goto fail;
}
}
dest->npadtemplates = dest->ninterfaces = dest->nuritypes = 0;
return TRUE;
fail:
free(chk);
return FALSE;
}
/*
** Initialize the GstBinaryRegistryMagic, setting both our magic number and gstreamer major/minor version
*/
inline static gboolean
gst_registry_binary_initialize_magic(GstBinaryRegistryMagic *m)
{
if (!strncpy(m->magic, GST_MAGIC_BINARY_REGISTRY_STR, GST_MAGIC_BINARY_REGISTRY_LEN) ||
!strncpy(m->version, GST_MAJORMINOR, GST_BINARY_REGISTRY_VERSION_LEN))
{
GST_ERROR("Failed to write magic to the registry magic structure");
return FALSE;
}
return TRUE;
}
/*
** Check GstBinaryRegistryMagic validity.
** Return a pointer pointing right after the magic structure
*/
static gchar *
gst_registry_binary_check_magic(gchar *in)
{
GstBinaryRegistryMagic *m = (GstBinaryRegistryMagic *) in;
if (m == NULL || m->magic == NULL || m->version == NULL)
{
GST_ERROR("Binary registry magic structure is broken");
return NULL;
}
if (strncmp(m->magic, GST_MAGIC_BINARY_REGISTRY_STR, GST_MAGIC_BINARY_REGISTRY_LEN) != 0)
{
GST_ERROR("Binary registry magic is different : %02x%02x%02x%02x != %02x%02x%02x%02x",
GST_MAGIC_BINARY_REGISTRY_STR[0] & 0xff, GST_MAGIC_BINARY_REGISTRY_STR[1] & 0xff,
GST_MAGIC_BINARY_REGISTRY_STR[2] & 0xff, GST_MAGIC_BINARY_REGISTRY_STR[3] & 0xff,
m->magic[0] & 0xff, m->magic[1] & 0xff, m->magic[2] & 0xff, m->magic[3] & 0xff);
return NULL;
}
if (strncmp(m->version, GST_MAJORMINOR, GST_BINARY_REGISTRY_VERSION_LEN))
{
GST_ERROR("Binary registry magic version is different : %s != %s",
GST_MAJORMINOR, m->version);
return NULL;
}
return (in + sizeof (GstBinaryRegistryMagic));
}
/*
** Adapt a GstPlugin to our GstBinaryPluginElement structure, and write it to the
** registry file.
*/
static gboolean
gst_registry_binary_save_plugin(GList **list, GstRegistry *registry, GstPlugin *plugin)
{
GstBinaryPluginElement *e;
GstBinaryChunck *chk;
GList *walk;
if ((e = calloc(1, sizeof (GstBinaryPluginElement))) == NULL ||
(chk = calloc(1, sizeof (GstBinaryChunck))) == NULL)
return FALSE;
chk->data = e;
chk->size = sizeof (GstBinaryPluginElement);
*list = g_list_append(*list, chk);
if (!strncpy(e->name, plugin->desc.name, GST_BINARY_REGISTRY_NAME_LEN) ||
!strncpy(e->description, plugin->desc.description, GST_BINARY_REGISTRY_DESCRIPTION_LEN) ||
!strncpy(e->filename, plugin->filename, _POSIX_PATH_MAX) ||
!strncpy(e->version, plugin->desc.version, GST_BINARY_REGISTRY_VERSION_LEN) ||
!strncpy(e->license, plugin->desc.license, GST_BINARY_REGISTRY_LICENSE_LEN) ||
!strncpy(e->source, plugin->desc.source, GST_BINARY_REGISTRY_SOURCE_LEN) ||
!strncpy(e->package, plugin->desc.package, GST_BINARY_REGISTRY_PACKAGE_LEN) ||
!strncpy(e->origin, plugin->desc.origin, GST_BINARY_REGISTRY_ORIGIN_LEN))
{
GST_DEBUG("Can't adapt GstPlugin to GstBinaryPluginElement");
goto fail;
}
e->size = plugin->file_size;
e->m32p = plugin->file_mtime;
GList *ft_list = gst_registry_get_feature_list_by_plugin(registry, plugin->desc.name);
for (walk = ft_list; walk; walk = g_list_next(walk), e->nfeatures++)
{
GstPluginFeature *curfeat = GST_PLUGIN_FEATURE (walk->data);
GstBinaryPluginFeature *newfeat;
const char *feat_name = g_type_name(G_OBJECT_TYPE(curfeat));
if ((newfeat = calloc(1, sizeof (GstBinaryPluginFeature))) == NULL)
goto fail;
if (!feat_name || !gst_registry_binary_fill_feature(list, curfeat, newfeat, feat_name))
{
GST_ERROR("Can't fill plugin feature, aborting.");
goto fail;
}
}
GST_DEBUG("Found %d features in plugin \"%s\"\n", e->nfeatures, e->name);
return TRUE;
fail:
free(chk);
free(e);
return FALSE;
}
/*
** Write the cache to file. Part of the code was taken from gstregistryxml.c
*/
gboolean
gst_registry_binary_write_cache(GstRegistry *registry, const char *location)
{
GList *walk;
char *tmp_location;
GstBinaryRegistryMagic *magic;
GstBinaryChunck *magic_chunck;
GList *to_write = NULL;
GST_INFO("Writing binary registry cache");
g_return_val_if_fail (GST_IS_REGISTRY (registry), FALSE);
tmp_location = g_strconcat (location, ".tmpXXXXXX", NULL);
registry->cache_file = g_mkstemp (tmp_location);
if (registry->cache_file == -1)
{
char *dir;
/* oops, I bet the directory doesn't exist */
dir = g_path_get_dirname (location);
g_mkdir_with_parents (dir, 0777);
g_free (dir);
registry->cache_file = g_mkstemp (tmp_location);
}
if (registry->cache_file == -1)
goto fail;
if ((magic = calloc(1, sizeof (GstBinaryRegistryMagic))) == NULL ||
!gst_registry_binary_initialize_magic(magic))
goto fail;
if ((magic_chunck = calloc(1, sizeof (GstBinaryChunck))) == NULL)
goto fail;
magic_chunck->data = magic;
magic_chunck->size = sizeof (GstBinaryRegistryMagic);
to_write = g_list_append(to_write, magic_chunck);
/* Iterate trough the list of plugins in the GstRegistry and adapt them to our structures */
for (walk = g_list_last(registry->plugins); walk; walk = g_list_previous(walk))
{
GstPlugin *plugin = GST_PLUGIN(walk->data);
if (!plugin->filename)
continue;
if (plugin->flags & GST_PLUGIN_FLAG_CACHED)
{
int ret;
struct stat statbuf;
ret = g_stat (plugin->filename, &statbuf);
if ((ret = g_stat (plugin->filename, &statbuf)) < 0 ||
plugin->file_mtime != statbuf.st_mtime ||
plugin->file_size != statbuf.st_size)
continue;
}
if (!gst_registry_binary_save_plugin(&to_write, registry, plugin))
{
GST_ERROR("Can't write binary plugin information for \"%s\"", plugin->filename);
continue; /* Try anyway */
}
}
for (walk = g_list_first(to_write); walk; walk = g_list_next(walk))
{
GstBinaryChunck *cur = walk->data;
if (!gst_registry_binary_write(registry, cur->data, cur->size))
{
free(cur->data);
free(cur);
g_list_free(to_write);
goto fail;
}
free(cur->data);
free(cur);
}
g_list_free(to_write);
if (close(registry->cache_file) < 0)
{
GST_DEBUG("Can't close registry file : %s", strerror(errno));
goto fail;
}
if (g_file_test (tmp_location, G_FILE_TEST_EXISTS)) {
#ifdef WIN32
remove (location);
#endif
rename (tmp_location, location);
}
g_free (tmp_location);
return TRUE;
fail:
g_free(tmp_location);
return FALSE;
}
static GstPluginFeature*
gst_registry_binary_load_feature(GstBinaryPluginFeature *in)
{
GstPluginFeature *feature;
GType type;
if (!in->typename || !*(in->typename))
return NULL;
/* GST_INFO("Plugin feature typename : %s", in->typename);*/
if (!(type = g_type_from_name(in->typename)))
{
GST_ERROR("Unknown type from typename");
return NULL;
}
feature = g_object_new (type, NULL);
if (!feature) {
GST_ERROR("Can't create feature from type");
return NULL;
}
if (!GST_IS_PLUGIN_FEATURE (feature)) {
/* don't really know what it is */
if (GST_IS_OBJECT (feature))
gst_object_unref (feature);
else
g_object_unref (feature);
return NULL;
}
feature->name = g_strdup(in->name);
feature->rank = in->rank;
if (GST_IS_ELEMENT_FACTORY(feature))
{
GstElementFactory *factory = GST_ELEMENT_FACTORY(feature);
factory->details.longname = g_strdup(in->longname);
factory->details.klass = g_strdup(in->class);
factory->details.description = g_strdup(in->description);
factory->details.author = g_strdup(in->author);
/* GST_INFO("Element factory : %s", factory->details.longname); */
}
GST_DEBUG("Added feature %p with name %s", feature, feature->name);
return feature;
}
/*
** Make a new plugin from current GstBinaryPluginElement structure
** and save it to the GstRegistry. Return an offset to the next
** GstBinaryPluginElement structure.
*/
static unsigned long
gst_registry_binary_get_binary_plugin(GstRegistry *registry, gchar *in)
{
GstBinaryPluginElement *p = (GstBinaryPluginElement *) in;
GstPlugin *plugin = NULL;
GList *plugin_features = NULL;
GstBinaryPluginFeature *feat;
unsigned int i;
unsigned long offset;
plugin = g_object_new (GST_TYPE_PLUGIN, NULL);
plugin->flags |= GST_PLUGIN_FLAG_CACHED;
plugin->desc.name = g_strdup(p->name);
plugin->desc.description= g_strdup(p->description);
plugin->filename = g_strdup(p->filename);
plugin->desc.version = g_strdup(p->version);
plugin->desc.license = g_strdup(p->license);
plugin->desc.source = g_strdup(p->source);
plugin->desc.package = g_strdup(p->package);
plugin->desc.origin = g_strdup(p->origin);
plugin->file_mtime = p->m32p;
plugin->file_size = p->size;
plugin->basename = g_path_get_basename (plugin->filename);
if (plugin->file_mtime < 0 || plugin->file_size < 0)
{
GST_ERROR("Plugin time or file size is not valid !");
g_free(plugin);
return -1;
}
if (p->nfeatures < 0)
{
GST_ERROR("The number of feature structure is not valid !");
gst_object_unref(plugin);
return -1;
}
for (feat = (GstBinaryPluginFeature *) (in + sizeof (GstBinaryPluginElement)), i = 0;
i < p->nfeatures; i++, feat++)
{
GstPluginFeature *gstfeat;
if ((gstfeat = gst_registry_binary_load_feature(feat)) == NULL)
{
g_list_free(plugin_features);
g_free(plugin);
GST_ERROR("Error while loading binary feature");
return -1;
}
gstfeat->plugin_name = g_strdup(plugin->desc.name);
plugin_features = g_list_prepend(plugin_features, gstfeat);
}
GST_DEBUG("Added plugin \"%s\" to global registry from binary registry", plugin->desc.name);
GList *g;
gst_registry_add_plugin (registry, plugin);
for (g = plugin_features; g; g = g_list_next (g))
gst_registry_add_feature (registry, GST_PLUGIN_FEATURE (g->data));
/* g_list_free(plugin_features); */
offset = sizeof (GstBinaryPluginElement) + p->nfeatures * sizeof (GstBinaryPluginFeature);
return offset;
}
/*
** Read the cache and adapt it to fill GstRegistry
*/
gboolean
gst_registry_binary_read_cache(GstRegistry *registry, const char *location)
{
GMappedFile *mapped = NULL;
GTimer *timer = NULL;
gchar *contents = NULL;
gdouble seconds;
unsigned long offset, inc;
gsize size;
/* make sure these types exist */
GST_TYPE_ELEMENT_FACTORY;
GST_TYPE_TYPE_FIND_FACTORY;
GST_TYPE_INDEX_FACTORY;
timer = g_timer_new ();
if ((mapped = g_mapped_file_new(location, FALSE, NULL)) == NULL ||
(contents = g_mapped_file_get_contents(mapped)) == NULL)
{
GST_ERROR("Can't load file : %s", strerror(errno));
return FALSE;
}
if ((contents = gst_registry_binary_check_magic(contents)) == NULL)
{
GST_ERROR("Binary registry type not recognized (invalid magic)");
g_mapped_file_free(mapped);
return FALSE;
}
if ((size = g_mapped_file_get_length(mapped)) < sizeof (GstBinaryPluginElement))
{
GST_INFO("No binary plugins structure to read");
return TRUE; /* This is not really an error */
}
for (offset = inc = 0; (offset + sizeof (GstBinaryPluginElement)) < size &&
(inc = gst_registry_binary_get_binary_plugin(registry, contents + offset)) > 0;
offset += inc)
; /* May want in the future to do something here */
if (inc < 0)
{
GST_DEBUG("Problem while reading binary registry");
return FALSE;
}
g_timer_stop (timer);
seconds = g_timer_elapsed (timer, NULL);
g_timer_destroy (timer);
GST_INFO ("loaded %s in %f seconds", location, seconds);
if (mapped)
g_mapped_file_free (mapped);
return TRUE;
}

View File

@@ -0,0 +1,194 @@
/* GStreamer
* Copyright (C) 1999,2000 Erik Walthinsen <omega@cse.ogi.edu>
* 2000 Wim Taymans <wim.taymans@chello.be>
*
* gstregistry.h: Header for registry handling
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Library General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Library General Public License for more details.
*
* You should have received a copy of the GNU Library General Public
* License along with this library; if not, write to the
* Free Software Foundation, Inc., 59 Temple Place - Suite 330,
* Boston, MA 02111-1307, USA.
*/
/* SUGGESTIONS AND TODO :
** ====================
** - Use a compressed registry, but would induce performance loss
** - Encrypt the registry, for security purpose, but would also reduce performances
** - Also have a non-mmap based cache reading (work with file descriptors)
*/
#ifndef __GST_REGISTRYBINARY_H__
#define __GST_REGISTRYBINARY_H__
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
#include <stdio.h>
#include <errno.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <dirent.h>
#include <fcntl.h>
#include <sys/mman.h>
#ifdef HAVE_UNISTD_H
#include <unistd.h>
#endif
#include <gst/gst_private.h>
#include <gst/gstelement.h>
#include <gst/gsttypefind.h>
#include <gst/gsttypefindfactory.h>
#include <gst/gsturi.h>
#include <gst/gstinfo.h>
#include <gst/gstenumtypes.h>
#include <gst/gstregistry.h>
#include <gst/gstpadtemplate.h>
#include "glib-compat-private.h"
#include <glib/gstdio.h>
/* A magic, written at the beginning of the file */
#define GST_MAGIC_BINARY_REGISTRY_STR "\xc0\xde\xf0\x0d"
#define GST_MAGIC_BINARY_REGISTRY_LEN (4)
#define GST_MAGIC_BINARY_VERSION_LEN (64)
typedef struct _GstBinaryRegistryMagic
{
char magic[GST_MAGIC_BINARY_REGISTRY_LEN];
char version[GST_MAGIC_BINARY_VERSION_LEN];
} GstBinaryRegistryMagic;
/* Used to store pointers to write */
typedef struct _GstBinaryChunck
{
void *data;
unsigned int size;
} GstBinaryChunck;
/* A structure containing (staticely) every information needed for a plugin
**
** Notes :
** "nfeatures" is used to say how many GstBinaryPluginFeature structures we will have
** right after the structure itself.
*/
/* Various lenght defines for our GstBinaryPluginElement structure
** Note : We could eventually use smaller size
*/
#define GST_BINARY_REGISTRY_NAME_LEN (256)
#define GST_BINARY_REGISTRY_DESCRIPTION_LEN (1024)
#define GST_BINARY_REGISTRY_VERSION_LEN (64)
#define GST_BINARY_REGISTRY_LICENSE_LEN (256)
#define GST_BINARY_REGISTRY_SOURCE_LEN (256)
#define GST_BINARY_REGISTRY_PACKAGE_LEN (1024)
#define GST_BINARY_REGISTRY_ORIGIN_LEN (1024)
typedef struct _GstBinaryPluginElement
{
char name[GST_BINARY_REGISTRY_NAME_LEN];
char description[GST_BINARY_REGISTRY_DESCRIPTION_LEN];
char filename[_POSIX_PATH_MAX];
char version[GST_BINARY_REGISTRY_VERSION_LEN];
char license[GST_BINARY_REGISTRY_LICENSE_LEN];
char source[GST_BINARY_REGISTRY_SOURCE_LEN];
char package[GST_BINARY_REGISTRY_PACKAGE_LEN];
char origin[GST_BINARY_REGISTRY_ORIGIN_LEN];
unsigned long size;
unsigned long m32p;
unsigned int nfeatures;
} GstBinaryPluginElement;
/* A structure containing the plugin features
**
** Note :
** "npadtemplates" is used to store the number of GstBinaryPadTemplate structures following the structure itself.
** "ninterfaces" is used to store the number of GstBinaryInterface structures following the structure itself.
** "nuritypes" is used to store the number of GstBinaryUriType structures following the structure itself.
*/
#define GST_BINARY_REGISTRY_TYPENAME_TYPENAME_LEN (256)
#define GST_BINARY_REGISTRY_TYPENAME_NAME_LEN (256)
#define GST_BINARY_REGISTRY_TYPENAME_LONGNAME_LEN (1024)
#define GST_BINARY_REGISTRY_TYPENAME_CLASS_LEN (512)
#define GST_BINARY_REGISTRY_TYPENAME_DESCRIPTION_LEN (1024)
#define GST_BINARY_REGISTRY_TYPENAME_AUTHOR_LEN (256)
typedef struct _GstBinaryPluginFeature
{
char typename[GST_BINARY_REGISTRY_TYPENAME_TYPENAME_LEN];
char name[GST_BINARY_REGISTRY_TYPENAME_NAME_LEN];
unsigned long rank;
char longname[GST_BINARY_REGISTRY_TYPENAME_LONGNAME_LEN];
char class[GST_BINARY_REGISTRY_TYPENAME_CLASS_LEN];
char description[GST_BINARY_REGISTRY_TYPENAME_DESCRIPTION_LEN];
char author[GST_BINARY_REGISTRY_TYPENAME_AUTHOR_LEN];
unsigned int npadtemplates;
unsigned int ninterfaces;
unsigned int nuritypes;
} GstBinaryPluginFeature;
/*
** A structure containing the static pad templates of a plugin feature
*/
#define GST_BINARY_REGISTRY_PADTEMPLATE_NAME_LEN (256)
#define GST_BINARY_REGISTRY_PADTEMPLATE_CAP_LEN (1024)
typedef struct _GstBinaryPadTemplate
{
char name[GST_BINARY_REGISTRY_PADTEMPLATE_NAME_LEN];
char cap[GST_BINARY_REGISTRY_PADTEMPLATE_CAP_LEN];
int direction; /* Either 0:"sink" or 1:"src" */
GstPadPresence presence;
} GstBinaryPadTemplate;
/*
** A very simple structure defining the plugin feature interface string
*/
#define GST_BINARY_REGISTRY_INTERFACE_INTERFACE_LEN (512)
typedef struct _GstBinaryInterface
{
char interface[GST_BINARY_REGISTRY_INTERFACE_INTERFACE_LEN];
unsigned long size;
} GstBinaryInterface;
/* Uri Type */
typedef struct _GstBinaryUriType
{
GstURIType type;
unsigned long nuriprotocols;
} GstBinaryUriType;
/*
** Function prototypes
*/
/* Local prototypes */
inline static gboolean gst_registry_binary_write(GstRegistry *registry, const void *mem, const ssize_t size);
inline static gboolean gst_registry_binary_initialize_magic(GstBinaryRegistryMagic *m);
static gboolean gst_registry_binary_fill_feature(GList **list, GstPluginFeature *, GstBinaryPluginFeature *, const char *);
static gboolean gst_registry_binary_save_plugin(GList **list, GstRegistry *registry, GstPlugin *plugin);
static gchar *gst_registry_binary_check_magic(gchar *in);
static GstPluginFeature *gst_registry_binary_load_feature(GstBinaryPluginFeature *);
static unsigned long gst_registry_binary_get_binary_plugin(GstRegistry *registry, gchar *in);
/* Exportable */
gboolean gst_registry_binary_write_cache(GstRegistry *registry, const char *location);
gboolean gst_registry_binary_read_cache(GstRegistry *registry, const char *location);
#endif /* !__GST_REGISTRYBINARY_H__ */

View File

@@ -0,0 +1,50 @@
SUMMARY = "GStreamer multimedia framework"
DESCRIPTION = "GStreamer is a multimedia framework for encoding and decoding video and sound. \
It supports a wide range of formats including mp3, ogg, avi, mpeg and quicktime."
HOMEPAGE = "http://gstreamer.freedesktop.org/"
BUGTRACKER = "https://bugzilla.gnome.org/enter_bug.cgi?product=Gstreamer"
SECTION = "multimedia"
LICENSE = "LGPLv2+"
LIC_FILES_CHKSUM = "file://COPYING;md5=55ca817ccb7d5b5b66355690e9abc605 \
file://gst/gst.h;beginline=1;endline=21;md5=8e5fe5e87d33a04479fde862e238eaa4"
DEPENDS = "glib-2.0 libxml2 bison-native flex-native glib-2.0-native"
PR = "r2"
SRC_URI = "http://gstreamer.freedesktop.org/src/gstreamer/gstreamer-${PV}.tar.bz2 \
file://check_fix.patch \
file://gst-inspect-check-error.patch \
file://0001-baseparse-Fix-self-comparison-always-evaluates-to-tr.patch \
file://0001-parse-make-grammar.y-work-with-Bison-3.patch \
file://0002-gst-glib2.m4-don-t-do-crazy-things-to-GLIB_CFLAGS.patch \
"
SRC_URI[md5sum] = "a0cf7d6877f694a1a2ad2b4d1ecb890b"
SRC_URI[sha256sum] = "e556a529e0a8cf1cd0afd0cab2af5488c9524e7c3f409de29b5d82bb41ae7a30"
inherit autotools pkgconfig gettext
GSTREAMER_DEBUG ?= "--disable-debug"
EXTRA_OECONF = "--disable-docbook --disable-gtk-doc \
--disable-dependency-tracking --disable-check \
--disable-examples --disable-tests \
--disable-valgrind ${GSTREAMER_DEBUG} \
--disable-introspection \
"
CACHED_CONFIGUREVARS += "ac_cv_header_valgrind_valgrind_h=no"
# apply gstreamer hack after Makefile.in.in in source is replaced by our version from
# ${STAGING_DATADIR_NATIVE}/gettext/po/Makefile.in.in, but before configure is executed
# http://lists.linuxtogo.org/pipermail/openembedded-core/2012-November/032233.html
oe_runconf_prepend() {
sed -i -e "1a\\" -e 'GETTEXT_PACKAGE = @GETTEXT_PACKAGE@' ${S}/po/Makefile.in.in
}
#do_compile_prepend () {
# mv ${WORKDIR}/gstregistrybinary.[ch] ${S}/gst/
#}
FILES_${PN} += " ${libdir}/gstreamer-0.10/*.so"
FILES_${PN}-dev += " ${libdir}/gstreamer-0.10/*.la ${libdir}/gstreamer-0.10/*.a"
FILES_${PN}-dbg += " ${libdir}/gstreamer-0.10/.debug/ ${libexecdir}/gstreamer-0.10/.debug/"

View File

@@ -0,0 +1,51 @@
SUMMARY = "Software synth with a classic subtractive synthesizer topology"
HOMEPAGE = "http://amsynth.github.io/"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=67b604758dd265c185ce36fcf76a889d"
inherit autotools pkgconfig gtk-icon-cache gettext pack_audio_plugins
DEPENDS += " \
gtk+ \
intltool-native \
"
SRC_URI = "git://github.com/amsynth/amsynth.git;branch=develop"
SRCREV = "3ddbd8c44ea9ddec558c1da0d27b26f553898d4f"
PV = "1.8.0+git${SRCPV}"
S = "${WORKDIR}/git"
PACKAGECONFIG ??= "alsa jack sndfile lv2"
PACKAGECONFIG[oss] = "--with-oss,--without-oss"
PACKAGECONFIG[alsa] = "--with-alsa,--without-alsa,alsa-lib"
PACKAGECONFIG[dssi] = "--with-dssi,--without-dssi,dssi liblo"
PACKAGECONFIG[jack] = "--with-jack,--without-jack,jack"
PACKAGECONFIG[sndfile] = "--with-sndfile,--without-sndfile,libsndfile1"
PACKAGECONFIG[lv2] = "--with-lv2,--without-lv2,lv2"
PACKAGES =+ "${PN}-standalone"
FILES_${PN}-standalone += " \
${datadir}/appdata/amsynth.appdata.xml \
${datadir}/applications \
${datadir}/icons \
${bindir} \
"
FILES_${PN}-dssi += " \
${datadir}/appdata/dssi-amsynth-plugin.metainfo.xml \
"
FILES_${PN}-lv2 += " \
${datadir}/appdata/lv2-amsynth-plugin.metainfo.xml \
"
FILES_${PN}-vst += " \
${datadir}/appdata/vst-amsynth-plugin.metainfo.xml \
"
RDEPENDS_${PN}-standalone += "${PN}"
RDEPENDS_${PN}-dssi += "${PN}"
RDEPENDS_${PN}-lv2 += "${PN}"
RDEPENDS_${PN}-vst += "${PN}"

View File

@@ -0,0 +1,101 @@
SUMMARY = "Ardour is a multi-channel digital audio workstation"
HOMEPAGE = "http://ardour.org/"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=4641e94ec96f98fabc56ff9cc48be14b"
DEPENDS += " \
gettext-native \
gtk+ \
gtkmm \
cppunit \
jack \
alsa-lib \
fftw \
vamp-plugin-sdk \
aubio \
taglib \
boost \
virtual/libx11 \
dssi \
zlib \
lrdf \
rubberband \
suil \
lilv \
libarchive \
libltc \
qm-dsp \
fluidsynth \
"
inherit wafold distro_features_check gtk-icon-cache pkgconfig
REQUIRED_DISTRO_FEATURE = "x11"
SRC_URI = " \
git://github.com/Ardour/ardour.git \
file://0001-remove-all-build-flags-that-cause-trouble-for-cross-.patch \
file://0002-Use-ARM-NEON-intrinsics-if-available-for-mixing-func.patch \
file://0003-Prevent-excessive-meter-redraws-for-inactive-meters-.patch \
file://0004-Prevent-excessive-meter-redraws-for-inactive-meters-.patch \
file://0005-Follow-fluidsynth-s-API-changes-introduced-with-2.0..patch \
file://ardour5.desktop \
"
SRCREV = "ae0dcdc0c5d13483271065c360e378202d20170a"
PV = "5.12"
S = "${WORKDIR}/git"
# arch specific override - default (tested) is ARM -> no fpu-optimizations
# can be something like i686 / x86_64 see file 'wscript' in sourcepath for more details
BUILD_DIST_TARGET ??= "none"
EXTRA_OECONF = " \
--configdir=${sysconfdir} \
--libdir=${libdir} \
--optimize \
--cxx11 \
--no-phone-home \
--use-external-libs \
--qm-dsp-include=${STAGING_INCDIR}/qm-dsp \
\
--with-backends="jack,alsa" \
--dist-target=${BUILD_DIST_TARGET} \
"
do_install_append() {
# install icons to freedesktop locations
for s in 16 22 32 48 256 512; do
install -d ${D}${datadir}/icons/hicolor/${s}x${s}/apps
ln -s ../../../../${BPN}/resources/Ardour-icon_${s}px.png \
${D}${datadir}/icons/hicolor/${s}x${s}/apps/${BPN}.png
done
# install .desktop
install -d ${D}${datadir}/applications
install -m 0644 ${WORKDIR}/ardour5.desktop ${D}${datadir}/applications
}
FILES_${PN} += " \
${datadir}/${BPN} \
${libdir}/${BPN} \
"
FILES_${PN}-dev += " \
${libdir}/${BPN}/libardour.so \
${libdir}/${BPN}/libardouralsautil.so \
${libdir}/${BPN}/libaudiographer.so \
${libdir}/${BPN}/libcanvas.so \
${libdir}/${BPN}/libevoral.so \
${libdir}/${BPN}/libgtkmm2ext.so \
${libdir}/${BPN}/libmidipp.so \
${libdir}/${BPN}/libpbd.so \
${libdir}/${BPN}/libptformat.so \
${libdir}/${BPN}/libwaveview.so \
${libdir}/${BPN}/libwidgets.so \
${libdir}/${BPN}/vamp/*.so \
"
FILES_${PN}-staticdev += " \
${libdir}/${BPN}/*.a \
"

View File

@@ -0,0 +1,75 @@
From 24b6038dc7c235780038d3fce2d9c83fada6ac8b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
Date: Mon, 6 Feb 2017 23:33:45 +0100
Subject: [PATCH] remove all build flags that cause trouble for cross
configure/build
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Upstream-Status: Inappropriate [cross specific]
Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
---
tools/autowaf.py | 1 +
wscript | 26 -
diff --git a/tools/autowaf.py b/tools/autowaf.py
index f82b80a..626e951 100644
--- a/tools/autowaf.py
+++ b/tools/autowaf.py
@@ -93,6 +93,7 @@ def copyfile (task):
def check_header(conf, lang, name, define='', mandatory=True):
"Check for a header"
+ return True
includes = '' # search default system include paths
if sys.platform == "darwin":
includes = '/opt/local/include'
diff --git a/wscript b/wscript
index a7dd5e2..35acc51 100644
--- a/wscript
+++ b/wscript
@@ -440,31 +440,6 @@ int main() { return 0; }''',
compiler_flags.append ("-DARCH_X86")
- if platform == 'linux' :
-
- #
- # determine processor flags via /proc/cpuinfo
- #
-
- if conf.env['build_target'] != 'i386':
-
- flag_line = os.popen ("cat /proc/cpuinfo | grep '^flags'").read()[:-1]
- x86_flags = flag_line.split (": ")[1:][0].split ()
-
- if "mmx" in x86_flags:
- compiler_flags.append ("-mmmx")
- if "sse" in x86_flags:
- build_host_supports_sse = True
- if "3dnow" in x86_flags:
- compiler_flags.append ("-m3dnow")
-
- if cpu == "i586":
- compiler_flags.append ("-march=i586")
- elif cpu == "i686":
- compiler_flags.append ("-march=i686")
-
- if not is_clang and ((conf.env['build_target'] == 'i686') or (conf.env['build_target'] == 'x86_64')) and build_host_supports_sse:
- compiler_flags.extend ([ flags_dict['sse'], flags_dict['fpmath-sse'], flags_dict['xmmintrinsics'] ])
if (conf.env['build_target'] == 'mingw'):
if (re.search ("(x86_64|AMD64)", cpu) != None):
@@ -965,7 +940,6 @@ def configure(conf):
else:
conf.check_cc(function_name='dlopen', header_name='dlfcn.h', lib='dl', uselib_store='DL')
conf.check_cxx(fragment = "#include <boost/version.hpp>\nint main(void) { return (BOOST_VERSION >= 103900 ? 0 : 1); }\n",
- execute = "1",
mandatory = True,
msg = 'Checking for boost library >= 1.39',
okmsg = 'ok',
--
2.9.3

View File

@@ -0,0 +1,229 @@
From 610ce4e19b0b39d0e8391057b22163d4fdc7bdb4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
Date: Mon, 3 Jul 2017 23:24:55 +0200
Subject: [PATCH 2/2] Use ARM NEON intrinsics if available for mixing functions
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
---
libs/ardour/ardour/mix.h | 10 +++
libs/ardour/globals.cc | 13 ++++
libs/ardour/mix.cc | 157 +++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 180 insertions(+)
diff --git a/libs/ardour/ardour/mix.h b/libs/ardour/ardour/mix.h
index 4676c01..55919f0 100644
--- a/libs/ardour/ardour/mix.h
+++ b/libs/ardour/ardour/mix.h
@@ -65,6 +65,16 @@ LIBARDOUR_API void veclib_mix_buffers_no_gain (ARDOUR::Sample * dst, cons
#endif
+#if defined (__ARM_NEON__)
+
+LIBARDOUR_API float neon_compute_peak (const ARDOUR::Sample * buf, ARDOUR::pframes_t nsamples, float current);
+LIBARDOUR_API void neon_find_peaks (const ARDOUR::Sample * buf, ARDOUR::pframes_t nsamples, float *min, float *max);
+LIBARDOUR_API void neon_apply_gain_to_buffer (ARDOUR::Sample * buf, ARDOUR::pframes_t nframes, float gain);
+LIBARDOUR_API void neon_mix_buffers_with_gain (ARDOUR::Sample * dst, const ARDOUR::Sample * src, ARDOUR::pframes_t nframes, float gain);
+LIBARDOUR_API void neon_mix_buffers_no_gain (ARDOUR::Sample * dst, const ARDOUR::Sample * src, ARDOUR::pframes_t nframes);
+
+#endif
+
/* non-optimized functions */
LIBARDOUR_API float default_compute_peak (const ARDOUR::Sample * buf, ARDOUR::pframes_t nsamples, float current);
diff --git a/libs/ardour/globals.cc b/libs/ardour/globals.cc
index 28eb818..d562b35 100644
--- a/libs/ardour/globals.cc
+++ b/libs/ardour/globals.cc
@@ -222,6 +222,19 @@ setup_hardware_optimization (bool try_optimization)
info << "Apple VecLib H/W specific optimizations in use" << endmsg;
}
+#elif defined (__ARM_NEON__)
+ // No runtime detection
+ compute_peak = neon_compute_peak;
+ find_peaks = neon_find_peaks;
+ apply_gain_to_buffer = neon_apply_gain_to_buffer;
+ mix_buffers_with_gain = neon_mix_buffers_with_gain;
+ mix_buffers_no_gain = neon_mix_buffers_no_gain;
+ copy_vector = default_copy_vector;
+
+ generic_mix_functions = false;
+
+ info << "ARM NEON optimizations in use" << endmsg;
+
#endif
/* consider FPU denormal handling to be "h/w optimization" */
diff --git a/libs/ardour/mix.cc b/libs/ardour/mix.cc
index 96ae624..d1a46a2 100644
--- a/libs/ardour/mix.cc
+++ b/libs/ardour/mix.cc
@@ -182,4 +182,161 @@ veclib_mix_buffers_no_gain (ARDOUR::Sample * dst, const ARDOUR::Sample * src, pf
#endif
+#if defined (__ARM_NEON__)
+#include <arm_neon.h>
+
+float
+neon_compute_peak (const ARDOUR::Sample * buf, ARDOUR::pframes_t nsamples, float current)
+{
+ float32x4_t v4current = vdupq_n_f32(current);
+ float32x4_t v4work;
+ float32x2_t v2current;
+
+ // unaligned lead (spread single float to vector)
+ while (((intptr_t)buf) % 16 != 0 && nsamples > 0) {
+ v4work = vdupq_n_f32(*buf);
+ v4current = vmaxq_f32(v4current, vabsq_f32(v4work));
+
+ buf++;
+ nsamples--;
+ }
+ // aligned
+ while (nsamples >= 4) {
+ v4work = vld1q_f32(buf);
+ v4current = vmaxq_f32(v4current, vabsq_f32(v4work));
+
+ buf+=4;
+ nsamples-=4;
+ }
+ // rest < 4 (spread single float to vector)
+ while (nsamples > 0) {
+ v4work = vdupq_n_f32(*buf);
+ v4current = vmaxq_f32(v4current, vabsq_f32(v4work));
+
+ buf++;
+ nsamples--;
+ }
+
+ // calc max in vector by pairwise max done twice
+ v2current = vpmax_f32(vget_low_f32(v4current), vget_high_f32(v4current));
+ v2current = vpmax_f32(v2current, v2current);
+ return vget_lane_f32(v2current, 0);
+}
+
+void
+neon_find_peaks (const ARDOUR::Sample * buf, ARDOUR::pframes_t nsamples, float *min, float *max)
+{
+ float32x4_t v4min = vdupq_n_f32(*min);
+ float32x4_t v4max = vdupq_n_f32(*max);
+ float32x4_t v4work;
+ float32x2_t v2min, v2max;
+
+ // vector
+ while (nsamples >= 4) {
+ v4work = vld1q_f32(buf);
+ v4min = vminq_f32(v4min, v4work);
+ v4max = vmaxq_f32(v4max, v4work);
+
+ buf+=4;
+ nsamples-=4;
+ }
+ // rest < 4 (spread single float to vector)
+ while (nsamples > 0) {
+ v4work = vdupq_n_f32(*buf);
+ v4min = vminq_f32(v4min, v4work);
+ v4max = vmaxq_f32(v4max, v4work);
+
+ buf++;
+ nsamples--;
+ }
+
+ // calc min in vector by pairwise max done twice
+ v2min = vpmin_f32(vget_low_f32(v4min), vget_high_f32(v4min));
+ v2min = vpmax_f32(v2min, v2min);
+ *min = vget_lane_f32(v2min, 0);
+ // calc max in vector by pairwise max done twice
+ v2max = vpmax_f32(vget_low_f32(v4max), vget_high_f32(v4max));
+ v2max = vpmax_f32(v2max, v2max);
+ *max = vget_lane_f32(v2max, 0);
+}
+
+void
+neon_apply_gain_to_buffer (ARDOUR::Sample * buf, ARDOUR::pframes_t nframes, float gain)
+{
+ float32x4_t v4gain = vdupq_n_f32(gain);
+ float32x4_t v4work;
+
+ // vector
+ while (nframes >= 4) {
+ v4work = vld1q_f32(buf);
+ v4work = vmulq_f32(v4work, v4gain);
+ vst1q_f32(buf, v4work);
+
+ buf+=4;
+ nframes-=4;
+ }
+ // rest < 4
+ while (nframes > 0) {
+ *buf *= gain;
+
+ buf++;
+ nframes--;
+ }
+}
+
+void
+neon_mix_buffers_with_gain (ARDOUR::Sample * dst, const ARDOUR::Sample * src, ARDOUR::pframes_t nframes, float gain)
+{
+ float32x4_t v4gain = vdupq_n_f32(gain);
+ float32x4_t v4src, v4dst;
+
+ // vector
+ while (nframes >= 4) {
+ v4src = vld1q_f32(src);
+ v4dst = vld1q_f32(dst);
+ // v4dst = v4dst + v4src * v4gain
+ v4dst = vmlaq_f32(v4dst, v4src, v4gain);
+ vst1q_f32(dst, v4dst);
+
+ src+=4;
+ dst+=4;
+ nframes-=4;
+ }
+ // rest < 4
+ while (nframes > 0) {
+ *dst += *src * gain;
+
+ src++;
+ dst++;
+ nframes--;
+ }
+}
+
+void
+neon_mix_buffers_no_gain (ARDOUR::Sample * dst, const ARDOUR::Sample * src, ARDOUR::pframes_t nframes)
+{
+ float32x4_t v4src, v4dst;
+
+ // vector
+ while (nframes >= 4) {
+ v4src = vld1q_f32(src);
+ v4dst = vld1q_f32(dst);
+ v4dst = vaddq_f32(v4dst, v4src);
+ vst1q_f32(dst, v4dst);
+
+ src+=4;
+ dst+=4;
+ nframes-=4;
+ }
+ // rest < 4
+ while (nframes > 0) {
+ *dst += *src;
+
+ src++;
+ dst++;
+ nframes--;
+ }
+}
+
+#endif
--
2.9.4

View File

@@ -0,0 +1,29 @@
From be826f363522dbca96c8263d404c57c4fe9ff0e2 Mon Sep 17 00:00:00 2001
From: Robin Gareus <robin@gareus.org>
Date: Wed, 3 Oct 2018 20:54:14 +0200
Subject: [PATCH] Prevent excessive meter redraws for inactive meters at zero
Upstream-Status: Backport [1]
[1] https://github.com/Ardour/ardour/commit/be826f363522dbca96c8263d404c57c4fe9ff0e2
---
libs/widgets/fastmeter.cc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libs/widgets/fastmeter.cc b/libs/widgets/fastmeter.cc
index cf1d9dd07..a9ecf5dad 100644
--- a/libs/widgets/fastmeter.cc
+++ b/libs/widgets/fastmeter.cc
@@ -703,7 +703,7 @@ FastMeter::set (float lvl, float peak)
if (pixwidth <= 0 || pixheight <=0) return;
if (peak == -1) {
- if (lvl >= current_peak) {
+ if (lvl >= current_peak && lvl > 0) {
current_peak = lvl;
hold_state = hold_cnt;
}
--
2.14.4

View File

@@ -0,0 +1,34 @@
From 8d5e7e9f4e4372debb9ce285336ccc1ecc0383f6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
Date: Wed, 17 Oct 2018 22:10:41 +0200
Subject: [PATCH] Prevent excessive meter redraws for inactive meters at zero
II
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Same as be826f363522dbca96c8263d404c57c4fe9ff0e2
Upstream-Status: Applied
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
---
libs/canvas/meter.cc | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libs/canvas/meter.cc b/libs/canvas/meter.cc
index b539a1b4a..76e31bf58 100644
--- a/libs/canvas/meter.cc
+++ b/libs/canvas/meter.cc
@@ -702,7 +702,7 @@ Meter::set (float lvl, float peak)
if (pixwidth <= 0 || pixheight <=0) return;
if (peak == -1) {
- if (lvl >= current_peak) {
+ if (lvl >= current_peak && lvl > 0) {
current_peak = lvl;
hold_state = hold_cnt;
}
--
2.14.4

View File

@@ -0,0 +1,117 @@
From ae281f2135607e55675d7cc18a9fe1a5b88464ec Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
Date: Fri, 12 Oct 2018 00:56:59 +0200
Subject: [PATCH] Follow fluidsynth's API changes introduced with 2.0.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Upstream-Status: Submitted [1]
[1] https://github.com/Ardour/ardour/pull/431
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
---
libs/ardour/fluid_synth.cc | 14 ++++++++++++++
libs/plugins/a-fluidsynth.lv2/a-fluidsynth.cc | 27 ++++++++++++++++++++++++++-
2 files changed, 40 insertions(+), 1 deletion(-)
diff --git a/libs/ardour/fluid_synth.cc b/libs/ardour/fluid_synth.cc
index 45653a9e7..c9b7b526e 100644
--- a/libs/ardour/fluid_synth.cc
+++ b/libs/ardour/fluid_synth.cc
@@ -71,6 +71,7 @@ FluidSynth::load_sf2 (const std::string& fn)
}
size_t count;
+#if FLUIDSYNTH_VERSION_MAJOR < 2
fluid_preset_t preset;
sfont->iteration_start (sfont);
@@ -83,7 +84,20 @@ FluidSynth::load_sf2 (const std::string& fn)
preset.get_banknum (&preset),
preset.get_num (&preset)));
}
+#else
+ fluid_preset_t* preset;
+ fluid_sfont_iteration_start (sfont);
+ for (count = 0; (preset = fluid_sfont_iteration_next (sfont)) != 0; ++count) {
+ if (count < 16) {
+ fluid_synth_program_select (_synth, count, _synth_id, fluid_preset_get_banknum (preset), fluid_preset_get_num (preset));
+ }
+ _presets.push_back (BankProgram (
+ fluid_preset_get_name (preset),
+ fluid_preset_get_banknum (preset),
+ fluid_preset_get_num (preset)));
+ }
+#endif
if (count == 0) {
return false;
}
diff --git a/libs/plugins/a-fluidsynth.lv2/a-fluidsynth.cc b/libs/plugins/a-fluidsynth.lv2/a-fluidsynth.cc
index e6cf1e29d..6d168d5fe 100644
--- a/libs/plugins/a-fluidsynth.lv2/a-fluidsynth.cc
+++ b/libs/plugins/a-fluidsynth.lv2/a-fluidsynth.cc
@@ -184,6 +184,7 @@ load_sf2 (AFluidSynth* self, const char* fn)
}
int chn;
+#if FLUIDSYNTH_VERSION_MAJOR < 2
fluid_preset_t preset;
sfont->iteration_start (sfont);
pthread_mutex_lock (&self->bp_lock);
@@ -192,15 +193,33 @@ load_sf2 (AFluidSynth* self, const char* fn)
fluid_synth_program_select (self->synth, chn, synth_id,
preset.get_banknum (&preset), preset.get_num (&preset));
}
+#else
+ fluid_preset_t *preset;
+ fluid_sfont_iteration_start (sfont);
+ pthread_mutex_lock (&self->bp_lock);
+ for (chn = 0; (preset = fluid_sfont_iteration_next (sfont)); ++chn) {
+ if (chn < 16) {
+ fluid_synth_program_select (self->synth, chn, synth_id,
+ fluid_preset_get_banknum (preset), fluid_preset_get_num (preset));
+ }
+#endif // FLUIDSYNTH_VERSION_MAJOR < 2
#ifndef LV2_EXTENDED
else { break ; }
#else
+#if FLUIDSYNTH_VERSION_MAJOR < 2
self->presets[preset.get_banknum (&preset)].push_back (
BankProgram (
preset.get_name (&preset),
preset.get_banknum (&preset),
preset.get_num (&preset)));
-#endif
+#else
+ self->presets[fluid_preset_get_banknum (preset)].push_back (
+ BankProgram (
+ fluid_preset_get_name (preset),
+ fluid_preset_get_banknum (preset),
+ fluid_preset_get_num (preset)));
+#endif // FLUIDSYNTH_VERSION_MAJOR < 2
+#endif // LV2_EXTENDED
}
pthread_mutex_unlock (&self->bp_lock);
@@ -681,9 +700,15 @@ work_response (LV2_Handle instance,
}
for (int chn = 0; chn < 16; ++chn) {
+#if FLUIDSYNTH_VERSION_MAJOR < 2
unsigned int sfid = 0;
unsigned int bank = 0;
unsigned int program = -1;
+#else
+ int sfid = 0;
+ int bank = 0;
+ int program = -1;
+#endif
if (FLUID_OK == fluid_synth_get_program (self->synth, chn, &sfid, &bank, &program)) {
self->program_state[chn].bank = bank;
self->program_state[chn].program = program;
--
2.14.4

View File

@@ -0,0 +1,10 @@
[Desktop Entry]
Name=Ardour
Comment=Record, mix and master audio
Exec=ardour5
Icon=ardour5
Terminal=false
MimeType=application/x-ardour;
Type=Application
Categories=AudioVideo;Audio;X-Recorders;X-Multitrack;X-Jack;X-AudioEditing;
GenericName=Digital Audio Workstation

View File

@@ -0,0 +1,27 @@
SUMMARY = "aubio is designed for the extraction of annotations from audio signals"
HOMEPAGE = "https://aubio.org/"
LICENSE = "GPLv3"
LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
inherit waf pkgconfig
DEPENDS += " \
jack \
ffmpeg \
libsndfile1 \
libsamplerate0 \
python3-numpy \
"
SRC_URI = " \
https://aubio.org/pub/${BPN}-${PV}.tar.bz2 \
file://0001-do-not-build-tests.patch \
"
SRC_URI[md5sum] = "1e8deb14b0e45ffadc91dcf7cfaee0c8"
SRC_URI[sha256sum] = "cbed4afec5ab3a1a6300c7e3af0a1369379aa94259f5e701a8ca905cdd9fa041"
EXTRA_OECONF = " \
--prefix=${prefix} \
--sysconfdir=${sysconfdir} \
--libdir=${libdir} \
"

View File

@@ -0,0 +1,28 @@
From e597c5c8636a269dbe5e664c706e66887479f161 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
Date: Tue, 25 Sep 2018 00:44:12 +0200
Subject: [PATCH] do not build tests
Upstream-Status: Inappropriate [embedded specific]
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
---
wscript | 2 --
1 file changed, 2 deletions(-)
diff --git a/wscript b/wscript
index c08298c..1443ae2 100644
--- a/wscript
+++ b/wscript
@@ -494,8 +494,6 @@ def build(bld):
bld.options.testcmd = 'node %s'
if bld.options.enable_examples:
bld.recurse('examples')
- if bld.options.enable_tests:
- bld.recurse('tests')
# pkg-config template
bld( source = 'aubio.pc.in' )
--
2.14.4

View File

@@ -0,0 +1,13 @@
DESCRIPTION = "Audio latency tweaks"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
SRC_URI += "file://95-audio-tweaks.conf"
do_install() {
install -d ${D}${sysconfdir}/security/limits.d
install -m 0644 ${WORKDIR}/95-audio-tweaks.conf ${D}${sysconfdir}/security/limits.d/
}
RDEPENDS_${PN} = "pam-plugin-limits"

View File

@@ -0,0 +1,5 @@
# Default limits for audio users
@audio - rtprio 90
@audio - memlock unlimited
@audio - nice -18

View File

@@ -0,0 +1,38 @@
SUMMARY = "Emulator for vintage synthesisers, electric pianos and organs"
HOMEPAGE = "https://sourceforge.net/projects/bristol/"
LICENSE = "GPLv3"
LIC_FILES_CHKSUM = "file://COPYING.GPL;md5=d32239bcb673463ab874e80d47fae504"
inherit autotools pkgconfig distro_features_check
REQUIRED_DISTRO_FEATURES = "x11"
DEPENDS += " \
virtual/libx11 \
alsa-lib \
jack \
"
SRC_URI = " \
${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}/0.60/${BPN}-${PV}.tar.gz \
file://0001-Do-not-force-sse.patch \
file://0002-Do-not-include-alsa-iatomic.h.patch \
file://0003-bristoljackstats-do-not-overwrite-LDFLAGS.patch \
file://0004-Avoid-crosscompile-warnings.patch \
"
SRC_URI[md5sum] = "9ea4dacdac0dba3048156e2f6a5ee4d6"
SRC_URI[sha256sum] = "7d1f0bbd0d7d303fc77c6b9549b61708d7a83b4dc007818011b1f55d1fa922ba"
EXTRA_OECONF = " \
--disable-version-check \
--disable-oss \
--enable-jack-default-audio \
"
do_install_append() {
# the tar magic makes files owned by build user
chown -R root:root ${D}${datadir}
# align data paths
mv ${D}${datadir}/bristol/bristol-${PV}/* ${D}${datadir}/bristol/
rmdir ${D}${datadir}/bristol/bristol-${PV}
}

View File

@@ -0,0 +1,30 @@
From f006426aac72fba8529bc85068d98e664e860584 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
Date: Thu, 5 Jul 2018 23:33:36 +0200
Subject: [PATCH 1/2] Do not force sse
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Upstream-Status: Pending
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
---
bristol/Makefile.am | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/bristol/Makefile.am b/bristol/Makefile.am
index bbc90c9..5d12413 100755
--- a/bristol/Makefile.am
+++ b/bristol/Makefile.am
@@ -1,6 +1,6 @@
AUTOMAKE_OPTIONS = foreign
-AM_CFLAGS = -pthread -Wall -g -I$(srcdir)/../include/slab -I$(srcdir)/../include/bristol -I. -DBRISTOL_VOICECOUNT=@_BRISTOL_VOICES@ @BRISTOL_JACK_DEFAULT_MIDI@ @BRISTOL_JACK_DEFAULT@ @BRISTOL_JACK_MULTI_CLOSE@ @BRISTOL_SEMAPHORE@ @BRISTOL_SEM_OPEN@ @BRISTOL_BARRIER@ @BRISTOL_HAS_PA@ -DBRISTOL_RAMP_RATE=@BRR@ @BRISTOL_LIN_ATTACK@ @BRISTOL_HAS_DRAIN@ @BRISTOL_HAS_JACK@ @BRISTOL_HAS_JACK_MIDI@ @BRISTOL_HAS_JACK_SESSION@ -DBRISTOL_HAS_ALSA=@BRISTOL_HAS_ALSA@ @JACK_CFLAGS@ @ALSA_CFLAGS@ -msse -mfpmath=sse -ffast-math -fomit-frame-pointer -O2
+AM_CFLAGS = -pthread -Wall -g -I$(srcdir)/../include/slab -I$(srcdir)/../include/bristol -I. -DBRISTOL_VOICECOUNT=@_BRISTOL_VOICES@ @BRISTOL_JACK_DEFAULT_MIDI@ @BRISTOL_JACK_DEFAULT@ @BRISTOL_JACK_MULTI_CLOSE@ @BRISTOL_SEMAPHORE@ @BRISTOL_SEM_OPEN@ @BRISTOL_BARRIER@ @BRISTOL_HAS_PA@ -DBRISTOL_RAMP_RATE=@BRR@ @BRISTOL_LIN_ATTACK@ @BRISTOL_HAS_DRAIN@ @BRISTOL_HAS_JACK@ @BRISTOL_HAS_JACK_MIDI@ @BRISTOL_HAS_JACK_SESSION@ -DBRISTOL_HAS_ALSA=@BRISTOL_HAS_ALSA@ @JACK_CFLAGS@ @ALSA_CFLAGS@ -ffast-math -fomit-frame-pointer -O2
bin_PROGRAMS = bristol
#bristol_LDFLAGS = -Bdynamic -L../libbristolmidi/.libs -L../libbristolaudio/.libs -L../libbristol -L../libbristolic
--
2.14.3

View File

@@ -0,0 +1,32 @@
From d7b57162ff8c279fb9ac309fce0cdd98696c327a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
Date: Thu, 5 Jul 2018 23:34:17 +0200
Subject: [PATCH 2/2] Do not include alsa/iatomic.h
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Upstream-Status: Pending
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
---
libbristolaudio/audioEngineJack.c | 3 ---
1 file changed, 3 deletions(-)
diff --git a/libbristolaudio/audioEngineJack.c b/libbristolaudio/audioEngineJack.c
index 2b8900b..94c083e 100644
--- a/libbristolaudio/audioEngineJack.c
+++ b/libbristolaudio/audioEngineJack.c
@@ -38,9 +38,6 @@
#include <string.h>
#ifdef _BRISTOL_JACK
-#if (BRISTOL_HAS_ALSA == 1)
-#include <alsa/iatomic.h>
-#endif
/*
* Drop this atomic stuff, it comes from the ALSA library and it not present on
--
2.14.3

View File

@@ -0,0 +1,29 @@
From 4269cada0a225e89c3edd3e85c21debd3f5ab958 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
Date: Sat, 4 Aug 2018 22:33:08 +0200
Subject: [PATCH] bristoljackstats: do not overwrite LDFLAGS
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Upstream-Status: Pending
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
---
bin/Makefile.am | 1 -
1 file changed, 1 deletion(-)
diff --git a/bin/Makefile.am b/bin/Makefile.am
index fed0c6b..d9957b1 100755
--- a/bin/Makefile.am
+++ b/bin/Makefile.am
@@ -1,6 +1,5 @@
AUTOMAKE_OPTIONS = foreign
-LDFLAGS = -Bdynamic -lm -lpthread `pkg-config --silence-errors --libs jack`
AM_CFLAGS = -pthread -Wall -g -I. -I$(srcdir)/../include/bristol @BRISTOL_HAS_JACK@ @BRISTOL_HAS_JACK_MIDI@ @JACK_CFLAGS@
#bin_PROGRAMS = bristoljackstats bristolnotegen bristolNRPgen
--
2.14.4

View File

@@ -0,0 +1,33 @@
From f767f062beeedc014584e0d9d0aa70090b774941 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
Date: Tue, 30 Oct 2018 11:24:13 +0100
Subject: [PATCH] Avoid crosscompile warnings
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
| ld: warning: library search path "/usr/X11R6/lib" is unsafe for cross-compilation
Upstream-Status: Pending
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
---
brighton/Makefile.am | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/brighton/Makefile.am b/brighton/Makefile.am
index 274adc2..e900c62 100755
--- a/brighton/Makefile.am
+++ b/brighton/Makefile.am
@@ -3,7 +3,7 @@ AUTOMAKE_OPTIONS = foreign
AM_CFLAGS = -pthread -Wall -g -I$(srcdir)/../include/brighton -I$(srcdir)/../include/bristol -DBRISTOL_HAS_ALSA=@BRISTOL_HAS_ALSA@ @BRIGHTON_HAS_X11@ -DBRISTOL_VOICECOUNT=@_BRISTOL_VOICES@
bin_PROGRAMS = brighton
-brighton_LDFLAGS = -Bdynamic -L../libbrighton/ -L../libbristolmidi/.libs @BRIGHTON_LIBXLIBS@ -L/usr/X11R6/lib -L../libbvg
+brighton_LDFLAGS = -Bdynamic -L../libbrighton/ -L../libbristolmidi/.libs @BRIGHTON_LIBXLIBS@ -L../libbvg
brighton_LDADD = -lbrighton -lbvg @BRIGHTON_LIBB11@ @BRIGHTON_LIBX11@ @BRIGHTON_LIBXEXT@ -lbristolmidi @ALSA_LIBS@ -lm -lpthread
brighton_SOURCES = brightonArp2600.c brightonAxxe.c brighton.c brightonControllers.c brightonDX.c brightonExplorer.c brightonHammondB3.c brightonHammond.c brightonJuno.c brightonMemoryMoog.c brightonMini.c brightonMixer.c brightonMixerMemory.c brightonMixerMenu.c brightonMS20.c brightonOBXa.c brightonOBX.c brightonOdyssey.c brightonPoly6.c brightonPoly.c brightonProphet10.c brightonProphet52.c brightonProphet.c brightonRhodesBass.c brightonRhodes.c brightonRoutines.c brightonSAks.c brightonVox.c brightonKeyboards.h brightonKeys.h brightonMini.h brightonMixer.h brightonMixerMemory.h brightonhelp.h brightonSolina.c brightonRoadRunner.c brightonGranular.c brightonRealistic.c brightonVoxM2.c brightonJupiter.c brightonBitOne.c brightonMaster.c brightonCS80.c brightonProOne.c brightonVoyager.c brightonSonic6.c brightonTrilogy.c brightonStratus.c brightonPoly800.c brightonBME700.c brightonBassMaker.c brightonSID.c brightonSID2.c brightonSID2.h brightonreadme.h brightonCLI.c brightonVImages.h
--
2.14.5

View File

@@ -0,0 +1,55 @@
From 29a3bcf1a134d9bf51afa36bf39a903cd9328a5b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
Date: Tue, 14 Nov 2017 16:44:37 +0100
Subject: [PATCH] Do store calfmakerdf-commandline for later use in qemu /
install calfmakerdf
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Upstream-Status: Inappropriate [embedded specific]
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
---
gui/Makefile.am | 2 +-
src/Makefile.am | 4 ++--
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/gui/Makefile.am b/gui/Makefile.am
index 11eb4c3..9b53a0a 100644
--- a/gui/Makefile.am
+++ b/gui/Makefile.am
@@ -4,7 +4,7 @@ STYLES = $(wildcard $(srcdir)/styles/*)
EXTRA_DIST = $(wildcard $(srcdir)/styles) $(wildcard $(srcdir)/strips) $(wildcard $(srcdir)/gui)
install-data-hook:
- $(top_builddir)/src/calfmakerdf -m gui -p $(DESTDIR)$(pkgdatadir)
+ echo "-m gui -p $(DESTDIR)$(pkgdatadir)" >> %QEMUCOMMAND%
install -d -m 755 $(DESTDIR)$(pkgdatadir)/styles/
for f in ${STYLES}; do \
sn=`basename $${f}` ; \
diff --git a/src/Makefile.am b/src/Makefile.am
index 794e668..2b66870 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -30,7 +30,7 @@ endif
endif
AM_CXXFLAGS += $(GLIB_DEPS_CFLAGS)
-noinst_PROGRAMS += calfmakerdf
+bin_PROGRAMS += calfmakerdf
calfmakerdf_SOURCES = makerdf.cpp
calfmakerdf_LDADD = calf.la
@@ -82,7 +82,7 @@ if USE_LV2_GUI
install -c -m 755 $(top_builddir)/src/.libs/calflv2gui.so $(DESTDIR)$(lv2dir)/calflv2gui.so
endif
rm -f $(DESTDIR)$(lv2dir)/*.ttl
- $(top_builddir)/src/calfmakerdf -m ttl -p $(DESTDIR)$(lv2dir)/ -d $(DESTDIR)$(pkgdatadir)/
+ echo "-m ttl -p $(DESTDIR)$(lv2dir)/ -d $(DESTDIR)$(pkgdatadir)/" >> %QEMUCOMMAND%
if USE_SORDI
for f in $(DESTDIR)$(lv2dir)/*.ttl; do sout=`sordi -o turtle "$$f"`; if test $$? != 0; then echo "RDF file $$f is corrupted:"; echo $$sout"<<<"; fi; done
endif
--
2.9.5

View File

@@ -0,0 +1,33 @@
From 579ce205281dc47c94b0e6392decac9763397a9d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
Date: Sun, 13 Jan 2019 12:14:52 +0100
Subject: [PATCH] fluidsynth: Activate synth.dynamic-sample-loading for
fluidsynth >=2
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This reduces soundfont load time and memory consumption significantly
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
---
src/fluidsynth.cpp | 3 +++
1 file changed, 3 insertions(+)
diff --git a/src/fluidsynth.cpp b/src/fluidsynth.cpp
index 54023dc8..14c018e3 100644
--- a/src/fluidsynth.cpp
+++ b/src/fluidsynth.cpp
@@ -59,6 +59,9 @@ fluid_synth_t *fluidsynth_audio_module::create_synth(int &new_sfid)
std::fill(set_presets, set_presets + 16, -1);
fluid_settings_t *new_settings = new_fluid_settings();
fluid_settings_setnum(new_settings, "synth.sample-rate", srate);
+#if FLUIDSYNTH_VERSION_MAJOR >= 2
+ fluid_settings_setint(new_settings, "synth.dynamic-sample-loading", 1);
+#endif
fluid_synth_t *s = new_fluid_synth(new_settings);
if (!soundfont.empty())
{
--
2.20.1

View File

@@ -0,0 +1,39 @@
From 021850be25992b8a090182a05ad62660414c964f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
Date: Sat, 19 Jan 2019 21:48:29 +0100
Subject: [PATCH 1/2] Fix detection of LV2 for latest git
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
LV2 removed lv2-core.pc in [1]. So find lv2 and set required version to 1.1.4
which was released in September 2016 and should be avalaible on most
environments. This should be compatible to LV2 1.1.14 because from pkg-config
point of view lv2-core.pc and lv2.pc look similar.
Upstream-Status: Submitted [2]
[1] https://github.com/drobilla/lv2/commit/4db67120efca2d4c200d2e1ba5cf3d7b97cab97e
[2] https://github.com/calf-studio-gear/calf/pull/213
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
---
configure.ac | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
index b9c3d500..a0368773 100644
--- a/configure.ac
+++ b/configure.ac
@@ -79,7 +79,7 @@ if test "$JACK_FOUND" = "yes"; then
PKG_CHECK_MODULES(JACK_RENAME_PORT, jack >= 1.9.11, JACK_HAS_RENAME="yes", JACK_HAS_RENAME_DUMMY="no")
fi
-PKG_CHECK_MODULES(LV2_DEPS, lv2core >= 6, LV2_FOUND="yes", LV2_FOUND="no")
+PKG_CHECK_MODULES(LV2_DEPS, lv2 >= 1.1.14, LV2_FOUND="yes", LV2_FOUND="no")
PKG_CHECK_MODULES(LASH_DEPS, lash-1.0 >= 0.6.0,
AC_CHECK_LIB([lash], [lash_client_is_being_restored], LASH_0_6_FOUND="yes", LASH_0_6_FOUND="no"),
--
2.20.1

View File

@@ -0,0 +1,75 @@
From 855cf20b9bb9fec30b72fa05a9b4cd28a1b4d35d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
Date: Sat, 19 Jan 2019 23:00:49 +0100
Subject: [PATCH 2/2] Find headers for all versions of LV2
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Upstream-Status: Submitted [1]
[1] https://github.com/calf-studio-gear/calf/pull/213
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
---
src/calf/lv2_options.h | 2 +-
src/calf/lv2_ui.h | 2 +-
src/calf/lv2wrap.h | 2 +-
src/makerdf.cpp | 2 +-
4 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/calf/lv2_options.h b/src/calf/lv2_options.h
index 29568b8d..d66153da 100644
--- a/src/calf/lv2_options.h
+++ b/src/calf/lv2_options.h
@@ -20,7 +20,7 @@
#include <stdint.h>
#include "lv2_urid.h"
-#include "lv2.h"
+#include "lv2/lv2plug.in/ns/lv2core/lv2.h"
#define LV2_OPTIONS_URI "http://lv2plug.in/ns/ext/options"
#define LV2_OPTIONS_PREFIX LV2_OPTIONS_URI "#"
diff --git a/src/calf/lv2_ui.h b/src/calf/lv2_ui.h
index b802ec59..c3e60822 100644
--- a/src/calf/lv2_ui.h
+++ b/src/calf/lv2_ui.h
@@ -27,7 +27,7 @@
#include <stdint.h>
-#include "lv2.h"
+#include "lv2/lv2plug.in/ns/lv2core/lv2.h"
#define LV2_UI_URI "http://lv2plug.in/ns/extensions/ui"
#define LV2_UI_PREFIX LV2_UI_URI "#"
diff --git a/src/calf/lv2wrap.h b/src/calf/lv2wrap.h
index 8d6b13c4..d19eae7b 100644
--- a/src/calf/lv2wrap.h
+++ b/src/calf/lv2wrap.h
@@ -25,7 +25,7 @@
#include <string>
#include <vector>
-#include <lv2.h>
+#include "lv2/lv2plug.in/ns/lv2core/lv2.h"
#include <calf/giface.h>
#include <calf/lv2_atom.h>
#include <calf/lv2_atom_util.h>
diff --git a/src/makerdf.cpp b/src/makerdf.cpp
index 0b6cec5c..9f782534 100644
--- a/src/makerdf.cpp
+++ b/src/makerdf.cpp
@@ -22,7 +22,7 @@
#include <calf/preset.h>
#include <calf/utils.h>
#if USE_LV2
-#include <lv2.h>
+#include "lv2/lv2plug.in/ns/lv2core/lv2.h"
#include <calf/lv2_atom.h>
#include <calf/lv2_options.h>
#include <calf/lv2_state.h>
--
2.20.1

View File

@@ -0,0 +1,64 @@
SUMMARY = "High quality open source audio plugins for musicians"
HOMEPAGE = "http://calf-studio-gear.org/"
LICENSE = "GPLv2 & LGPLv2.1"
LIC_FILES_CHKSUM = " \
file://COPYING;md5=dcf3c825659e82539645da41a7908589 \
file://COPYING.GPL;md5=94d55d512a9ba36caa9b7df079bae19f \
"
SRC_URI = " \
git://github.com/calf-studio-gear/calf.git \
file://0001-Do-store-calfmakerdf-commandline-for-later-use-in-qe.patch \
file://0002-fluidsynth-Activate-synth.dynamic-sample-loading-for.patch \
file://0003-Fix-detection-of-LV2-for-latest-git.patch \
file://0004-Find-headers-for-all-versions-of-LV2.patch \
"
SRCREV = "e5c08dc2483c444d18d24a37c395274002320f5c"
S = "${WORKDIR}/git"
PV = "0.90.1"
inherit autotools-brokensep pkgconfig gtk-icon-cache bash-completion qemu-ext
DEPENDS += " \
gtk+ \
jack \
fluidsynth \
liblo \
ladspa-sdk \
lv2 \
"
EXTRA_OECONF += " \
--with-lv2-dir=${libdir}/lv2 \
--enable-experimental \
"
do_configure_prepend() {
sed -i 's:%QEMUCOMMAND%:${WORKDIR}/QemuCommands:g' `find ${S} -name Makefile.am`
}
QEMU_EXTRA_LIBDIR = "${D}${libdir}/calf"
do_install_prepend() {
# These are installed by calfmakerdf but that's moved to end of installation
install -d ${D}${libdir}/lv2
install -d ${D}${datadir}/calf
}
do_install_append() {
# build ttl-files must be done in quemu (lv2-ttl-generator-data loads
# so-files and calls functions to create ttl-files)
cat ${WORKDIR}/QemuCommands | while read calfmakerdf_param; do
${@qemu_run_binary_local(d, '${STAGING_DIR_TARGET}', '${D}${bindir}/calfmakerdf')} ${calfmakerdf_param}
done
chown -R root:root ${D}${libdir}/lv2
chown root:root ${D}${datadir}/calf/*.xml
# job is done - not needed on target
rm ${D}${bindir}/calfmakerdf
}
FILES_${PN} += "${libdir}/lv2"
INSANE_SKIP_${PN} = "dev-so"

View File

@@ -0,0 +1,31 @@
From 88c61efce068b4cfe6d4c175bd9d1b85def23708 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
Date: Sat, 15 Jul 2017 00:03:36 +0200
Subject: [PATCH] do not try to cross-run carla-lv2-export
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Upstream-Status: Inappropriate [cross specific]
Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
---
source/plugin/Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/source/plugin/Makefile b/source/plugin/Makefile
index 59b5c5d..3bcb368 100644
--- a/source/plugin/Makefile
+++ b/source/plugin/Makefile
@@ -206,7 +206,7 @@ $(BINDIR)/carla.lv2/manifest.ttl: $(OBJDIR)/carla-lv2-export.cpp.o $(LIBS)
ifeq ($(BUILDING_FOR_WINDOWS),true)
@cd $(BINDIR) && wine ./carla-lv2-export$(APP_EXT)
else
- @cd $(BINDIR) && ./carla-lv2-export$(APP_EXT)
+ @cd $(BINDIR)
endif
@cd $(BINDIR)/carla.lv2 && ln -sf ../*bridge-* ../carla-discovery-* .
--
2.9.4

View File

@@ -0,0 +1,30 @@
From 079d1a1b34394b76d23ce7d92254cb785333d3e7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
Date: Thu, 20 Sep 2018 22:44:48 +0200
Subject: [PATCH] Do not try to find Qt5 host bins - it won't work
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Upstream-Status: Inappropriate [cross specific]
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
---
source/Makefile.mk | 1 -
1 file changed, 1 deletion(-)
diff --git a/source/Makefile.mk b/source/Makefile.mk
index 688dca20..07afc7a2 100644
--- a/source/Makefile.mk
+++ b/source/Makefile.mk
@@ -253,7 +253,6 @@ endif
endif
ifeq ($(HAVE_QT5),true)
-QT5_HOSTBINS = $(shell pkg-config --variable=host_bins Qt5Core)
MOC_QT5 ?= $(QT5_HOSTBINS)/moc
RCC_QT5 ?= $(QT5_HOSTBINS)/rcc
UIC_QT5 ?= $(QT5_HOSTBINS)/uic
--
2.14.4

View File

@@ -0,0 +1,245 @@
From d55575c62bd911e1edf126e1efed8219c97bb25a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
Date: Wed, 10 Oct 2018 23:48:22 +0200
Subject: [PATCH 1/3] Fluidsynths: Ensure fluidsynth's defaults are set once
and in one place
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This makes transition fluidsynth 1.x -> 2.x a lot easier.
Upstream-Status: Submitted [1]
[1] https://github.com/falkTX/Carla/pull/766
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
---
source/backend/plugin/CarlaPluginFluidSynth.cpp | 67 ++++++++++++++++++-------
1 file changed, 48 insertions(+), 19 deletions(-)
diff --git a/source/backend/plugin/CarlaPluginFluidSynth.cpp b/source/backend/plugin/CarlaPluginFluidSynth.cpp
index be9e720a..7f6d919c 100644
--- a/source/backend/plugin/CarlaPluginFluidSynth.cpp
+++ b/source/backend/plugin/CarlaPluginFluidSynth.cpp
@@ -73,20 +73,22 @@ public:
fSynth = new_fluid_synth(fSettings);
CARLA_SAFE_ASSERT_RETURN(fSynth != nullptr,);
+ initializeFluidDefaultsIfNeeded();
+
fluid_synth_set_sample_rate(fSynth, (float)pData->engine->getSampleRate());
// set default values
fluid_synth_set_reverb_on(fSynth, 1);
- fluid_synth_set_reverb(fSynth, FLUID_REVERB_DEFAULT_ROOMSIZE, FLUID_REVERB_DEFAULT_DAMP, FLUID_REVERB_DEFAULT_WIDTH, FLUID_REVERB_DEFAULT_LEVEL);
+ fluid_synth_set_reverb(fSynth, sFluidDefaults[FluidSynthReverbRoomSize], sFluidDefaults[FluidSynthReverbDamp], sFluidDefaults[FluidSynthReverbWidth], sFluidDefaults[FluidSynthReverbLevel]);
fluid_synth_set_chorus_on(fSynth, 1);
- fluid_synth_set_chorus(fSynth, FLUID_CHORUS_DEFAULT_N, FLUID_CHORUS_DEFAULT_LEVEL, FLUID_CHORUS_DEFAULT_SPEED, FLUID_CHORUS_DEFAULT_DEPTH, FLUID_CHORUS_DEFAULT_TYPE);
+ fluid_synth_set_chorus(fSynth, sFluidDefaults[FluidSynthChorusNr], sFluidDefaults[FluidSynthChorusLevel], sFluidDefaults[FluidSynthChorusSpeedHz], sFluidDefaults[FluidSynthChorusDepthMs], sFluidDefaults[FluidSynthChorusType]);
fluid_synth_set_polyphony(fSynth, FLUID_DEFAULT_POLYPHONY);
fluid_synth_set_gain(fSynth, 1.0f);
for (int i=0; i < MAX_MIDI_CHANNELS; ++i)
- fluid_synth_set_interp_method(fSynth, i, FLUID_INTERP_DEFAULT);
+ fluid_synth_set_interp_method(fSynth, i, sFluidDefaults[FluidSynthInterpolation]);
}
~CarlaPluginFluidSynth() override
@@ -195,7 +197,7 @@ public:
case 1:
return FLUID_CHORUS_MOD_TRIANGLE;
default:
- return FLUID_CHORUS_DEFAULT_TYPE;
+ return sFluidDefaults[FluidSynthChorusType];
}
case FluidSynthInterpolation:
switch (scalePointId)
@@ -209,7 +211,7 @@ public:
case 3:
return FLUID_INTERP_7THORDER;
default:
- return FLUID_INTERP_DEFAULT;
+ return sFluidDefaults[FluidSynthInterpolation];
}
default:
return 0.0f;
@@ -721,7 +723,7 @@ public:
pData->param.data[j].rindex = j;
pData->param.ranges[j].min = 0.0f;
pData->param.ranges[j].max = 1.0f;
- pData->param.ranges[j].def = 1.0f;
+ pData->param.ranges[j].def = sFluidDefaults[j];
pData->param.ranges[j].step = 1.0f;
pData->param.ranges[j].stepSmall = 1.0f;
pData->param.ranges[j].stepLarge = 1.0f;
@@ -734,7 +736,7 @@ public:
pData->param.data[j].rindex = j;
pData->param.ranges[j].min = 0.0f;
pData->param.ranges[j].max = 1.2f;
- pData->param.ranges[j].def = FLUID_REVERB_DEFAULT_ROOMSIZE;
+ pData->param.ranges[j].def = sFluidDefaults[j];
pData->param.ranges[j].step = 0.01f;
pData->param.ranges[j].stepSmall = 0.0001f;
pData->param.ranges[j].stepLarge = 0.1f;
@@ -747,7 +749,7 @@ public:
pData->param.data[j].rindex = j;
pData->param.ranges[j].min = 0.0f;
pData->param.ranges[j].max = 1.0f;
- pData->param.ranges[j].def = FLUID_REVERB_DEFAULT_DAMP;
+ pData->param.ranges[j].def = sFluidDefaults[j];
pData->param.ranges[j].step = 0.01f;
pData->param.ranges[j].stepSmall = 0.0001f;
pData->param.ranges[j].stepLarge = 0.1f;
@@ -761,7 +763,7 @@ public:
pData->param.data[j].midiCC = MIDI_CONTROL_REVERB_SEND_LEVEL;
pData->param.ranges[j].min = 0.0f;
pData->param.ranges[j].max = 1.0f;
- pData->param.ranges[j].def = FLUID_REVERB_DEFAULT_LEVEL;
+ pData->param.ranges[j].def = sFluidDefaults[j];
pData->param.ranges[j].step = 0.01f;
pData->param.ranges[j].stepSmall = 0.0001f;
pData->param.ranges[j].stepLarge = 0.1f;
@@ -774,7 +776,7 @@ public:
pData->param.data[j].rindex = j;
pData->param.ranges[j].min = 0.0f;
pData->param.ranges[j].max = 10.0f; // should be 100, but that sounds too much
- pData->param.ranges[j].def = FLUID_REVERB_DEFAULT_WIDTH;
+ pData->param.ranges[j].def = sFluidDefaults[j];
pData->param.ranges[j].step = 0.01f;
pData->param.ranges[j].stepSmall = 0.0001f;
pData->param.ranges[j].stepLarge = 0.1f;
@@ -787,7 +789,7 @@ public:
pData->param.data[j].rindex = j;
pData->param.ranges[j].min = 0.0f;
pData->param.ranges[j].max = 1.0f;
- pData->param.ranges[j].def = 1.0f;
+ pData->param.ranges[j].def = sFluidDefaults[j];
pData->param.ranges[j].step = 1.0f;
pData->param.ranges[j].stepSmall = 1.0f;
pData->param.ranges[j].stepLarge = 1.0f;
@@ -800,7 +802,7 @@ public:
pData->param.data[j].rindex = j;
pData->param.ranges[j].min = 0.0f;
pData->param.ranges[j].max = 99.0f;
- pData->param.ranges[j].def = FLUID_CHORUS_DEFAULT_N;
+ pData->param.ranges[j].def = sFluidDefaults[j];
pData->param.ranges[j].step = 1.0f;
pData->param.ranges[j].stepSmall = 1.0f;
pData->param.ranges[j].stepLarge = 10.0f;
@@ -813,7 +815,7 @@ public:
pData->param.data[j].rindex = j;
pData->param.ranges[j].min = 0.0f;
pData->param.ranges[j].max = 10.0f;
- pData->param.ranges[j].def = FLUID_CHORUS_DEFAULT_LEVEL;
+ pData->param.ranges[j].def = sFluidDefaults[j];
pData->param.ranges[j].step = 0.01f;
pData->param.ranges[j].stepSmall = 0.0001f;
pData->param.ranges[j].stepLarge = 0.1f;
@@ -826,7 +828,7 @@ public:
pData->param.data[j].rindex = j;
pData->param.ranges[j].min = 0.29f;
pData->param.ranges[j].max = 5.0f;
- pData->param.ranges[j].def = FLUID_CHORUS_DEFAULT_SPEED;
+ pData->param.ranges[j].def = sFluidDefaults[j];
pData->param.ranges[j].step = 0.01f;
pData->param.ranges[j].stepSmall = 0.0001f;
pData->param.ranges[j].stepLarge = 0.1f;
@@ -839,7 +841,7 @@ public:
pData->param.data[j].rindex = j;
pData->param.ranges[j].min = 0.0f;
pData->param.ranges[j].max = float(2048.0 * 1000.0 / pData->engine->getSampleRate()); // FIXME?
- pData->param.ranges[j].def = FLUID_CHORUS_DEFAULT_DEPTH;
+ pData->param.ranges[j].def = sFluidDefaults[j];
pData->param.ranges[j].step = 0.01f;
pData->param.ranges[j].stepSmall = 0.0001f;
pData->param.ranges[j].stepLarge = 0.1f;
@@ -852,7 +854,7 @@ public:
pData->param.data[j].rindex = j;
pData->param.ranges[j].min = FLUID_CHORUS_MOD_SINE;
pData->param.ranges[j].max = FLUID_CHORUS_MOD_TRIANGLE;
- pData->param.ranges[j].def = FLUID_CHORUS_DEFAULT_TYPE;
+ pData->param.ranges[j].def = sFluidDefaults[j];
pData->param.ranges[j].step = 1.0f;
pData->param.ranges[j].stepSmall = 1.0f;
pData->param.ranges[j].stepLarge = 1.0f;
@@ -865,7 +867,7 @@ public:
pData->param.data[j].rindex = j;
pData->param.ranges[j].min = 1.0f;
pData->param.ranges[j].max = 512.0f; // max theoric is 65535
- pData->param.ranges[j].def = (float)fluid_synth_get_polyphony(fSynth);
+ pData->param.ranges[j].def = sFluidDefaults[j];
pData->param.ranges[j].step = 1.0f;
pData->param.ranges[j].stepSmall = 1.0f;
pData->param.ranges[j].stepLarge = 10.0f;
@@ -878,7 +880,7 @@ public:
pData->param.data[j].rindex = j;
pData->param.ranges[j].min = FLUID_INTERP_NONE;
pData->param.ranges[j].max = FLUID_INTERP_HIGHEST;
- pData->param.ranges[j].def = FLUID_INTERP_DEFAULT;
+ pData->param.ranges[j].def = sFluidDefaults[j];
pData->param.ranges[j].step = 1.0f;
pData->param.ranges[j].stepSmall = 1.0f;
pData->param.ranges[j].stepLarge = 1.0f;
@@ -891,7 +893,7 @@ public:
pData->param.data[j].rindex = j;
pData->param.ranges[j].min = 0.0f;
pData->param.ranges[j].max = 65535.0f;
- pData->param.ranges[j].def = 0.0f;
+ pData->param.ranges[j].def = sFluidDefaults[j];
pData->param.ranges[j].step = 1.0f;
pData->param.ranges[j].stepSmall = 1.0f;
pData->param.ranges[j].stepLarge = 1.0f;
@@ -1656,6 +1658,27 @@ public:
}
private:
+ void initializeFluidDefaultsIfNeeded()
+ {
+ if (sFluidDefaultsStored)
+ return;
+ sFluidDefaultsStored = true;
+ sFluidDefaults[FluidSynthReverbOnOff] = 1.0f;
+ sFluidDefaults[FluidSynthReverbRoomSize] = FLUID_REVERB_DEFAULT_ROOMSIZE;
+ sFluidDefaults[FluidSynthReverbDamp] = FLUID_REVERB_DEFAULT_DAMP;
+ sFluidDefaults[FluidSynthReverbLevel] = FLUID_REVERB_DEFAULT_LEVEL;
+ sFluidDefaults[FluidSynthReverbWidth] = FLUID_REVERB_DEFAULT_WIDTH;
+ sFluidDefaults[FluidSynthChorusOnOff] = 1.0f;
+ sFluidDefaults[FluidSynthChorusNr] = FLUID_CHORUS_DEFAULT_N;
+ sFluidDefaults[FluidSynthChorusLevel] = FLUID_CHORUS_DEFAULT_LEVEL;
+ sFluidDefaults[FluidSynthChorusSpeedHz] = FLUID_CHORUS_DEFAULT_SPEED;
+ sFluidDefaults[FluidSynthChorusDepthMs] = FLUID_CHORUS_DEFAULT_DEPTH;
+ sFluidDefaults[FluidSynthChorusType] = FLUID_CHORUS_DEFAULT_TYPE;
+ sFluidDefaults[FluidSynthPolyphony] = (float)fluid_synth_get_polyphony(fSynth);
+ sFluidDefaults[FluidSynthInterpolation] = FLUID_INTERP_DEFAULT;
+ sFluidDefaults[FluidSynthVoiceCount] = 0.0f;
+ }
+
enum FluidSynthParameters {
FluidSynthReverbOnOff = 0,
FluidSynthReverbRoomSize = 1,
@@ -1683,6 +1706,9 @@ private:
float** fAudio16Buffers;
float fParamBuffers[FluidSynthParametersMax];
+ static bool sFluidDefaultsStored;
+ static float sFluidDefaults[FluidSynthParametersMax];
+
int32_t fCurMidiProgs[MAX_MIDI_CHANNELS];
const char* fLabel;
@@ -1690,6 +1716,9 @@ private:
CARLA_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(CarlaPluginFluidSynth)
};
+bool CarlaPluginFluidSynth::sFluidDefaultsStored = false;
+float CarlaPluginFluidSynth::sFluidDefaults[FluidSynthParametersMax];
+
CARLA_BACKEND_END_NAMESPACE
#endif // HAVE_FLUIDSYNTH
--
2.14.4

View File

@@ -0,0 +1,143 @@
From 94c96ee0d04e324122ee1a73344a44f1b21837ef Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
Date: Sat, 13 Oct 2018 15:16:20 +0200
Subject: [PATCH 2/3] Fixes for fluidsynth >= 2.0.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* preset iteration and getters have changed
* constants for most defaults are no more available in public headers -
fluidsynth wants to be asked
Upstream-Status: Submitted [1]
[1] https://github.com/falkTX/Carla/pull/766
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
---
source/backend/plugin/CarlaPluginFluidSynth.cpp | 62 +++++++++++++++++++++++++
source/discovery/carla-discovery.cpp | 5 ++
2 files changed, 67 insertions(+)
diff --git a/source/backend/plugin/CarlaPluginFluidSynth.cpp b/source/backend/plugin/CarlaPluginFluidSynth.cpp
index 7f6d919c..5645fe3c 100644
--- a/source/backend/plugin/CarlaPluginFluidSynth.cpp
+++ b/source/backend/plugin/CarlaPluginFluidSynth.cpp
@@ -943,6 +943,7 @@ public:
if (fluid_sfont_t* const f_sfont = fluid_synth_get_sfont_by_id(fSynth, fSynthId))
{
+#if FLUIDSYNTH_VERSION_MAJOR < 2
fluid_preset_t f_preset;
// initial check to know how many midi-programs we have
@@ -971,6 +972,36 @@ public:
pData->midiprog.data[i].program = (tmp >= 0) ? static_cast<uint32_t>(tmp) : 0;
pData->midiprog.data[i].name = carla_strdup(f_preset.get_name(&f_preset));
+#else
+ fluid_preset_t* f_preset;
+
+ // initial check to know how many midi-programs we have
+ fluid_sfont_iteration_start(f_sfont);
+ for (; fluid_sfont_iteration_next(f_sfont);)
+ ++count;
+
+ // sound kits must always have at least 1 midi-program
+ CARLA_SAFE_ASSERT_RETURN(count > 0,);
+
+ pData->midiprog.createNew(count);
+
+ // Update data
+ int tmp;
+ uint32_t i = 0;
+ fluid_sfont_iteration_start(f_sfont);
+
+ for (; (f_preset = fluid_sfont_iteration_next(f_sfont));)
+ {
+ CARLA_SAFE_ASSERT_BREAK(i < count);
+
+ tmp = fluid_preset_get_banknum(f_preset);
+ pData->midiprog.data[i].bank = (tmp >= 0) ? static_cast<uint32_t>(tmp) : 0;
+
+ tmp = fluid_preset_get_num(f_preset);
+ pData->midiprog.data[i].program = (tmp >= 0) ? static_cast<uint32_t>(tmp) : 0;
+
+ pData->midiprog.data[i].name = carla_strdup(fluid_preset_get_name(f_preset));
+#endif
if (pData->midiprog.data[i].bank == 128 && ! hasDrums)
{
@@ -1663,17 +1694,48 @@ private:
if (sFluidDefaultsStored)
return;
sFluidDefaultsStored = true;
+ // reverb defaults
sFluidDefaults[FluidSynthReverbOnOff] = 1.0f;
+#if FLUIDSYNTH_VERSION_MAJOR < 2
sFluidDefaults[FluidSynthReverbRoomSize] = FLUID_REVERB_DEFAULT_ROOMSIZE;
sFluidDefaults[FluidSynthReverbDamp] = FLUID_REVERB_DEFAULT_DAMP;
sFluidDefaults[FluidSynthReverbLevel] = FLUID_REVERB_DEFAULT_LEVEL;
sFluidDefaults[FluidSynthReverbWidth] = FLUID_REVERB_DEFAULT_WIDTH;
+#else
+ double reverbVal;
+ fluid_settings_getnum_default(fSettings, "synth.reverb.room-size", &reverbVal);
+ sFluidDefaults[FluidSynthReverbRoomSize] = reverbVal;
+ fluid_settings_getnum_default(fSettings, "synth.reverb.damp", &reverbVal);
+ sFluidDefaults[FluidSynthReverbDamp] = reverbVal;
+ fluid_settings_getnum_default(fSettings, "synth.reverb.level", &reverbVal);
+ sFluidDefaults[FluidSynthReverbLevel] = reverbVal;
+ fluid_settings_getnum_default(fSettings, "synth.reverb.width", &reverbVal);
+ sFluidDefaults[FluidSynthReverbWidth] = reverbVal;
+#endif
+
+ // chorus defaults
sFluidDefaults[FluidSynthChorusOnOff] = 1.0f;
+#if FLUIDSYNTH_VERSION_MAJOR < 2
sFluidDefaults[FluidSynthChorusNr] = FLUID_CHORUS_DEFAULT_N;
sFluidDefaults[FluidSynthChorusLevel] = FLUID_CHORUS_DEFAULT_LEVEL;
sFluidDefaults[FluidSynthChorusSpeedHz] = FLUID_CHORUS_DEFAULT_SPEED;
sFluidDefaults[FluidSynthChorusDepthMs] = FLUID_CHORUS_DEFAULT_DEPTH;
sFluidDefaults[FluidSynthChorusType] = FLUID_CHORUS_DEFAULT_TYPE;
+#else
+ double chorusVal;
+ fluid_settings_getnum_default(fSettings, "synth.chorus.nr", &chorusVal);
+ sFluidDefaults[FluidSynthChorusNr] = chorusVal;
+ fluid_settings_getnum_default(fSettings, "synth.chorus.level", &chorusVal);
+ sFluidDefaults[FluidSynthChorusLevel] = chorusVal;
+ fluid_settings_getnum_default(fSettings, "synth.chorus.speed", &chorusVal);
+ sFluidDefaults[FluidSynthChorusSpeedHz] = chorusVal;
+ fluid_settings_getnum_default(fSettings, "synth.chorus.depth", &chorusVal);
+ sFluidDefaults[FluidSynthChorusDepthMs] = chorusVal;
+ // There is no settings for chorus default type
+ sFluidDefaults[FluidSynthChorusType] = (float)fluid_synth_get_chorus_type(fSynth);
+#endif
+
+ // misc. defaults
sFluidDefaults[FluidSynthPolyphony] = (float)fluid_synth_get_polyphony(fSynth);
sFluidDefaults[FluidSynthInterpolation] = FLUID_INTERP_DEFAULT;
sFluidDefaults[FluidSynthVoiceCount] = 0.0f;
diff --git a/source/discovery/carla-discovery.cpp b/source/discovery/carla-discovery.cpp
index a0745e23..d2cd2931 100644
--- a/source/discovery/carla-discovery.cpp
+++ b/source/discovery/carla-discovery.cpp
@@ -1323,10 +1323,15 @@ static void do_fluidsynth_check(const char* const filename, const bool doInit)
if (fluid_sfont_t* const f_sfont = fluid_synth_get_sfont_by_id(f_synth, static_cast<uint>(f_id)))
{
+#if FLUIDSYNTH_VERSION_MAJOR < 2
fluid_preset_t f_preset;
f_sfont->iteration_start(f_sfont);
for (; f_sfont->iteration_next(f_sfont, &f_preset);)
+#else
+ fluid_sfont_iteration_start(f_sfont);
+ for (; fluid_sfont_iteration_next(f_sfont);)
+#endif
++programs;
}
--
2.14.4

View File

@@ -0,0 +1,71 @@
SUMMARY = "Audio plugin host"
HOMEPAGE = "http://kxstudio.linuxaudio.org/Applications:Carla"
LICENSE = "GPLv2 & LGPLv3"
LIC_FILES_CHKSUM = " \
file://doc/GPL.txt;md5=4641e94ec96f98fabc56ff9cc48be14b \
file://doc/LGPL.txt;md5=e6a600fd5e1d9cbde2d983680233ad02 \
"
SRC_URI = " \
git://github.com/falkTX/Carla.git \
file://0001-do-not-try-to-cross-run-carla-lv2-export.patch \
file://0002-Do-not-try-to-find-Qt5-host-bins-it-won-t-work.patch \
file://0003-Fluidsynths-Ensure-fluidsynth-s-defaults-are-set-onc.patch \
file://0004-Fixes-for-fluidsynth-2.0.0.patch \
"
SRCREV = "d73c0788ccc5fb9019d224046ef1b652aa5a9bbe"
S = "${WORKDIR}/git"
PV = "1.9.11+git${SRCPV}"
REQUIRED_DISTRO_FEATURES = "x11"
inherit qmake5_base pkgconfig qemu-ext distro_features_check mime gtk-icon-cache
B = "${S}"
DEPENDS += " \
python3-pyqt5-native \
qtbase-native \
qtbase \
gtk+ \
gtk+3 \
liblo \
pulseaudio \
fluidsynth \
libsndfile1 \
"
EXTRA_OEMAKE += " \
DEFAULT_QT=5 \
NOOPT=true \
HAVE_PYQT=true \
HAVE_PYQT4=false \
HAVE_PYQT5=true \
SKIP_STRIPPING=true \
"
export QT5_HOSTBINS="${OE_QMAKE_PATH_EXTERNAL_HOST_BINS}"
do_configure() {
oe_runmake features
}
do_compile_append() {
cd ${S}/bin
${@qemu_run_binary_local(d, '${STAGING_DIR_TARGET}', 'carla-lv2-export')}
}
do_install() {
oe_runmake DESTDIR=${D} PREFIX=${prefix} LIBDIR=${libdir} install
}
FILES_${PN} += " \
${datadir}/icons \
${datadir}/mime \
${libdir}/lv2 \
${libdir}/vst \
"
INSANE_SKIP_${PN} = "dev-so"
RDEPENDS_${PN} += "python3-pyqt5 bash"

View File

@@ -0,0 +1,22 @@
SUMMARY = "Chromaprint is library that extracts fingerprints from audio sources"
HOMEPAGE = "https://acoustid.org/chromaprint"
LICENSE = "MIT & LGPLv2.1"
LIC_FILES_CHKSUM = "file://LICENSE.md;md5=5d50f7a9fde1110fa1756b0f5faa26f2"
inherit cmake
DEPENDS += " \
fftw \
ffmpeg \
"
SRC_URI = "git://github.com/acoustid/chromaprint.git"
SRCREV = "ecd2edd73315530d4f9c1b1186aee24c63a7b6c2"
PV = "1.4.3"
S = "${WORKDIR}/git"
EXTRA_OECMAKE += " \
${@bb.utils.contains('TUNE_FEATURES', 'neon', '-DFFT_LIB=fftw3f', '', d)} \
-DLIB_SUFFIX=${@d.getVar('baselib').replace('lib', '')} \
"

View File

@@ -0,0 +1,63 @@
SUMMARY = "A sound and music computing system"
LICENSE = "LGPLv2.1"
LIC_FILES_CHKSUM = "file://COPYING;md5=a6f89e2100d9b6cdffcea4f398e37343"
inherit cmake gettext python-dir
# TBD: fltk is not propely detected
DEPENDS += " \
flex-native \
bison-native \
swig-native \
python \
alsa-lib \
libsndfile1 \
portaudio-v19 \
portmidi \
fluidsynth \
curl \
fltk \
liblo \
stk \
libvorbis \
libeigen \
libwebsockets \
"
SRC_URI = " \
git://github.com/csound/csound.git \
file://0001-Do-not-set-include-path-to-usr-local-include.patch \
file://0002-Do-not-use-try_run-for-portaudio.patch \
file://0003-strict-aliasing-errors.patch \
file://0004-Engine-csound_orc_semantics.c-Fix-build-with-gcc8.patch \
file://0005-InOut-pmidi.c-Fix-build-with-gcc8.patch \
file://0006-fixed-unsafe-use-of-strncpy.patch \
file://0007-util1-csd_util-cs.c-Fix-build-with-gcc8.patch \
file://0008-Fix-build-with-fluidsynth-version-2.0.0.patch \
"
SRCREV = "2905724262b516983e779ed8c589602da4bf3f7d"
S = "${WORKDIR}/git"
PV = "6.11.0"
# Where to get lua-version from?
LUA_VERSION = "5.3"
EXTRA_OECMAKE += " \
-DUSE_DOUBLE=OFF \
-DPYTHON_MODULE_INSTALL_DIR=${PYTHON_SITEPACKAGES_DIR} \
-DUSE_LIB64=${@bb.utils.contains("baselib", "lib64", "ON", "OFF",d)} \
"
PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'pulseaudio', d)}"
PACKAGECONFIG[pulseaudio] = "-DUSE_PULSEAUDIO=ON,-DUSE_PULSEAUDIO=OFF,pulseaudio,pulseaudio-server"
PACKAGECONFIG[luajit] = "-DLUA_MODULE_INSTALL_DIR=${libdir}/lua/${LUA_VERSION},,luajit"
PACKAGES =+ " \
${PN}-python2 \
${PN}-luajit \
"
FILES_${PN}-python2 = "${PYTHON_SITEPACKAGES_DIR}"
RDEPENDS_${PN}-python2 += "python"
FILES_${PN}-luajit = "${libdir}/lua"

View File

@@ -0,0 +1,31 @@
From 1ae6204460552d524398765ca3931f73c7647472 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
Date: Sun, 20 May 2018 20:22:21 +0200
Subject: [PATCH] Do not set include path to /usr/local/include
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Upstream-Status: Pending
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
---
InOut/CMakeLists.txt | 2 --
1 file changed, 2 deletions(-)
diff --git a/InOut/CMakeLists.txt b/InOut/CMakeLists.txt
index 9422575e3..535528c83 100644
--- a/InOut/CMakeLists.txt
+++ b/InOut/CMakeLists.txt
@@ -16,8 +16,6 @@ option(USE_FLTK "Use FLTK for graphs and widget opcodes" ON)
option(BUILD_VIRTUAL_KEYBOARD "Build Virtual MIDI keyboard" ON)
option(NEED_PORTTIME "porttime library separate from portmidi" ON)
-set(CMAKE_REQUIRED_INCLUDES /usr/local/include)
-
# FIND LIBRARIES AND HEADERS
if(USE_ALSA)
--
2.14.3

View File

@@ -0,0 +1,51 @@
From 70b48196f3f2eb7a8cd2b21a3c39986bdb24bff2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
Date: Sun, 20 May 2018 20:59:59 +0200
Subject: [PATCH] Do not use try_run for portaudio
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Upstream-Status: Inappropriate [OE specific]
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
---
InOut/CMakeLists.txt | 13 -------------
1 file changed, 13 deletions(-)
diff --git a/InOut/CMakeLists.txt b/InOut/CMakeLists.txt
index 9422575e3..7590a8c01 100644
--- a/InOut/CMakeLists.txt
+++ b/InOut/CMakeLists.txt
@@ -27,19 +27,6 @@ endif()
if(USE_PORTAUDIO)
find_path(PORTAUDIO_INCLUDE_PATH portaudio.h)
find_library(PORTAUDIO_LIBRARY NAMES portaudio portaudio_x64)
-
- if(PORTAUDIO_INCLUDE_PATH AND PORTAUDIO_LIBRARY)
- try_run(PORTAUDIO_V19 PORTAUDIO_TEST_COMPILED
- ${CMAKE_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR}/../cmake/portaudio_test.c
- CMAKE_FLAGS -DLINK_LIBRARIES:STRING=${PORTAUDIO_LIBRARY}
- COMPILE_DEFINITIONS "-I${PORTAUDIO_INCLUDE_PATH}"
- COMPILE_OUTPUT_VARIABLE OUTPUT)
- if(NOT PORTAUDIO_TEST_COMPILED AND NOT WIN32)
- set(PORTAUDIO_V19 false)
- endif()
- else()
- set(PORTAUDIO_V19 false)
- endif()
endif()
if(USE_PORTMIDI)
find_path(PORTMIDI_INCLUDE_PATH portmidi.h)
@@ -117,7 +117,7 @@ endif()
if(WIN32)
check_deps(USE_PORTAUDIO PORTAUDIO_INCLUDE_PATH PORTAUDIO_LIBRARY)
else()
- check_deps(USE_PORTAUDIO PORTAUDIO_INCLUDE_PATH PORTAUDIO_LIBRARY PORTAUDIO_TEST_COMPILED)
+ check_deps(USE_PORTAUDIO PORTAUDIO_INCLUDE_PATH PORTAUDIO_LIBRARY)
endif()
if(USE_PORTAUDIO AND PORTAUDIO_V19 MATCHES 1)
message(STATUS "Building rtpa module.")
--
2.14.3

View File

@@ -0,0 +1,117 @@
From 7e2f3f49670166804529c6b9ff1398f38999d921 Mon Sep 17 00:00:00 2001
From: veplaini <victor.lazzarini@nuim.ie>
Date: Fri, 11 May 2018 14:05:49 +0100
Subject: [PATCH] strict aliasing errors
---
Engine/musmon.c | 2 +-
Engine/rdscor.c | 8 +++++---
OOps/schedule.c | 19 ++++++++++++++-----
3 files changed, 20 insertions(+), 9 deletions(-)
Upstream-Status: Backport
diff --git a/Engine/musmon.c b/Engine/musmon.c
index 440642489..8f4cc22cf 100644
--- a/Engine/musmon.c
+++ b/Engine/musmon.c
@@ -1033,7 +1033,7 @@ int sensevents(CSOUND *csound)
if (!(rdscor(csound, e))){
/* or rd nxt evt from scstr */
e->opcod = 'e';
- }
+ }
csound->currevent = e;
switch (e->opcod) {
diff --git a/Engine/rdscor.c b/Engine/rdscor.c
index f39393725..fe6488cb2 100644
--- a/Engine/rdscor.c
+++ b/Engine/rdscor.c
@@ -142,7 +142,7 @@ int rdscor(CSOUND *csound, EVTBLK *e) /* read next score-line from scorefile */
{ /* presumes good format if warped */
MYFLT *pp, *plim;
int c;
-
+
e->pinstance = NULL;
if (csound->scstr == NULL ||
csound->scstr->body[0] == '\0') { /* if no concurrent scorefile */
@@ -151,12 +151,14 @@ int rdscor(CSOUND *csound, EVTBLK *e) /* read next score-line from scorefile */
e->p[2] = FL(INF);
e->p2orig = FL(INF);
e->pcnt = 2;
+
return(1);
}
+
/* else read the real score */
while ((c = corfile_getc(csound->scstr)) != '\0') {
csound->scnt = 0;
- switch (c) {
+ switch (c) {
case ' ':
case '\t':
case '\n':
@@ -193,7 +195,7 @@ int rdscor(CSOUND *csound, EVTBLK *e) /* read next score-line from scorefile */
goto setp;
case 'e':
e->opcod = c;
- e->pcnt = 0;
+ e->pcnt = 0;
return(1);
case EOF: /* necessary for cscoreGetEvent */
return(0);
diff --git a/OOps/schedule.c b/OOps/schedule.c
index b87897ec9..6dd60e94f 100644
--- a/OOps/schedule.c
+++ b/OOps/schedule.c
@@ -79,7 +79,7 @@ int32_t schedule_N(CSOUND *csound, SCHED *p)
{
int32_t i;
int32_t argno = p->INOCOUNT+1;
- char s[16384];
+ char s[16384], sf[64];
sprintf(s, "i %f %f %f", *p->which, *p->when, *p->dur);
for (i=4; i < argno ; i++) {
MYFLT *arg = p->argums[i-4];
@@ -87,8 +87,12 @@ int32_t schedule_N(CSOUND *csound, SCHED *p)
add_string_arg(s, ((STRINGDAT *)arg)->data);
//sprintf(s, "%s \"%s\" ", s, ((STRINGDAT *)arg)->data);
}
- else sprintf(s, "%s %f", s, *arg);
-
+ else {
+ sprintf(sf, " %f", *arg);
+ if(strlen(s) < 16384)
+ strncat(s, sf, 16384-strlen(s));
+ //sprintf(s, "%s %f", s, *arg);
+ }
}
csoundInputMessageInternal(csound, s);
@@ -99,14 +103,19 @@ int32_t schedule_SN(CSOUND *csound, SCHED *p)
{
int32_t i;
int32_t argno = p->INOCOUNT+1;
- char s[16384];
+ char s[16384], sf[64];
sprintf(s, "i \"%s\" %f %f", ((STRINGDAT *)p->which)->data, *p->when, *p->dur);
for (i=4; i < argno ; i++) {
MYFLT *arg = p->argums[i-4];
if (csoundGetTypeForArg(arg) == &CS_VAR_TYPE_S)
//sprintf(s, "%s \"%s\" ", s, ((STRINGDAT *)arg)->data);
add_string_arg(s, ((STRINGDAT *)arg)->data);
- else sprintf(s, "%s %f", s, *arg);
+ else {
+ sprintf(sf, " %f", *arg);
+ if(strlen(s) < 16384)
+ strncat(s, sf, 16384-strlen(s));
+ //sprintf(s, "%s %f", s, *arg);
+ }
}
//printf("%s\n", s);
csoundInputMessageInternal(csound, s);
--
2.14.4

View File

@@ -0,0 +1,84 @@
From 9d4fef967e622faec90bbed00fb00383e85e328c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
Date: Mon, 2 Jul 2018 00:22:14 +0200
Subject: [PATCH] Engine/csound_orc_semantics.c: Fix build with gcc8
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
/home/superandy/tmp/oe-core-glibc/work/cortexa7t2hf-neon-vfpv4-angstrom-linux-gnueabi/csound/6.11.0-r0/git/Engine/csound_orc_semantics.c:73:7: error: 'strncpy' output truncated before terminating nul copying as many bytes from a string as its length [-Werror=stringop-truncation]
strncpy(retVal, str, len);
^~~~~~~~~~~~~~~~~~~~~~~~~
/home/superandy/tmp/oe-core-glibc/work/cortexa7t2hf-neon-vfpv4-angstrom-linux-gnueabi/csound/6.11.0-r0/git/Engine/csound_orc_semantics.c:69:11: note: length computed here
len = strlen(str);
^~~~~~~~~~~
/home/superandy/tmp/oe-core-glibc/work/cortexa7t2hf-neon-vfpv4-angstrom-linux-gnueabi/csound/6.11.0-r0/git/Engine/csound_orc_semantics.c: In function 'get_arg_type2':
/home/superandy/tmp/oe-core-glibc/work/cortexa7t2hf-neon-vfpv4-angstrom-linux-gnueabi/csound/6.11.0-r0/git/Engine/csound_orc_semantics.c:450:7: error: 'strncpy' output truncated before terminating nul copying as many bytes from a string as its length [-Werror=stringop-truncation]
strncpy(inArgTypes, argTypeLeft, len1);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/superandy/tmp/oe-core-glibc/work/cortexa7t2hf-neon-vfpv4-angstrom-linux-gnueabi/csound/6.11.0-r0/git/Engine/csound_orc_semantics.c:446:14: note: length computed here
len1 = strlen(argTypeLeft);
^~~~~~~~~~~~~~~~~~~
/home/superandy/tmp/oe-core-glibc/work/cortexa7t2hf-neon-vfpv4-angstrom-linux-gnueabi/csound/6.11.0-r0/git/Engine/csound_orc_semantics.c:451:7: error: 'strncpy' output truncated before terminating nul copying as many bytes from a string as its length [-Werror=stringop-truncation]
strncpy(inArgTypes + len1, argTypeRight, len2);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/superandy/tmp/oe-core-glibc/work/cortexa7t2hf-neon-vfpv4-angstrom-linux-gnueabi/csound/6.11.0-r0/git/Engine/csound_orc_semantics.c:447:14: note: length computed here
len2 = strlen(argTypeRight);
^~~~~~~~~~~~~~~~~~~~
/home/superandy/tmp/oe-core-glibc/work/cortexa7t2hf-neon-vfpv4-angstrom-linux-gnueabi/csound/6.11.0-r0/git/Engine/csound_orc_semantics.c:392:9: error: 'strncpy' output truncated before terminating nul copying as many bytes from a string as its length [-Werror=stringop-truncation]
strncpy(inArgTypes, argTypeLeft, len1);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/superandy/tmp/oe-core-glibc/work/cortexa7t2hf-neon-vfpv4-angstrom-linux-gnueabi/csound/6.11.0-r0/git/Engine/csound_orc_semantics.c:388:16: note: length computed here
len1 = strlen(argTypeLeft);
^~~~~~~~~~~~~~~~~~~
/home/superandy/tmp/oe-core-glibc/work/cortexa7t2hf-neon-vfpv4-angstrom-linux-gnueabi/csound/6.11.0-r0/git/Engine/csound_orc_semantics.c:393:9: error: 'strncpy' output truncated before terminating nul copying as many bytes from a string as its length [-Werror=stringop-truncation]
strncpy(inArgTypes + len1, argTypeRight, len2);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/superandy/tmp/oe-core-glibc/work/cortexa7t2hf-neon-vfpv4-angstrom-linux-gnueabi/csound/6.11.0-r0/git/Engine/csound_orc_semantics.c:389:16: note: length computed here
len2 = strlen(argTypeRight);
Upstream-Status: Pending
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
---
Engine/csound_orc_semantics.c | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/Engine/csound_orc_semantics.c b/Engine/csound_orc_semantics.c
index 6b6255d9c..5985b2435 100644
--- a/Engine/csound_orc_semantics.c
+++ b/Engine/csound_orc_semantics.c
@@ -70,7 +70,7 @@ char* cs_strdup(CSOUND* csound, char* str) {
retVal = csound->Malloc(csound, len + 1);
if (len > 0) {
- strncpy(retVal, str, len);
+ strncpy(retVal, str, len+1);
}
retVal[len] = '\0';
@@ -389,8 +389,8 @@ char* get_arg_type2(CSOUND* csound, TREE* tree, TYPE_TABLE* typeTable)
len2 = strlen(argTypeRight);
inArgTypes = csound->Malloc(csound, len1 + len2 + 1);
- strncpy(inArgTypes, argTypeLeft, len1);
- strncpy(inArgTypes + len1, argTypeRight, len2);
+ strncpy(inArgTypes, argTypeLeft, len1+1);
+ strncpy(inArgTypes + len1, argTypeRight, len2+1);
inArgTypes[len1 + len2] = '\0';
@@ -447,8 +447,8 @@ char* get_arg_type2(CSOUND* csound, TREE* tree, TYPE_TABLE* typeTable)
len2 = strlen(argTypeRight);
inArgTypes = csound->Malloc(csound, len1 + len2 + 1);
- strncpy(inArgTypes, argTypeLeft, len1);
- strncpy(inArgTypes + len1, argTypeRight, len2);
+ strncpy(inArgTypes, argTypeLeft, len1+1);
+ strncpy(inArgTypes + len1, argTypeRight, len2+1);
inArgTypes[len1 + len2] = '\0';
--
2.14.4

View File

@@ -0,0 +1,41 @@
From 599e78547a32ec3cd01ce9e007531b765f4168ee Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
Date: Mon, 2 Jul 2018 00:39:01 +0200
Subject: [PATCH] InOut/pmidi.c: Fix build with gcc8
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Upstream-Status: Pending
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
---
InOut/pmidi.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/InOut/pmidi.c b/InOut/pmidi.c
index 8dfe0e71d..f6de618cf 100644
--- a/InOut/pmidi.c
+++ b/InOut/pmidi.c
@@ -188,14 +188,14 @@ static int listDevices(CSOUND *csound, CS_MIDIDEVICE *list, int isOutput){
for (i = 0; i < cnt; i++) {
info = portMidi_getDeviceInfo(i, isOutput);
if (info->name != NULL)
- strncpy(list[i].device_name, info->name, 63);
+ strncpy(list[i].device_name, info->name, 64);
snprintf(tmp, 64, "%d", i);
- strncpy(list[i].device_id, tmp, 63);
+ strncpy(list[i].device_id, tmp, 64);
list[i].isOutput = isOutput;
if (info->interf != NULL)
- strncpy(list[i].interface_name, info->interf, 63);
+ strncpy(list[i].interface_name, info->interf, 64);
else strcpy(list[i].interface_name, "");
- strncpy(list[i].midi_module, drv, 63);
+ strncpy(list[i].midi_module, drv, 64);
}
return cnt;
}
--
2.14.4

View File

@@ -0,0 +1,27 @@
From 3d5e27ea49f67b38a39ad831d18e8abd17b3a9bc Mon Sep 17 00:00:00 2001
From: vlazzarini <vlazzarini@mu.ie>
Date: Sun, 27 May 2018 11:18:08 +0100
Subject: [PATCH] fixed unsafe use of strncpy
Upstream-Status: Backport
---
util1/scot/scot.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/util1/scot/scot.c b/util1/scot/scot.c
index 857bb08ce..5b9a0eb96 100644
--- a/util1/scot/scot.c
+++ b/util1/scot/scot.c
@@ -684,7 +684,7 @@ void addparam(int n, /* number of param to change */
ps = findparam(n, ptop);
if (strcmp(s, "."))
- strncpy(ps, s, 1+strlen(s));
+ strncpy(ps, s, 31);
}
static /* returns pointer to */
--
2.14.4

View File

@@ -0,0 +1,46 @@
From a070eaef29510f9138055896975917211d4fe61f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
Date: Mon, 2 Jul 2018 00:55:16 +0200
Subject: [PATCH] util1/csd_util/cs.c: Fix build with gcc8
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Upstream-Status: Pending
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
---
util1/csd_util/cs.c | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/util1/csd_util/cs.c b/util1/csd_util/cs.c
index a05ee3b43..768843fff 100644
--- a/util1/csd_util/cs.c
+++ b/util1/csd_util/cs.c
@@ -385,7 +385,7 @@ int main(int argc, char **argv)
while (--j) {
i++;
if (argv[i][0] != '-' && i < 3 && tmp[0] == '\0') {
- strncpy(tmp, argv[i],256);
+ strncpy(tmp, argv[i],255);
/* strip extension */
if (is_orc(tmp) || is_sco(tmp) || is_mid(tmp) || is_csd(tmp))
tmp[strlen(tmp) - 4] = '\0';
@@ -428,12 +428,12 @@ int main(int argc, char **argv)
/* (the last option has the highest precedence) */
s = getenv("CSOUND");
if (s != NULL) /* get default setting from CSOUND, if available */
- strncpy(tmp, s, 256);
+ strncpy(tmp, s, 255);
for (i = (int) strlen(optlst); --i >= 0; ) {
sprintf(tmp2, "CSOUND_%c", optlst[i]);
s = getenv(tmp2);
if (s != NULL) {
- strncpy(tmp, s, 256);
+ strncpy(tmp, s, 255);
if (tmp[0] != '\0') break;
}
}
--
2.14.4

View File

@@ -0,0 +1,53 @@
From 281beca9614fa8b5c09527809a6810525faf2177 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
Date: Wed, 10 Oct 2018 20:47:04 +0200
Subject: [PATCH] Fix build with fluidsynth version >= 2.0.0
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Please not that the second change set at
Upstream-Status: Backport [1]
[1] https://github.com/csound/csound/pull/1046
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
---
Opcodes/fluidOpcodes/fluidOpcodes.cpp | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)
diff --git a/Opcodes/fluidOpcodes/fluidOpcodes.cpp b/Opcodes/fluidOpcodes/fluidOpcodes.cpp
index d6f4da0fd..aa2b9d4b2 100644
--- a/Opcodes/fluidOpcodes/fluidOpcodes.cpp
+++ b/Opcodes/fluidOpcodes/fluidOpcodes.cpp
@@ -208,6 +208,7 @@ public:
} else if (listPresets) {
fluid_sfont_t *fluidSoundfont =
fluid_synth_get_sfont_by_id(fluidSynth, soundFontId);
+#if FLUIDSYNTH_VERSION_MAJOR < 2
fluid_preset_t fluidPreset;
fluidSoundfont->iteration_start(fluidSoundfont);
OPARMS oparms;
@@ -218,6 +219,18 @@ public:
soundFontId, fluidPreset.get_banknum(&fluidPreset),
fluidPreset.get_num(&fluidPreset),
fluidPreset.get_name(&fluidPreset));
+#else
+ fluid_preset_t *fluidPreset;
+ fluid_sfont_iteration_start(fluidSoundfont);
+ OPARMS oparms;
+ csound->GetOParms(csound, &oparms);
+ if (oparms.msglevel & 0x7)
+ while ((fluidPreset = fluid_sfont_iteration_next(fluidSoundfont))) {
+ log(csound, "SoundFont: %3d Bank: %3d Preset: %3d %s\n",
+ soundFontId, fluid_preset_get_banknum(fluidPreset),
+ fluid_preset_get_num(fluidPreset),
+ fluid_preset_get_name(fluidPreset));
+#endif
}
}
return result;
--
2.14.4

View File

@@ -0,0 +1,12 @@
[Desktop Entry]
Name=lpd8-editor
GenericName=AKAI LPD8 editor
GenericName[fr]=Utilitaire de contrôle pour les AKAI LPD8
Comment=Control AKAI LPD8
Comment[fr]=Utilitaire de contrôle pour les AKAI LPD8
Icon=lpd8-editor
Type=Application
Categories=AudioVideo;Audio;
Exec=lpd8-editor
Terminal=false

View File

@@ -0,0 +1,24 @@
SUMMARY = "A linux editor for the Akai LPD8"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://LICENSE.md;md5=6dc9df5fa3108f437a4580b0aebca196"
inherit pkgconfig qmake5 gtk-icon-cache
DEPENDS += " \
qtbase \
qtsvg \
alsa-lib \
"
SRC_URI = " \
git://github.com/charlesfleche/lpd8editor.git \
file://lpd8-editor.desktop \
"
SRCREV = "5ca6f2b90889893e0633b23ffe0e4a014096656a"
PV = "0.0.12"
S = "${WORKDIR}/git"
do_install_append() {
install -Dm 644 ${WORKDIR}/lpd8-editor.desktop ${D}/${datadir}/applications/lpd8-editor.desktop
install -Dm 644 ${S}/lpd8editor.svg ${D}/${datadir}/icons/hicolor/scalable/apps/lpd8-editor.svg
}

View File

@@ -0,0 +1,69 @@
SUMMARY = "Collection of synthesizers and plugins"
HOMEPAGE = "http://distrho.sourceforge.net/ports"
LICENSE = "GPLv2 & MIT"
LIC_FILES_CHKSUM = " \
file://ports/argotlunar/README.md;md5=81abc323be6ba481ab72864b53b3daca \
file://ports/protoplug/license.txt;md5=56b9d913eb7c3ef00ca375ab614bf02f \
"
SRC_URI = " \
git://github.com/DISTRHO/DISTRHO-Ports-Extra.git \
"
# TODO:
# argolunar: no sound (presets?)
# pdpulp: segfault
# protoplug asks for files
SRCREV = "b6f25f1feb4de49136844f20d88bec6439cdfbc5"
S = "${WORKDIR}/git"
PV = "0.0.0+git${SRCPV}"
REQUIRED_DISTRO_FEATURES = "x11 opengl"
inherit lv2-postinst-helper distro_features_check pack_audio_plugins
# distro-ports dependency for special hack script / libs
DEPENDS += " \
premake3-native \
virtual/libgl \
libx11 \
libxext \
libxcursor \
freetype \
csound \
distrho-ports \
"
do_configure() {
# reconfigure?
if [ ! -f ${LV2-TURTLE-BUILD-DATA} ] ; then
# Seems this collection is not ready for public - copy 'shared' from distrho-ports
rm -rf ${S}/scripts
rm -rf ${S}/libs
cp -rf ${STAGING_LIBDIR}/distrho-ports-build/* ${S}/
# manipulate scripts to keep lv2_ttl_generator-calls in script for lv2-postinst-helper
sed -i 's|$GEN ./$FILE|echo "lv2-ttl-generator `pwd`/$FILE" >> ${LV2-TURTLE-BUILD-DATA}|g' `find ${S}/scripts -name *.sh`
else
rm -f ${LV2-TURTLE-BUILD-DATA}
fi
cd ${S}
# platforms supporting sse2 can override NOOPTIMIZATIONS
NOOPTIMIZATIONS=1 ${S}/scripts/premake-update.sh linux
}
do_install() {
install -d ${D}${libdir}
cp -r ${S}/bin/* ${D}${libdir}
}
FILES_${PN} += " \
${libdir}/cabbage* \
"
# for common (?) cabbage files
RDEPENDS_${PN}-lv2 += "${PN}"
RDEPENDS_${PN}-vst += "${PN}"
# Have not found what causes stripping - debugging of plugins is unlikely
INSANE_SKIP_${PN} = "already-stripped"

View File

@@ -0,0 +1,96 @@
SUMMARY = "Collection of synthesizers and plugins"
HOMEPAGE = "http://distrho.sourceforge.net/ports"
LICENSE = "GPLv2 & LGPLv3"
LIC_FILES_CHKSUM = " \
file://doc/GPL.txt;md5=4641e94ec96f98fabc56ff9cc48be14b \
file://doc/LGPL.txt;md5=e6a600fd5e1d9cbde2d983680233ad02 \
"
SRC_URI = " \
git://github.com/DISTRHO/DISTRHO-Ports.git \
file://0001-disable-pitchedDelay-it-uses-double-precision-SSE2-b.patch \
file://0002-Refine-Plugin-do-not-include-xmmintrin.h.patch \
\
http://linuxsynths.com/ObxdPatchesDemos/ObxdPatchesBrian-01.tar.gz;name=linuxsynths-obxd-patches1;subdir=linuxsynths-obxd-patches \
\
http://linuxsynths.com/VexPatchesDemos/VexPatches01.tar.gz;name=linuxsynths-vex-patches1;subdir=linuxsynths-vex-patches \
http://linuxsynths.com/VexPatchesDemos/VexPatches02.tar.gz;name=linuxsynths-vex-patches2;subdir=linuxsynths-vex-patches \
"
SRCREV = "a82fff059baafc03f7c0e8b9a99f383af7bfbd79"
S = "${WORKDIR}/git"
PV = "2018-04-16"
SRC_URI[linuxsynths-obxd-patches1.md5sum] = "32244f847a54a71ee3c25079df5c8b84"
SRC_URI[linuxsynths-obxd-patches1.sha256sum] = "246fccadd71bb9f0606a95bf7b0aee7807fd3a14f754367425423a51c31e160e"
SRC_URI[linuxsynths-vex-patches1.md5sum] = "c03f8ac9eaf3fabb3c98af5cb27a5edb"
SRC_URI[linuxsynths-vex-patches1.sha256sum] = "1a32ba4ba52d0efcd2214e52ecf9ea71885d110261c2b26e23ccdbd0960b6f60"
SRC_URI[linuxsynths-vex-patches2.md5sum] = "a3d00bf9eb7e2381ffc56f3e79e067ec"
SRC_URI[linuxsynths-vex-patches2.sha256sum] = "378cff261dab333c5f29246b6f3f557e0461e8bc230519da3a1a9049cbd437d5"
REQUIRED_DISTRO_FEATURES = "x11 opengl"
inherit lv2-postinst-helper distro_features_check pack_audio_plugins
DEPENDS += " \
premake3-native \
virtual/libgl \
alsa-lib \
libx11 \
libxext \
libxcursor \
freetype \
ladspa-sdk \
"
do_configure() {
# reconfigure?
if [ ! -f ${LV2-TURTLE-BUILD-DATA} ] ; then
# keep unmodified scripts
cp -r ${S}/scripts ${WORKDIR}
# manipulate scripts to keep lv2_ttl_generator-calls in script for lv2-postinst-helper
sed -i 's|$GEN ./$FILE|echo "lv2-ttl-generator `pwd`/$FILE" >> ${LV2-TURTLE-BUILD-DATA}|g' `find ${S}/scripts -name *.sh`
else
rm -f ${LV2-TURTLE-BUILD-DATA}
fi
# platforms supporting sse2 can override this (NOOPTIMIZATIONS)
NOOPTIMIZATIONS=1 ${S}/scripts/premake-update.sh linux
}
do_install() {
install -d ${D}${libdir}
cp -r ${S}/bin/* ${D}${libdir}
# presets
install -d ${D}${libdir}/lv2
# obxd
for file in `find ${WORKDIR}/linuxsynths-obxd-patches -mindepth 1 -maxdepth 1` ; do
cp -rf $file ${D}${libdir}/lv2/
done
# vex
for file in `find ${WORKDIR}/linuxsynths-vex-patches -mindepth 1 -maxdepth 1` ; do
cp -rf $file ${D}${libdir}/lv2/
done
# install scripts for distro-ports-extra (and abuse libdir to ensure is is found in sysroot)
install -d ${D}/${libdir}/distrho-ports-build
cp -rf ${WORKDIR}/scripts ${D}${libdir}/distrho-ports-build/
cp -rf ${S}/libs ${D}${libdir}/distrho-ports-build/
rm -f ${D}${libdir}/distrho-ports-build/libs/lv2_ttl_generator
}
PACKAGES =+ "${PN}-presets"
RDEPENDS_${PN}-presets = "${PN}-lv2"
FILES_${PN}-presets = "${libdir}/lv2/*.preset.lv2"
# dummy pack scripts for distrho-ports-extra
FILES_${PN}-staticdev += " \
${libdir}/distrho-ports-build \
"
RDEPENDS_${PN}-staticdev = "bash perl"
# Have not found what causes stripping - debugging of plugins is unlikely
INSANE_SKIP_${PN} = "already-stripped"

View File

@@ -0,0 +1,57 @@
From b1b48a24ed4eda34e4dc4d649a1ef030c37694ec Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@googlemail.com>
Date: Mon, 26 Jun 2017 23:12:22 +0200
Subject: [PATCH] disable pitchedDelay - it uses double precision SSE2 by
default
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Our build system should setz proper flags.
Upstream-Status: Inappropriate [embedded specific]
Signed-off-by: Andreas Müller <schnitzeltony@googlemail.com>
---
ports/Makefile | 4 ----
1 file changed, 4 deletions(-)
diff --git a/ports/Makefile b/ports/Makefile
index d87da4af..521d9e1e 100644
--- a/ports/Makefile
+++ b/ports/Makefile
@@ -59,7 +59,6 @@ else
$(MAKE) -C LUFSMeter/LV2-Multi
$(MAKE) -C luftikus/LV2
$(MAKE) -C obxd/LV2
- $(MAKE) -C pitchedDelay/LV2
$(MAKE) -C refine/LV2
$(MAKE) -C stereosourceseparation/LV2
$(MAKE) -C tal-dub-3/LV2
@@ -98,7 +97,6 @@ vst: libs
$(MAKE) -C LUFSMeter/VST-Multi
$(MAKE) -C luftikus/VST
$(MAKE) -C obxd/VST
- $(MAKE) -C pitchedDelay/VST
$(MAKE) -C refine/VST
$(MAKE) -C stereosourceseparation/VST
$(MAKE) -C tal-dub-3/VST
@@ -136,7 +134,6 @@ clean:
$(MAKE) clean -C LUFSMeter/LV2-Multi
$(MAKE) clean -C luftikus/LV2
$(MAKE) clean -C obxd/LV2
- $(MAKE) clean -C pitchedDelay/LV2
$(MAKE) clean -C refine/LV2
$(MAKE) clean -C stereosourceseparation/LV2
$(MAKE) clean -C tal-dub-3/LV2
@@ -170,7 +167,6 @@ clean:
$(MAKE) clean -C LUFSMeter/VST-Multi
$(MAKE) clean -C luftikus/VST
$(MAKE) clean -C obxd/VST
- $(MAKE) clean -C pitchedDelay/VST
$(MAKE) clean -C refine/VST
$(MAKE) clean -C stereosourceseparation/VST
$(MAKE) clean -C tal-dub-3/VST
--
2.14.3

View File

@@ -0,0 +1,27 @@
From 8681831fa6fc5e58a7eebfc46bb0a467c8f19dcc Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
Date: Fri, 29 Dec 2017 23:36:46 +0100
Subject: [PATCH] Refine-Plugin: do not include "xmmintrin.h"
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
---
ports/refine/source/PluginProcessor.cpp | 1 -
1 file changed, 1 deletion(-)
diff --git a/ports/refine/source/PluginProcessor.cpp b/ports/refine/source/PluginProcessor.cpp
index 6c9e6182..ab50a6ad 100644
--- a/ports/refine/source/PluginProcessor.cpp
+++ b/ports/refine/source/PluginProcessor.cpp
@@ -1,6 +1,5 @@
#include "PluginProcessor.h"
#include "PluginEditor.h"
-#include "xmmintrin.h"
ReFinedAudioProcessor::ReFinedAudioProcessor()
{
--
2.14.3

View File

@@ -0,0 +1,65 @@
SUMMARY = "Collection of DPF-based plugins"
LICENSE = "ISC & GPLv2 & GPLv3 & LGPLv3 & MIT"
LIC_FILES_CHKSUM = " \
file://LICENSE;md5=ec024abddfab2ee463c8c1ad98883d12 \
"
SRC_URI = " \
git://github.com/DISTRHO/DPF-Plugins.git \
"
SRCREV = "3adff289617ed32f9d0cb679b05e430531cbf0dd"
S = "${WORKDIR}/git"
PV = "v1.1+git${SRCPV}"
REQUIRED_DISTRO_FEATURES = "x11 opengl"
inherit qemu-ext distro_features_check pkgconfig pack_audio_plugins
# TODO standalones: DEPEND jack / install / *.desktop
DEPENDS += " \
virtual/libgl \
ladspa-sdk \
lv2 \
projectm \
"
do_compile_prepend() {
export NOOPT=true
rm -f ${WORKDIR}/lv2_ttl_generator-data
# manipulate scripts to keep lv2_ttl_generator-calls in script for qemu
sed -i 's|"$GEN" "./$FILE"|echo `pwd`/$FILE >> ${WORKDIR}/lv2_ttl_generator-data|g' ${S}/dpf/utils/generate-ttl.sh
}
do_compile_append() {
# build ttl-files must be done in quemu
for sofile in `cat ${WORKDIR}/lv2_ttl_generator-data`; do
cd `dirname ${sofile}`
echo "QEMU lv2_ttl_generator for ${sofile}..."
${@qemu_run_binary_local(d, '${STAGING_DIR_TARGET}', '${S}/dpf/utils/lv2_ttl_generator')} ${sofile} || echo "ERROR: for QEMU lv2_ttl_generator for ${sofile}!"
done
}
do_install() {
install -d ${D}${libdir}/ladspa
for plugin in `find ${S}/bin/ -name *ladspa.so`; do
install -m 644 $plugin ${D}${libdir}/ladspa/
done
install -d ${D}${libdir}/lv2
for plugindir in `find ${S}/bin/ -maxdepth 1 -name *.lv2`; do
lv2dir=${D}${libdir}/lv2/`basename $plugindir`
install -d $lv2dir
for plugin in `find $plugindir -type f`; do
install -m 644 $plugin $lv2dir/
done
done
install -d ${D}${libdir}/vst
for plugin in `find ${S}/bin/ -name *vst.so`; do
install -m 644 $plugin ${D}${libdir}/vst/
done
}
# Have not found what causes stripping - debugging of plugins is unlikely
INSANE_SKIP_${PN} = "already-stripped"

View File

@@ -0,0 +1,22 @@
SUMMARY = "lv2-ttl-generator-native"
LICENSE = "ISC"
LIC_FILES_CHKSUM = " \
file://LICENSE;md5=7b4d7947003bd60e5475fc61c6d014da \
"
SRC_URI = "git://github.com/DISTRHO/DPF.git"
SRCREV = "70cec6a9d0222b32abdcaec02cd7b01378c4d78b"
S = "${WORKDIR}/git"
PV = "0.0.0+git${SRCPV}"
BBCLASSEXTEND = "native"
do_compile() {
cd ${S}/utils/lv2-ttl-generator
oe_runmake
}
do_install() {
install -d ${D}${bindir}
install -m 0755 ${S}/utils/lv2_ttl_generator ${D}${bindir}/lv2-ttl-generator
}

View File

@@ -0,0 +1,36 @@
From bc0b880e8f6c352d3ad6f6af02beb4e4c9d82bcb Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
Date: Fri, 18 Jan 2019 19:15:57 +0100
Subject: [PATCH] CMake: Keep build system flags
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
This fixes builds for cross/sysrooted build systems which set lots of flags to
tailor build.
Upstream-Status: Submitted [1]
[1] https://github.com/nicklan/drmr/pull/22
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
---
CMakeLists.txt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 7380842..1d0e174 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -4,7 +4,7 @@ cmake_minimum_required(VERSION 2.6)
project (DrMr)
set(LV2_INSTALL_DIR lib/lv2 CACHE PATH "Specifies where the LV2 libraries should be installed")
-set(CMAKE_C_FLAGS "-Wall")
+set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall")
# Availble options
option(USE_NKNOB "Use custom NKnob widgets for gain/pan instead of Gtk sliders" ON)
--
2.20.1

View File

@@ -0,0 +1,29 @@
SUMMARY = "An LV2 sampler plugin that plays hydrogen drum kits "
HOMEPAGE = "https://github.com/nicklan/drmr"
LICENSE = "GPLv3"
LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
DEPENDS += " \
libsndfile1 \
libsamplerate0 \
lv2 \
expat \
gtk+ \
"
inherit cmake pkgconfig
SRC_URI = " \
git://github.com/nicklan/drmr.git;branch=lv2unstable \
file://0001-CMake-Keep-build-system-flags.patch \
"
SRCREV = "f244f3b09bb290dd6a4b9c14d4abaf69e9861f9d"
S = "${WORKDIR}/git"
PV = "0.0.0+git${SRCPV}"
EXTRA_OECMAKE = " \
-DLV2_INSTALL_DIR:PATH=${baselib}/lv2 \
"
FILES_${PN} += "${libdir}/lv2"

View File

@@ -0,0 +1,31 @@
From 36b834661ac4169db20c682bddfdcdf96df5a2f7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
Date: Sat, 19 Jan 2019 00:44:13 +0100
Subject: [PATCH] Do not inject /usr/local/include to include paths
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Upstream-Status: Pending
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
---
waflib/extras/autowaf.py | 2 --
1 file changed, 2 deletions(-)
diff --git a/waflib/extras/autowaf.py b/waflib/extras/autowaf.py
index feaae3c6..119c95b5 100644
--- a/waflib/extras/autowaf.py
+++ b/waflib/extras/autowaf.py
@@ -189,8 +189,6 @@ def check_pkg(conf, name, **args):
if 'COMPILER_CXX' in conf.env:
conf.env.append_value('CXXFLAGS', ['-isystem', path])
- conf.env.append_value('CXXFLAGS', ['-isystem', '/usr/local/include'])
-
def normpath(path):
if sys.platform == 'win32':
return os.path.normpath(path).replace('\\', '/')
--
2.20.1

View File

@@ -0,0 +1,21 @@
SUMMARY = "Ganv is a Gtk widget for interactive graph-like environments"
DESCRIPTION = "Ganv is a Gtk widget for interactive graph-like environments, such as modular synthesizers or finite state machines"
HOMEPAGE = "http://drobilla.net/software/ganv"
LICENSE = "GPLv3"
LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
inherit waf
DEPENDS += " \
glib-2.0-native \
gtk+ \
gtkmm \
"
SRC_URI = " \
git://git.drobilla.net/ganv.git;protocol=http \
file://0001-Do-not-inject-usr-local-include-to-include-paths.patch \
"
SRCREV = "ccc9b971ab206fa3dc32a432a3e76db976192f58"
S = "${WORKDIR}/git"
PV = "1.4.2+git${SRCPV}"

View File

@@ -0,0 +1,57 @@
SUMMARY = "Ingen is a modular audio processing system for Jack and LV2 based systems"
HOMEPAGE = "http://drobilla.net/software/ingen"
LICENSE = "AGPLv3"
LIC_FILES_CHKSUM = "file://COPYING;md5=73f1eb20517c55bf9493b7dd6e480788"
inherit waf pkgconfig gtk-icon-cache pack_audio_plugins pythonnative
DEPENDS += " \
boost \
gtkmm \
lilv \
suil \
raul \
ganv \
portaudio-v19 \
"
SRC_URI = " \
git://github.com/drobilla/ingen.git \
file://0001-Do-not-inject-usr-local-include-to-include-paths.patch \
"
SRCREV = "cc3d7ef610e5f93086eb46406cc600ee81a23e98"
S = "${WORKDIR}/git"
PV = "0.5.1+git${SRCPV}"
DOCDEPENDS = " \
lv2-native \
doxygen-native \
graphviz-native \
gdk-pixbuf-native \
libpng-native \
python-rdflib-native \
python-isodate-native \
python-six-native \
"
PACKAGECONFIG[doc] = "--docs,,${DOCDEPENDS}"
PACKAGES =+ "${PN}-standalone ${PN}-python"
FILES_SOLIBSDEV = "${libdir}/libingen${SOLIBSDEV}"
FILES_${PN} += " \
${libdir}/libingen_*.so \
"
FILES_${PN}-standalone = " \
${datadir}/applications \
${datadir}/icons \
${bindir}/ingen \
"
# pyton tools are not expected to work: we do not have rdflib yet
FILES_${PN}-python = " \
${bindir}/ingenams \
${bindir}/ingenish \
${PYTHON_SITEPACKAGES_DIR} \
"

View File

@@ -0,0 +1,32 @@
SUMMARY = "Jalv is a simple but fully featured LV2 host for Jack"
HOMEPAGE = "http://drobilla.net/software/jalv"
LICENSE = "ISC"
LIC_FILES_CHKSUM = "file://COPYING;md5=eb60cfffc455677d4f11cf7f36c12093"
inherit waf pkgconfig gtk-icon-cache
DEPENDS += " \
qtbase-native \
lv2 \
lilv \
serd \
sord \
sratom \
suil \
jack \
gtkmm \
gtk+3 \
qtbase \
"
SRC_URI = " \
git://github.com/drobilla/jalv.git \
file://0001-Do-not-inject-usr-local-include-to-include-paths.patch \
"
SRCREV = "8311df91cc212adf3220acfcb50ab63414fe9dd6"
S = "${WORKDIR}/git"
PV = "1.6.0+git${SRCPV}"
FILES_${PN} += " \
${libdir}/jack \
"

View File

@@ -0,0 +1,14 @@
SUMMARY = "C library providing simple use of LV2 plugins"
HOMEPAGE = "http://drobilla.net/software/lilv"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://COPYING;md5=7aceb3a3edc99517b08f5cdd557e11fb"
inherit waf bash-completion pkgconfig
DEPENDS += "lv2 serd sord sratom"
SRC_URI = "http://download.drobilla.net/${BPN}-${PV}.tar.bz2"
SRC_URI[md5sum] = "fb340958a6df5a683bf25e291493dc4d"
SRC_URI[sha256sum] = "c33b84b7a6e8e8fffb412fbcd6f69e59ca297ef3e29d829249b4ccc94f634438"
EXTRA_OECONF = "--configdir=${sysconfdir} --dyn-manifest"

View File

@@ -0,0 +1,5 @@
require ${BPN}.inc
inherit native

View File

@@ -0,0 +1,9 @@
require ${BPN}.inc
DEPENDS = "gtk+ libsndfile1"
EXTRA_OECONF = "--libdir=${libdir}"
FILES_${PN} += " \
${datadir} \
"

View File

@@ -0,0 +1,13 @@
SUMMARY = "LV2 is an open standard for audio plugins"
LICENSE = "ISC"
LIC_FILES_CHKSUM = "file://COPYING;md5=0383f162366b0c5a316292759a55d292"
SRC_URI = " \
git://github.com/drobilla/lv2.git \
file://0001-Output-more-details-on-import-error-to-catch-missing.patch \
"
S = "${WORKDIR}/git"
SRCREV = "96a6283a5fe023c59113242631f337da5f0eb278"
PV = "1.14.0+git${SRCPV}"
inherit waf pkgconfig

View File

@@ -0,0 +1,56 @@
From bc96caf97d32168abefde038e9353685a14fa64d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
Date: Mon, 21 Jan 2019 22:38:05 +0100
Subject: [PATCH] Output more details on import error to catch missing
dependencies
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Updream-Status: Pending
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
---
lv2specgen/lv2docgen.py | 3 ++-
lv2specgen/lv2specgen.py | 6 ++++--
2 files changed, 6 insertions(+), 3 deletions(-)
diff --git a/lv2specgen/lv2docgen.py b/lv2specgen/lv2docgen.py
index 23a239d..685f32e 100755
--- a/lv2specgen/lv2docgen.py
+++ b/lv2specgen/lv2docgen.py
@@ -28,7 +28,8 @@ __contact__ = 'devel@lists.lv2plug.in'
try:
import rdflib
-except ImportError:
+except ImportError as imperror:
+ print(imperror)
sys.exit('Error importing rdflib')
doap = rdflib.Namespace('http://usefulinc.com/ns/doap#')
diff --git a/lv2specgen/lv2specgen.py b/lv2specgen/lv2specgen.py
index ddd0ba5..c86157e 100755
--- a/lv2specgen/lv2specgen.py
+++ b/lv2specgen/lv2specgen.py
@@ -63,13 +63,15 @@ try:
from pygments.lexer import RegexLexer, include, bygroups
from pygments.token import Text, Comment, Operator, Keyword, Name, String, Literal, Punctuation
have_pygments = True
-except ImportError:
+except ImportError as imperror:
+ print(imperror)
print("Error importing pygments, syntax highlighting disabled")
have_pygments = False
try:
import rdflib
-except ImportError:
+except ImportError as imperror:
+ print(imperror)
sys.exit("Error importing rdflib")
# Global Variables
--
2.20.1

View File

@@ -0,0 +1,21 @@
SUMMARY = "MDA-LV2 is an LV2 port of the MDA plugins by Paul Kellett"
HOMEPAGE = "https://drobilla.net/software/mda-lv2"
LICENSE = "GPLv3"
LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
inherit waf distro_features_check pkgconfig
REQUIRED_DISTRO_FEATURES = "x11"
DEPENDS = "lv2"
SRC_URI = "http://download.drobilla.net/${BPN}-${PV}.tar.bz2"
SRC_URI[md5sum] = "1962f48c54eafe52a3d2471cd3072aa8"
SRC_URI[sha256sum] = "a476c31ed9f8b009ebacc32a02d06ba9584c0d0d03f03dd62b1354d10a030442"
EXTRA_OECONF = " \
--lv2dir=${libdir}/lv2 \
"
FILES_${PN} += "${libdir}/lv2"

View File

@@ -0,0 +1,21 @@
SUMMARY = "Patchage is a modular patch bay for audio and MIDI systems"
DESCRIPTION = "Patchage is a modular patch bay for audio and MIDI systems based on Jack and Alsa"
HOMEPAGE = "http://drobilla.net/software/patchage"
LICENSE = "GPLv3"
LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
inherit waf gtk-icon-cache pkgconfig
DEPENDS += " \
boost \
jack \
ganv \
"
SRC_URI = " \
git://git.drobilla.net/patchage.git;protocol=http \
file://0001-Do-not-inject-usr-local-include-to-include-paths.patch \
"
SRCREV = "b69a38d171758c6e979d74541fc21d12b7e6abda"
PV = "1.0.0+git${SRCPV}"
S = "${WORKDIR}/git"

View File

@@ -0,0 +1,12 @@
SUMMARY = "Raul is a utility library primarily aimed at audio/musical applications"
DESCRIPTION = "Raul (Realtime Audio Utility Library) is a C++ utility library primarily aimed at audio/musical applications"
HOMEPAGE = "https://drobilla.net/software/raul"
LICENSE = "GPLv3"
LIC_FILES_CHKSUM = "file://COPYING;md5=d32239bcb673463ab874e80d47fae504"
inherit waf
SRC_URI = "git://github.com/drobilla/raul.git"
SRCREV = "5eb7a555de2291f4df8c75ce261c555552725beb"
S = "${WORKDIR}/git"
PV = "0.8.10+git${SRCPV}"

View File

@@ -0,0 +1,10 @@
SUMMARY = "C library for RDF syntax which supports accessing Turtle and NTriples"
HOMEPAGE = "http://drobilla.net/software/serd"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://COPYING;md5=7aceb3a3edc99517b08f5cdd557e11fb"
inherit waf
SRC_URI = "http://download.drobilla.net/${BPN}-${PV}.tar.bz2"
SRC_URI[md5sum] = "82243362b8b5a47dd46dac7ae893f562"
SRC_URI[sha256sum] = "6efb0efa5c2155e6bbac941cddeeabb7ed26d70a57d24178894ff169d8f6cefb"

View File

@@ -0,0 +1,12 @@
SUMMARY = "C library for storing RDF data in memory"
HOMEPAGE = "http://drobilla.net/software/sord"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://COPYING;md5=6b8d060e6d32fbd53684f9dc0443b6a3"
inherit waf pkgconfig
DEPENDS += "libpcre serd"
SRC_URI = "http://download.drobilla.net/${BPN}-${PV}.tar.bz2"
SRC_URI[md5sum] = "eb1d1c62ffb5153d5e1f5d12a3b7279b"
SRC_URI[sha256sum] = "09f51174dd8f3efbd95f44f0bb0b165f08e066e052d40095de59de787987da8d"

View File

@@ -0,0 +1,12 @@
SUMMARY = "Sratom is a library for serialising LV2 atoms to and from RDF"
HOMEPAGE = "http://drobilla.net/software/sratom"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://COPYING;md5=ebc7934238811c788037421c6c548ddf"
inherit waf pkgconfig
DEPENDS += "lv2 serd sord"
SRC_URI = "http://download.drobilla.net/${BPN}-${PV}.tar.bz2"
SRC_URI[md5sum] = "aa3c540032da43cf6cf68f684983d7f5"
SRC_URI[sha256sum] = "0a514a55d6b6cb7b5d6f32d1dcb78a1e6e54537fa22fce533e4ef6adf240e853"

View File

@@ -0,0 +1,41 @@
From e557abec62aa4c9c90ae50db3fe938a97e910288 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
Date: Wed, 26 Dec 2018 22:39:08 +0100
Subject: [PATCH] Do not try to build macOS cocoa
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Seems the headers are installed for unknown reason - so make sure support is
remains disabled.
Fixes:
| arm-mortsgna-linux-gnueabi-g++: error: ../suil-0.10.2/src/cocoa_in_qt5.mm: Objective-C++ compiler not installed on this system
Upstream-Status: Pending [1]
[1] https://github.com/drobilla/suil/issues/6
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
---
wscript | 4 ----
1 file changed, 4 deletions(-)
diff --git a/wscript b/wscript
index 89ab039..352e569 100644
--- a/wscript
+++ b/wscript
@@ -91,10 +91,6 @@ def configure(conf):
if not conf.options.no_qt5:
autowaf.check_pkg(conf, 'Qt5Widgets', uselib_store='QT5',
atleast_version='5.1.0', mandatory=False)
- if conf.check_cxx(header_name = 'QMacCocoaViewContainer',
- uselib = 'QT5',
- mandatory = False):
- autowaf.define(conf, 'SUIL_WITH_COCOA_IN_QT5', 1)
conf.check_cc(define_name = 'HAVE_LIBDL',
lib = 'dl',
--
2.20.1

View File

@@ -0,0 +1,19 @@
SUMMARY = "Suil is a lightweight C library for loading and wrapping LV2 plugin UIs"
HOMEPAGE = "https://drobilla.net/software/suil"
LICENSE = "MIT"
LIC_FILES_CHKSUM = "file://COPYING;md5=83836dc85960985c534b2a881cca21c0"
inherit waf distro_features_check pkgconfig
REQUIRED_DISTRO_FEATURES = "x11"
DEPENDS = "gtk+ gtk+3 qtbase lv2"
SRC_URI = " \
http://download.drobilla.net/${BPN}-${PV}.tar.bz2 \
file://0001-Do-not-try-to-build-macOS-cocoa.patch \
"
SRC_URI[md5sum] = "e92d656b5faf999226642cdbe595976d"
SRC_URI[sha256sum] = "9f445910627fb30f4c182b9ee00d1030324910d8a9ce7c9654c34465411da401"
FILES_${PN} += "${libdir}/suil-0"

View File

@@ -0,0 +1,12 @@
require ${BPN}.inc
inherit native
do_compile() {
${CXX} ${CXXFLAGS} -o ${S}/drumgizmo-rcgen ${S}/plugingui/rcgen.cc $(LDFLAGS)
}
do_install() {
install -d ${D}${bindir}
install -m 755 ${S}/drumgizmo-rcgen ${D}${bindir}
}

View File

@@ -0,0 +1,40 @@
require ${BPN}.inc
inherit autotools-brokensep pkgconfig distro_features_check gtk-icon-cache
REQUIRED_DISTRO_FEATURE = "x11"
DEPENDS += " \
${BPN}-native \
libx11 \
libxext \
lv2 \
libsmf \
alsa-lib \
libsndfile1 \
zita-resampler \
jack \
"
SRC_URI += " \
file://0001-automake-enable-subdir-objects.patch \
file://0002-Use-native-rcgen.patch \
file://drumgizmo.desktop \
"
# --disable-editor: sigh - editor requires Qt4
EXTRA_OECONF = " \
--enable-lv2 \
--without-debug \
--disable-sse \
"
do_install_append() {
install -d ${D}${datadir}/pixmaps
install -m 0644 ${S}/plugingui/resources/logo.png ${D}${datadir}/pixmaps/drumgizmo-logo.png
install -d ${D}${datadir}/applications
install -m 0644 ${WORKDIR}/${BPN}.desktop ${D}${datadir}/applications/
}
FILES_${PN} += "${libdir}/lv2"

View File

@@ -0,0 +1,11 @@
SUMMARY = "DrumGizmo is drum plugin and stand-alone application"
HOMEPAGE = "https://www.drumgizmo.org"
LICENSE = "LGPLv3"
LIC_FILES_CHKSUM = "file://COPYING;md5=e6a600fd5e1d9cbde2d983680233ad02"
SRC_URI = " \
http://www.drumgizmo.org/releases/${BPN}-${PV}/${BPN}-${PV}.tar.gz \
"
SRC_URI[md5sum] = "86e4239f1eb59e8b77c7d13edc24f93b"
SRC_URI[sha256sum] = "8f76b58785186ac02337b9248003ec1a459a801d3003619fd32fde976c307947"
PV = "0.9.16"

View File

@@ -0,0 +1,31 @@
From c9eec598b2f8b1435a2229dd5c49a9e15c6bc2ac Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
Date: Thu, 22 Feb 2018 00:13:04 +0100
Subject: [PATCH] automake: enable subdir-objects
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Upstream-Status: Pending
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
---
configure.ac | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
index 0562059..13a7ffc 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3,7 +3,7 @@
AC_INIT([drumgizmo], m4_esyscmd([cat version.h | cut -d'"' -f2 | xargs echo -n]))dnl"
AC_CONFIG_SRCDIR([src/drumgizmo.cc])
-AM_INIT_AUTOMAKE
+AM_INIT_AUTOMAKE(subdir-objects)
AC_PROG_CXX
AC_PROG_OBJC
--
2.14.3

View File

@@ -0,0 +1,31 @@
From 766c8c4aa6f6e8743234b93a760a89480bddd7fd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
Date: Mon, 28 May 2018 23:08:07 +0200
Subject: [PATCH] Use native rcgen
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Upstream-Status: Inappropriate [cross specific]
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
---
plugingui/Makefile.am | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/plugingui/Makefile.am b/plugingui/Makefile.am
index dd36783..ca30e84 100644
--- a/plugingui/Makefile.am
+++ b/plugingui/Makefile.am
@@ -28,7 +28,7 @@ RES = \
../COPYING
resource_data.cc : rcgen $(RES)
- ./rcgen $(RES) > resource_data.cc
+ drumgizmo-rcgen $(RES) > resource_data.cc
libdggui_la_CPPFLAGS = \
$(GUI_CPPFLAGS) \
--
2.14.3

View File

@@ -0,0 +1,8 @@
[Desktop Entry]
Name=DrumGizmo
Comment=DrumGizmo standalone application
Exec=drumgizmo
Icon=drumgizmo-logo.png
Terminal=false
Type=Application
Categories=Application;Audio;Midi;Music

View File

@@ -0,0 +1,25 @@
SUMMARY = "C++/Qt5 wrapper around multiple MIDI interfaces"
HOMEPAGE = "http://drumstick.sourceforge.net"
LICENSE = "GPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=d9d415d3d8c5523e5586ff7b785095f1"
inherit cmake_qt5 pkgconfig mime gtk-icon-cache
DEPENDS += " \
qtbase \
qtsvg \
fluidsynth \
"
SRC_URI = " \
${SOURCEFORGE_MIRROR}/project/${BPN}/${PV}/${BPN}-${PV}.tar.bz2 \
file://0001-Do-not-set-lib-suffix-oe-will-take-care.patch \
"
SRC_URI[md5sum] = "a1fd83216f65619fea766dfc0a6f5266"
SRC_URI[sha256sum] = "367743764c8f5c6e40bb19b9581f083da2881b9c9516d6b3b247e5644dee7c2b"
EXTRA_OECMAKE = "-DLIB_SUFFIX=`echo ${baselib} | sed -e s/lib//`"
FILES_${PN} += " \
${datadir}/mime \
${datadir}/icons \
"

View File

@@ -0,0 +1,35 @@
From 30166fe55c9a7c65f5db04e75e92407da4f0e88a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony@gmail.com>
Date: Fri, 10 Aug 2018 14:00:52 +0200
Subject: [PATCH] Do not set lib-suffix - oe will take care
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Upstream-Status: Pending
Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
---
CMakeLists.txt | 6 +-----
1 file changed, 1 insertion(+), 5 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 274b6fa..6782e43 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -21,11 +21,7 @@ endif()
project(DRUMSTICK)
-if(CMAKE_SIZEOF_VOID_P MATCHES "8")
- set(_INIT_LIB_SUFFIX "64")
-else()
- set(_INIT_LIB_SUFFIX "")
-endif()
+set(_INIT_LIB_SUFFIX "")
set(LIB_SUFFIX ${_INIT_LIB_SUFFIX} CACHE STRING "optional library install directory suffix: 32, 64, none")
set(CMAKE_COLOR_MAKEFILE ON)
--
2.14.4

View File

@@ -0,0 +1,41 @@
SUMMARY = "DSSI plugin wrapper for VST plugins"
HOMEPAGE = "http://breakfastquay.com/dssi-vst/"
LICENSE = "LGPLv2"
LIC_FILES_CHKSUM = "file://COPYING;md5=3523f03012c30f3347df42d632e5762c"
inherit pkgconfig
DEPENDS += " \
dssi \
ladspa-sdk \
alsa-lib \
jack \
liblo \
zlib \
"
SRC_URI = "git://github.com/falkTX/dssi-vst.git"
SRCREV = "9462b34563af84b452795d4924d4f18af9072529"
S = "${WORKDIR}/git"
PV = "0.9.2+git${SRCPV}"
EXTRA_OEMAKE = 'BUILD_FLAGS="-ffast-math -fPIC -Ivestige ${CXX_FLAGS}" TARGETS="dssi-vst.so dssi-vst_gui vsthost"'
do_install() {
# Makefile wants to install wine binaries - so install manually
install -d ${D}${bindir}
install -d ${D}${libdir}/dssi/dssi-vst
install -d ${D}${libdir}/ladspa
install -m 755 vsthost ${D}${bindir}
install -m 755 ${S}/dssi-vst.so ${D}${libdir}/dssi
# install once only
ln -s ../dssi/dssi-vst.so ${D}${libdir}/ladspa
install -m 755 ${S}/dssi-vst_gui ${D}${libdir}/dssi/dssi-vst
}
INSANE_SKIP_${PN} = "dev-so"
FILES_${PN} += " \
${libdir}/ladspa \
${libdir}/dssi \
"

View File

@@ -0,0 +1,27 @@
SUMMARY = "DSSI is an audio plugin API for soft synths and effects"
HOMEPAGE = "http://dssi.sourceforge.net"
LICENSE = "LGPLv2.1"
LIC_FILES_CHKSUM = "file://COPYING;md5=9f46aa1ea6e91bb339e8fa2f11d17e4d"
inherit autotools pkgconfig
DEPENDS += " \
jack \
libsndfile1 \
libsamplerate0 \
liblo \
ladspa-sdk \
"
SRC_URI = "${SOURCEFORGE_MIRROR}/project/${BPN}/${BPN}/${PV}/${BPN}-${PV}.tar.gz"
SRC_URI[md5sum] = "619ab73c883b02dc37ddb37001591f8b"
SRC_URI[sha256sum] = "f2c82b073a947c8255284249097667f9b14e660bf86186f3fcd3b3b3e087814e"
PACKAGES =+ "${PN}-examples"
FILES_${PN}-examples = " \
${bindir}/dssi_* \
${bindir}/karplong \
${bindir}/*trivial* \
\
${libdir}/dssi/*.so \
"

Some files were not shown because too many files have changed in this diff Show More