[packages/lmms] Version: 1.2.0-rc7, build with fluidsynth 2.0
jajcus
jajcus at pld-linux.org
Tue Nov 20 21:49:34 CET 2018
commit a5b88596852e8161919ae30cfd972ceb308f540c
Author: Jacek Konieczny <jajcus at jajcus.net>
Date: Tue Nov 20 21:49:02 2018 +0100
Version: 1.2.0-rc7, build with fluidsynth 2.0
bash_completion_install.patch | 16 +++
cmake_buildef.patch | 13 --
fluidsynth2.patch | 315 ++++++++++++++++++++++++++++++++++++++++++
lmms.spec | 69 ++++++---
logical-not-parentheses.patch | 13 --
static_inline.patch | 45 ------
6 files changed, 381 insertions(+), 90 deletions(-)
---
diff --git a/lmms.spec b/lmms.spec
index d56e0dd..133275b 100644
--- a/lmms.spec
+++ b/lmms.spec
@@ -1,25 +1,40 @@
+
+%define rpmalloc_version 1.3.0
+%define qt5_x11embed_version 022b39a1d496d72eb3e5b5188e5559f66afca957
+
+%define _rc rc7
+%define rel 1
+
Summary: Linux MultiMedia Studio
Summary(pl.UTF-8): MultiMedialne Studio Linuksa
Name: lmms
-Version: 1.1.3
-Release: 1
+Version: 1.2.0
+Release: 0.%{_rc}.%{rel}
License: GPL V2
Group: X11/Applications/Sound
-Source0: https://github.com/LMMS/lmms/archive/v%{version}/%{name}-%{version}.tar.gz
-# Source0-md5: 88d9e66d240b711c37315e3c9da644a1
-Patch0: cmake_buildef.patch
-Patch1: static_inline.patch
-Patch2: logical-not-parentheses.patch
+Source0: https://github.com/LMMS/lmms/archive/v%{version}-%{_rc}/%{name}-%{version}-%{_rc}.tar.gz
+# Source0-md5: 4d527a7f4fc38b105eac55fbd49cf2bb
+Source1: https://github.com/rampantpixels/rpmalloc/archive/%{rpmalloc_version}/rpmalloc-%{rpmalloc_version}.tar.gz
+# Source1-md5: 95109beaddeaafd20345ebe4e10c76ba
+Source2: https://github.com/Lukas-W/qt5-x11embed/archive/%{qt5_x11embed_version}/qt5-x11embed-%{qt5_x11embed_version}.tar.gz
+# Source2-md5: 193f7a94d1af51c2f85628fcbbf2bf49
+Patch0: fluidsynth2.patch
+Patch1: bash_completion_install.patch
URL: https://lmms.io/
-BuildRequires: QtCore-devel >= 4.5
-BuildRequires: QtGui-devel >= 4.5
-BuildRequires: QtXml-devel >= 4.5
+BuildRequires: Carla-devel >= 1.9.5
+BuildRequires: Mesa-libGL-devel
+BuildRequires: Qt5Core-devel
+BuildRequires: Qt5Gui-devel
+BuildRequires: Qt5Xml-devel
BuildRequires: SDL-devel
BuildRequires: alsa-lib-devel
BuildRequires: cmake
BuildRequires: fftw3-single-devel >= 3.0.0
BuildRequires: fluidsynth-devel >= 1.0.7
BuildRequires: jack-audio-connection-kit-devel
+BuildRequires: kf5-extra-cmake-modules
+BuildRequires: lame-libs-devel
+BuildRequires: libgig-devel
BuildRequires: libogg-devel
BuildRequires: libsamplerate-devel >= 0.1.8
BuildRequires: libsndfile-devel >= 1.0.11
@@ -27,9 +42,11 @@ BuildRequires: libvorbis-devel
BuildRequires: pkgconfig
BuildRequires: portaudio-devel
BuildRequires: pulseaudio-devel
-BuildRequires: qt4-build
-BuildRequires: qt4-qmake
+BuildRequires: qt5-build
+BuildRequires: qt5-qmake
BuildRequires: xorg-lib-libXft-devel
+# the VSD loader requires 32-bit devel files
+#BuildRequires: wine-devel
Requires: %{name}-libs = %{epoch}:%{version}-%{release}
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
@@ -65,16 +82,27 @@ LMMS library.
Biblioteka LMMS.
%prep
-%setup -q
+%setup -q -n %{name}-%{version}-%{_rc} -a1 -a2
+
+rmdir src/3rdparty/rpmalloc/rpmalloc
+ln -s ../../../rpmalloc-%{rpmalloc_version} src/3rdparty/rpmalloc/rpmalloc
+
+rmdir src/3rdparty/qt5-x11embed
+ln -s ../../qt5-x11embed-%{qt5_x11embed_version} src/3rdparty/qt5-x11embed
+
+rmdir qt5-x11embed-%{qt5_x11embed_version}/3rdparty/ECM
+ln -s %{_datadir}/ECM qt5-x11embed-%{qt5_x11embed_version}/3rdparty/ECM
+
%patch0 -p1
%patch1 -p1
-%patch2 -p1
%build
install -d build
cd build
%cmake .. \
+ -DWANT_QT5=ON \
-DCMAKE_INSTALL_PREFIX=%{_prefix} \
+ -DWANT_VST_NOWINE=ON \
%if "%{_lib}" == "lib64"
-DLIB_SUFFIX=64
%endif
@@ -87,8 +115,7 @@ rm -rf $RPM_BUILD_ROOT
%{__make} -C build install \
DESTDIR=$RPM_BUILD_ROOT
-%{__rm} $RPM_BUILD_ROOT%{_datadir}/menu/lmms
-%{__rm} $RPM_BUILD_ROOT%{_includedir}/lmms/embed.cpp
+rm -r $RPM_BUILD_ROOT%{_iconsdir}/hicolor/*@2/*/*
%clean
rm -rf $RPM_BUILD_ROOT
@@ -103,12 +130,16 @@ rm -rf $RPM_BUILD_ROOT
%{_mandir}/man1/lmms.1*
%{_datadir}/mime/packages/lmms.xml
%{_datadir}/lmms
-%{_pixmapsdir}/lmms.png
+%{_iconsdir}/hicolor/*/apps/lmms.png
+%{_iconsdir}/hicolor/*/mimetypes/application-x-lmms-project.png
+%{_iconsdir}/hicolor/*/apps/lmms.svg
+%{_iconsdir}/hicolor/*/mimetypes/application-x-lmms-project.svg
+%{bash_compdir}/lmms
%files devel
%defattr(644,root,root,755)
-%dir %{_includedir}/lmms
-%{_includedir}/lmms/*.h
+%{_includedir}/lmms
+%{_libdir}/libqx11embedcontainer.a
%files libs
%defattr(644,root,root,755)
diff --git a/bash_completion_install.patch b/bash_completion_install.patch
new file mode 100644
index 0000000..7836c6f
--- /dev/null
+++ b/bash_completion_install.patch
@@ -0,0 +1,16 @@
+diff -dur lmms-1.2.0-rc7.orig/cmake/modules/BashCompletion.cmake lmms-1.2.0-rc7/cmake/modules/BashCompletion.cmake
+--- lmms-1.2.0-rc7.orig/cmake/modules/BashCompletion.cmake 2018-09-25 09:47:51.000000000 +0200
++++ lmms-1.2.0-rc7/cmake/modules/BashCompletion.cmake 2018-11-20 21:01:39.306149303 +0100
+@@ -78,9 +78,9 @@
+ BASHCOMP_PKG_PATH=\"${BASHCOMP_PKG_PATH}\"\n\
+ fi\n\
+ echo -e \"\\nInstalling bash completion...\\n\"\n\
+-mkdir -p \"\$BASHCOMP_PKG_PATH\"\n\
+-cp \"${CMAKE_CURRENT_SOURCE_DIR}/${SCRIPT_NAME}\" \"\$BASHCOMP_PKG_PATH\"\n\
+-chmod a+r \"\$BASHCOMP_PKG_PATH/${SCRIPT_NAME}\"\n\
++mkdir -p \"\$DESTDIR\$BASHCOMP_PKG_PATH\"\n\
++cp \"${CMAKE_CURRENT_SOURCE_DIR}/${SCRIPT_NAME}\" \"\$DESTDIR\$BASHCOMP_PKG_PATH\"\n\
++chmod a+r \"\$DESTDIR\$BASHCOMP_PKG_PATH/${SCRIPT_NAME}\"\n\
+ echo -e \"Bash completion for ${SCRIPT_NAME} has been installed to \$BASHCOMP_PKG_PATH/${SCRIPT_NAME}\"\n\
+ ")
+ INSTALL(CODE "EXECUTE_PROCESS(COMMAND chmod u+x \"install_${SCRIPT_NAME}_completion.sh\" WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} )")
diff --git a/cmake_buildef.patch b/cmake_buildef.patch
deleted file mode 100644
index e59f7c1..0000000
--- a/cmake_buildef.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff -dur lmms-1.1.3.orig/CMakeLists.txt lmms-1.1.3/CMakeLists.txt
---- lmms-1.1.3.orig/CMakeLists.txt 2015-03-08 03:47:14.000000000 +0100
-+++ lmms-1.1.3/CMakeLists.txt 2015-12-12 19:03:31.196480144 +0100
-@@ -436,8 +436,8 @@
- # Paths relative to lmms executable
--FILE(RELATIVE_PATH LIB_DIR_RELATIVE "/${BIN_DIR}" "/${LIB_DIR}")
--FILE(RELATIVE_PATH PLUGIN_DIR_RELATIVE "/${BIN_DIR}" "/${PLUGIN_DIR}")
-+FILE(RELATIVE_PATH LIB_DIR_RELATIVE "/usr/bin" "${LIB_DIR}")
-+FILE(RELATIVE_PATH PLUGIN_DIR_RELATIVE "/usr/bin" "${PLUGIN_DIR}")
- ADD_DEFINITIONS(-D'LIB_DIR="${LIB_DIR_RELATIVE}/"' -D'PLUGIN_DIR="${PLUGIN_DIR_RELATIVE}/"' ${PULSEAUDIO_DEFINITIONS} ${PORTAUDIO_DEFINITIONS})
- INCLUDE_DIRECTORIES("${CMAKE_BINARY_DIR}"
- "${CMAKE_BINARY_DIR}/include"
- "${CMAKE_SOURCE_DIR}"
diff --git a/fluidsynth2.patch b/fluidsynth2.patch
new file mode 100644
index 0000000..7106a01
--- /dev/null
+++ b/fluidsynth2.patch
@@ -0,0 +1,315 @@
+From 1f7cd3ed5af6640c0e38a2dc2d9be5a9ae036dc8 Mon Sep 17 00:00:00 2001
+From: Hyunjin Song <tteu.ingog at gmail.com>
+Date: Sun, 28 Oct 2018 10:31:33 +0900
+Subject: [PATCH] Allow building SF2 player with FluidSynth 2.x (#4678)
+
+Resolves the incompatibility between FluidSynth 1.x and 2.x
+due to some API changes by shimming some functions.
+
+Note that 1.x and 2.x are not binary compatible.
+---
+ plugins/sf2_player/fluidsynthshims.h | 88 +++++++++++++++++++++++++++
+ plugins/sf2_player/patches_dialog.cpp | 44 ++++++++------
+ plugins/sf2_player/patches_dialog.h | 2 +-
+ plugins/sf2_player/sf2_player.cpp | 43 ++++++++++---
+ plugins/sf2_player/sf2_player.h | 2 +-
+ 5 files changed, 152 insertions(+), 27 deletions(-)
+ create mode 100644 plugins/sf2_player/fluidsynthshims.h
+
+diff --git a/plugins/sf2_player/fluidsynthshims.h b/plugins/sf2_player/fluidsynthshims.h
+new file mode 100644
+index 0000000000..4302256ba3
+--- /dev/null
++++ b/plugins/sf2_player/fluidsynthshims.h
+@@ -0,0 +1,88 @@
++/*
++ * fluidsynthshims.h - a shim header for FluidSynth 2.0 API changes
++ *
++ * Copyright (c) 2018 Hyunjin Song <tteu.ingog at gmail.com>
++ *
++ * This file is part of LMMS - https://lmms.io
++ *
++ * This program is free software; you can redistribute it and/or
++ * modify it under the terms of the GNU General Public
++ * License as published by the Free Software Foundation; either
++ * version 2 of the License, or (at your option) any later version.
++ *
++ * This program 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
++ * General Public License for more details.
++ *
++ * You should have received a copy of the GNU General Public
++ * License along with this program (see COPYING); if not, write to the
++ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
++ * Boston, MA 02110-1301 USA.
++ *
++ */
++
++
++#ifndef FLUIDSYNTHSHIMS_H
++#define FLUIDSYNTHSHIMS_H
++
++#include <fluidsynth.h>
++
++#if FLUIDSYNTH_VERSION_MAJOR < 2
++
++inline const char* fluid_preset_get_name(fluid_preset_t* preset)
++{
++ return preset->get_name(preset);
++}
++
++inline int fluid_preset_get_banknum(fluid_preset_t* preset)
++{
++ return preset->get_banknum(preset);
++}
++
++inline int fluid_preset_get_num(fluid_preset_t* preset)
++{
++ return preset->get_num(preset);
++}
++
++inline fluid_sfont_t* fluid_preset_get_sfont(fluid_preset_t* preset)
++{
++ return preset->sfont;
++}
++
++inline char* fluid_sfont_get_name(fluid_sfont_t* sfont)
++{
++ return sfont->get_name(sfont);
++}
++
++inline void fluid_sfont_iteration_start(fluid_sfont_t* sfont)
++{
++ sfont->iteration_start(sfont);
++}
++
++// Due to the API change, we can't simply shim the 'fluid_sfont_iteration_next' function
++inline fluid_preset_t* fluid_sfont_iteration_next_wrapper(fluid_sfont_t* sfont, fluid_preset_t* preset)
++{
++ return sfont->iteration_next(sfont, preset) ? preset : nullptr;
++}
++
++#else // FLUIDSYNTH_VERSION_MAJOR < 2
++
++#define FLUID_REVERB_DEFAULT_ROOMSIZE 0.2f
++#define FLUID_REVERB_DEFAULT_DAMP 0.0f
++#define FLUID_REVERB_DEFAULT_WIDTH 0.5f
++#define FLUID_REVERB_DEFAULT_LEVEL 0.9f
++
++#define FLUID_CHORUS_DEFAULT_N 3
++#define FLUID_CHORUS_DEFAULT_LEVEL 2.0f
++#define FLUID_CHORUS_DEFAULT_SPEED 0.3f
++#define FLUID_CHORUS_DEFAULT_DEPTH 8.0f
++
++inline fluid_preset_t* fluid_sfont_iteration_next_wrapper(fluid_sfont_t* sfont, fluid_preset_t*)
++{
++ return fluid_sfont_iteration_next(sfont);
++}
++
++#endif // FLUIDSYNTH_VERSION_MAJOR < 2
++
++#endif // FLUIDSYNTHSHIMS_H
+diff --git a/plugins/sf2_player/patches_dialog.cpp b/plugins/sf2_player/patches_dialog.cpp
+index 6ae791c155..189d996f30 100644
+--- a/plugins/sf2_player/patches_dialog.cpp
++++ b/plugins/sf2_player/patches_dialog.cpp
+@@ -143,7 +143,6 @@ void patchesDialog::setup ( fluid_synth_t * pSynth, int iChan,
+ m_iChan = iChan;
+
+
+- fluid_preset_t preset;
+ QTreeWidgetItem *pBankItem = NULL;
+ // For all soundfonts (in reversed stack order) fill the available banks...
+ int cSoundFonts = ::fluid_synth_sfcount(m_pSynth);
+@@ -151,11 +150,17 @@ void patchesDialog::setup ( fluid_synth_t * pSynth, int iChan,
+ fluid_sfont_t *pSoundFont = ::fluid_synth_get_sfont(m_pSynth, i);
+ if (pSoundFont) {
+ #ifdef CONFIG_FLUID_BANK_OFFSET
+- int iBankOffset = ::fluid_synth_get_bank_offset(m_pSynth, pSoundFont->id);
++ int iBankOffset = ::fluid_synth_get_bank_offset(m_pSynth, fluid_sfont_get_id(pSoundFont));
+ #endif
+- pSoundFont->iteration_start(pSoundFont);
+- while (pSoundFont->iteration_next(pSoundFont, &preset)) {
+- int iBank = preset.get_banknum(&preset);
++ fluid_sfont_iteration_start(pSoundFont);
++#if FLUIDSYNTH_VERSION_MAJOR < 2
++ fluid_preset_t preset;
++ fluid_preset_t *pCurPreset = &preset;
++#else
++ fluid_preset_t *pCurPreset;
++#endif
++ while ((pCurPreset = fluid_sfont_iteration_next_wrapper(pSoundFont, pCurPreset))) {
++ int iBank = fluid_preset_get_banknum(pCurPreset);
+ #ifdef CONFIG_FLUID_BANK_OFFSET
+ iBank += iBankOffset;
+ #endif
+@@ -173,9 +178,9 @@ void patchesDialog::setup ( fluid_synth_t * pSynth, int iChan,
+ m_iBank = 0;
+ fluid_preset_t *pPreset = ::fluid_synth_get_channel_preset(m_pSynth, m_iChan);
+ if (pPreset) {
+- m_iBank = pPreset->get_banknum(pPreset);
++ m_iBank = fluid_preset_get_banknum(pPreset);
+ #ifdef CONFIG_FLUID_BANK_OFFSET
+- m_iBank += ::fluid_synth_get_bank_offset(m_pSynth, (pPreset->sfont)->id);
++ m_iBank += ::fluid_synth_get_bank_offset(m_pSynth, fluid_sfont_get_id(fluid_preset_get_sfont(sfont)));
+ #endif
+ }
+
+@@ -186,7 +191,7 @@ void patchesDialog::setup ( fluid_synth_t * pSynth, int iChan,
+
+ // Set the selected program.
+ if (pPreset)
+- m_iProg = pPreset->get_num(pPreset);
++ m_iProg = fluid_preset_get_num(pPreset);
+ QTreeWidgetItem *pProgItem = findProgItem(m_iProg);
+ m_progListView->setCurrentItem(pProgItem);
+ m_progListView->scrollToItem(pProgItem);
+@@ -312,7 +317,6 @@ void patchesDialog::bankChanged (void)
+ // Clear up the program listview.
+ m_progListView->setSortingEnabled(false);
+ m_progListView->clear();
+- fluid_preset_t preset;
+ QTreeWidgetItem *pProgItem = NULL;
+ // For all soundfonts (in reversed stack order) fill the available programs...
+ int cSoundFonts = ::fluid_synth_sfcount(m_pSynth);
+@@ -320,23 +324,29 @@ void patchesDialog::bankChanged (void)
+ fluid_sfont_t *pSoundFont = ::fluid_synth_get_sfont(m_pSynth, i);
+ if (pSoundFont) {
+ #ifdef CONFIG_FLUID_BANK_OFFSET
+- int iBankOffset = ::fluid_synth_get_bank_offset(m_pSynth, pSoundFont->id);
++ int iBankOffset = ::fluid_synth_get_bank_offset(m_pSynth, fluid_sfont_get_id(pSoundFont));
++#endif
++ fluid_sfont_iteration_start(pSoundFont);
++#if FLUIDSYNTH_VERSION_MAJOR < 2
++ fluid_preset_t preset;
++ fluid_preset_t *pCurPreset = &preset;
++#else
++ fluid_preset_t *pCurPreset;
+ #endif
+- pSoundFont->iteration_start(pSoundFont);
+- while (pSoundFont->iteration_next(pSoundFont, &preset)) {
+- int iBank = preset.get_banknum(&preset);
++ while ((pCurPreset = fluid_sfont_iteration_next_wrapper(pSoundFont, pCurPreset))) {
++ int iBank = fluid_preset_get_banknum(pCurPreset);
+ #ifdef CONFIG_FLUID_BANK_OFFSET
+ iBank += iBankOffset;
+ #endif
+- int iProg = preset.get_num(&preset);
++ int iProg = fluid_preset_get_num(pCurPreset);
+ if (iBank == iBankSelected && !findProgItem(iProg)) {
+ pProgItem = new patchItem(m_progListView, pProgItem);
+ if (pProgItem) {
+ pProgItem->setText(0, QString::number(iProg));
+- pProgItem->setText(1, preset.get_name(&preset));
+- //pProgItem->setText(2, QString::number(pSoundFont->id));
++ pProgItem->setText(1, fluid_preset_get_name(pCurPreset));
++ //pProgItem->setText(2, QString::number(fluid_sfont_get_id(pSoundFont)));
+ //pProgItem->setText(3, QFileInfo(
+- // pSoundFont->get_name(pSoundFont)).baseName());
++ // fluid_sfont_get_name(pSoundFont).baseName());
+ }
+ }
+ }
+diff --git a/plugins/sf2_player/patches_dialog.h b/plugins/sf2_player/patches_dialog.h
+index f4523ff904..a2c88a79d1 100644
+--- a/plugins/sf2_player/patches_dialog.h
++++ b/plugins/sf2_player/patches_dialog.h
+@@ -29,7 +29,7 @@
+ #include "ui_patches_dialog.h"
+ #include "LcdSpinBox.h"
+
+-#include <fluidsynth.h>
++#include "fluidsynthshims.h"
+ #include <QWidget>
+ #include <QLabel>
+
+diff --git a/plugins/sf2_player/sf2_player.cpp b/plugins/sf2_player/sf2_player.cpp
+index 742f5fb8e1..f7a09f01e7 100644
+--- a/plugins/sf2_player/sf2_player.cpp
++++ b/plugins/sf2_player/sf2_player.cpp
+@@ -127,6 +127,29 @@ sf2Instrument::sf2Instrument( InstrumentTrack * _instrument_track ) :
+ // everytime we load a new soundfont.
+ m_synth = new_fluid_synth( m_settings );
+
++#if FLUIDSYNTH_VERSION_MAJOR >= 2
++ // Get the default values from the setting
++ double settingVal;
++
++ fluid_settings_getnum_default(m_settings, "synth.reverb.room-size", &settingVal);
++ m_reverbRoomSize.setInitValue(settingVal);
++ fluid_settings_getnum_default(m_settings, "synth.reverb.damping", &settingVal);
++ m_reverbDamping.setInitValue(settingVal);
++ fluid_settings_getnum_default(m_settings, "synth.reverb.width", &settingVal);
++ m_reverbWidth.setInitValue(settingVal);
++ fluid_settings_getnum_default(m_settings, "synth.reverb.level", &settingVal);
++ m_reverbLevel.setInitValue(settingVal);
++
++ fluid_settings_getnum_default(m_settings, "synth.chorus.nr", &settingVal);
++ m_chorusNum.setInitValue(settingVal);
++ fluid_settings_getnum_default(m_settings, "synth.chorus.level", &settingVal);
++ m_chorusLevel.setInitValue(settingVal);
++ fluid_settings_getnum_default(m_settings, "synth.chorus.speed", &settingVal);
++ m_chorusSpeed.setInitValue(settingVal);
++ fluid_settings_getnum_default(m_settings, "synth.chorus.depth", &settingVal);
++ m_chorusDepth.setInitValue(settingVal);
++#endif
++
+ loadFile( ConfigManager::inst()->defaultSoundfont() );
+
+ updateSampleRate();
+@@ -392,7 +415,6 @@ QString sf2Instrument::getCurrentPatchName()
+ int iBankSelected = m_bankNum.value();
+ int iProgSelected = m_patchNum.value();
+
+- fluid_preset_t preset;
+ // For all soundfonts (in reversed stack order) fill the available programs...
+ int cSoundFonts = ::fluid_synth_sfcount( m_synth );
+ for( int i = 0; i < cSoundFonts; i++ )
+@@ -403,21 +425,26 @@ QString sf2Instrument::getCurrentPatchName()
+ #ifdef CONFIG_FLUID_BANK_OFFSET
+ int iBankOffset =
+ fluid_synth_get_bank_offset(
+- m_synth, pSoundFont->id );
++ m_synth, fluid_sfont_get_id(pSoundFont) );
++#endif
++ fluid_sfont_iteration_start( pSoundFont );
++#if FLUIDSYNTH_VERSION_MAJOR < 2
++ fluid_preset_t preset;
++ fluid_preset_t *pCurPreset = &preset;
++#else
++ fluid_preset_t *pCurPreset;
+ #endif
+- pSoundFont->iteration_start( pSoundFont );
+- while( pSoundFont->iteration_next( pSoundFont,
+- &preset ) )
++ while ((pCurPreset = fluid_sfont_iteration_next_wrapper(pSoundFont, pCurPreset)))
+ {
+- int iBank = preset.get_banknum( &preset );
++ int iBank = fluid_preset_get_banknum( pCurPreset );
+ #ifdef CONFIG_FLUID_BANK_OFFSET
+ iBank += iBankOffset;
+ #endif
+- int iProg = preset.get_num( &preset );
++ int iProg = fluid_preset_get_num( pCurPreset );
+ if( iBank == iBankSelected && iProg ==
+ iProgSelected )
+ {
+- return preset.get_name( &preset );
++ return fluid_preset_get_name( pCurPreset );
+ }
+ }
+ }
+diff --git a/plugins/sf2_player/sf2_player.h b/plugins/sf2_player/sf2_player.h
+index 0d29c27e1f..eed7e24ab3 100644
+--- a/plugins/sf2_player/sf2_player.h
++++ b/plugins/sf2_player/sf2_player.h
+@@ -36,7 +36,7 @@
+ #include "Knob.h"
+ #include "LcdSpinBox.h"
+ #include "LedCheckbox.h"
+-#include "fluidsynth.h"
++#include "fluidsynthshims.h"
+ #include "MemoryManager.h"
+
+ class sf2InstrumentView;
diff --git a/logical-not-parentheses.patch b/logical-not-parentheses.patch
deleted file mode 100644
index 9fdf509..0000000
--- a/logical-not-parentheses.patch
+++ /dev/null
@@ -1,13 +0,0 @@
-diff -dur lmms-1.1.3.orig/src/core/AutomatableModel.cpp lmms-1.1.3.fixed/src/core/AutomatableModel.cpp
---- lmms-1.1.3.orig/src/core/AutomatableModel.cpp 2015-03-08 03:47:14.000000000 +0100
-+++ lmms-1.1.3.fixed/src/core/AutomatableModel.cpp 2015-12-12 18:27:26.937607923 +0100
-@@ -312,7 +312,7 @@
- it != m_linkedModels.end(); ++it )
- {
- if( (*it)->m_setValueDepth < 1 &&
-- !(*it)->fittedValue( m_value ) !=
-+ (!(*it)->fittedValue( m_value )) !=
- (*it)->m_value )
- {
- (*it)->setAutomatedValue( value );
-Only in lmms-1.1.3.fixed/src/core: AutomatableModel.cpp~
diff --git a/static_inline.patch b/static_inline.patch
deleted file mode 100644
index 931bba2..0000000
--- a/static_inline.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-diff -dur lmms-1.1.3.orig/plugins/LadspaEffect/swh/hermes_filter_1200.c lmms-1.1.3/plugins/LadspaEffect/swh/hermes_filter_1200.c
---- lmms-1.1.3.orig/plugins/LadspaEffect/swh/hermes_filter_1200.c 2015-03-08 03:47:14.000000000 +0100
-+++ lmms-1.1.3/plugins/LadspaEffect/swh/hermes_filter_1200.c 2015-12-12 18:42:29.272811379 +0100
-@@ -117,7 +117,7 @@
-
- /* Run one sample through the SV filter. Filter is by andy at vellocet */
-
--inline float run_svf(sv_filter *sv, float in) {
-+static inline float run_svf(sv_filter *sv, float in) {
- float out;
- int i;
-
-@@ -144,7 +144,7 @@
- return out;
- }
-
--inline int wave_tbl(const float wave) {
-+static inline int wave_tbl(const float wave) {
- switch (f_round(wave)) {
- case 0:
- return BLO_SINE;
-diff -dur lmms-1.1.3.orig/plugins/LadspaEffect/swh/imp_1199.c lmms-1.1.3/plugins/LadspaEffect/swh/imp_1199.c
---- lmms-1.1.3.orig/plugins/LadspaEffect/swh/imp_1199.c 2015-03-08 03:47:14.000000000 +0100
-+++ lmms-1.1.3/plugins/LadspaEffect/swh/imp_1199.c 2015-12-12 18:42:29.272811379 +0100
-@@ -77,7 +77,7 @@
- #ifdef __clang__
- void impulse2freq(int id, float *imp, unsigned int length, fftw_real *out)
- #else
--inline void impulse2freq(int id, float *imp, unsigned int length, fftw_real *out)
-+void impulse2freq(int id, float *imp, unsigned int length, fftw_real *out)
- #endif
- {
- fftw_real impulse_time[MAX_FFT_LENGTH];
-diff -dur lmms-1.1.3.orig/plugins/LadspaEffect/swh/retro_flange_1208.c lmms-1.1.3/plugins/LadspaEffect/swh/retro_flange_1208.c
---- lmms-1.1.3.orig/plugins/LadspaEffect/swh/retro_flange_1208.c 2015-03-08 03:47:14.000000000 +0100
-+++ lmms-1.1.3/plugins/LadspaEffect/swh/retro_flange_1208.c 2015-12-12 18:42:29.276144738 +0100
-@@ -31,7 +31,7 @@
-
- #define BASE_BUFFER 0.001 // Base buffer length (s)
-
--inline LADSPA_Data sat(LADSPA_Data x, float q, float dist) {
-+static inline LADSPA_Data sat(LADSPA_Data x, float q, float dist) {
- if (x == q) {
- return 1.0f / dist + q / (1.0f - f_exp(dist * q));
- }
================================================================
---- gitweb:
http://git.pld-linux.org/gitweb.cgi/packages/lmms.git/commitdiff/a5b88596852e8161919ae30cfd972ceb308f540c
More information about the pld-cvs-commit
mailing list