Dominique Leuenberger 2021-04-16 22:02:19 +00:00 committed by Git OBS Bridge
commit 3a35503581
8 changed files with 336 additions and 1 deletions

View File

@ -0,0 +1,57 @@
From 08b54f489b663793168764986c1d1a834c33add3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Torbj=C3=B6rn=20Andersson?=
<eriktorbjorn@users.sourceforge.net>
Date: Wed, 13 Jan 2021 09:44:44 +0100
Subject: [PATCH] FLUIDSYNTH: Make FluidSynth logging less noisy by default
---
audio/softsynth/fluidsynth.cpp | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)
diff --git a/audio/softsynth/fluidsynth.cpp b/audio/softsynth/fluidsynth.cpp
index e0d7c4e3df33..fe2b0689c283 100644
--- a/audio/softsynth/fluidsynth.cpp
+++ b/audio/softsynth/fluidsynth.cpp
@@ -46,6 +46,29 @@
#include "backends/platform/ios7/ios7_common.h"
#endif
+static void logHandler(int level, const char *message, void *data) {
+ switch (level) {
+ case FLUID_PANIC:
+ error("FluidSynth: %s", message);
+ break;
+ case FLUID_ERR:
+ warning("FluidSynth: %s", message);
+ break;
+ case FLUID_WARN:
+ debug(2, "FluidSynth: %s", message);
+ break;
+ case FLUID_INFO:
+ debug(1, "FluidSynth: %s", message);
+ break;
+ case FLUID_DBG:
+ debug(3, "FluidSynth: %s", message);
+ break;
+ default:
+ fluid_default_log_function(level, message, data);
+ break;
+ }
+}
+
class MidiDriver_FluidSynth : public MidiDriver_Emulated {
private:
MidiChannel_MPU401 _midiChannels[16];
@@ -166,6 +189,12 @@ int MidiDriver_FluidSynth::open() {
if (_isOpen)
return MERR_ALREADY_OPEN;
+ fluid_set_log_function(FLUID_PANIC, logHandler, NULL);
+ fluid_set_log_function(FLUID_ERR, logHandler, NULL);
+ fluid_set_log_function(FLUID_WARN, logHandler, NULL);
+ fluid_set_log_function(FLUID_INFO, logHandler, NULL);
+ fluid_set_log_function(FLUID_DBG, logHandler, NULL);
+
#if defined(FLUIDSYNTH_VERSION_MAJOR) && FLUIDSYNTH_VERSION_MAJOR > 1
// When provided with in-memory SoundFont data, only use the configured
// SoundFont instead if it's explicitly configured on the current game.

View File

@ -0,0 +1,32 @@
From 21d65cedf231cb03cd2e63863bd6d9d6bc70ed1d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Torbj=C3=B6rn=20Andersson?=
<eriktorbjorn@users.sourceforge.net>
Date: Mon, 8 Mar 2021 20:19:22 +0100
Subject: [PATCH] FLUIDSYNTH: Swapped debug levels for FLUID_WARN and
FLUID_INFO
If FLUID_INFO is "verbose informational messages", perhaps they should
be better hidden from the average user than warnings. Particularly since
warnings are the only kind I've actually seen in the wild. (Change
suggested by criezy.)
---
audio/softsynth/fluidsynth.cpp | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/audio/softsynth/fluidsynth.cpp b/audio/softsynth/fluidsynth.cpp
index fe2b0689c283..e41a7515b205 100644
--- a/audio/softsynth/fluidsynth.cpp
+++ b/audio/softsynth/fluidsynth.cpp
@@ -55,10 +55,10 @@ static void logHandler(int level, const char *message, void *data) {
warning("FluidSynth: %s", message);
break;
case FLUID_WARN:
- debug(2, "FluidSynth: %s", message);
+ debug(1, "FluidSynth: %s", message);
break;
case FLUID_INFO:
- debug(1, "FluidSynth: %s", message);
+ debug(2, "FluidSynth: %s", message);
break;
case FLUID_DBG:
debug(3, "FluidSynth: %s", message);

View File

@ -0,0 +1,22 @@
From a3bc5d64b8c4041326c8a214c47f9a206fb8b693 Mon Sep 17 00:00:00 2001
From: sluicebox <22204938+sluicebox@users.noreply.github.com>
Date: Mon, 8 Mar 2021 21:00:59 -0800
Subject: [PATCH] FLUIDSYNTH: Fix build
---
audio/softsynth/fluidsynth.cpp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/audio/softsynth/fluidsynth.cpp b/audio/softsynth/fluidsynth.cpp
index e41a7515b205..215547c6bad4 100644
--- a/audio/softsynth/fluidsynth.cpp
+++ b/audio/softsynth/fluidsynth.cpp
@@ -46,7 +46,7 @@
#include "backends/platform/ios7/ios7_common.h"
#endif
-static void logHandler(int level, const char *message, void *data) {
+static void logHandler(int level, char *message, void *data) {
switch (level) {
case FLUID_PANIC:
error("FluidSynth: %s", message);

View File

@ -0,0 +1,27 @@
From 6ef406ac20a68f53e66bb98a0c9842dc9553da07 Mon Sep 17 00:00:00 2001
From: Thierry Crozat <criezy@scummvm.org>
Date: Tue, 9 Mar 2021 11:32:57 +0000
Subject: [PATCH] AUDIO: Fix compilation with Fluidsynth2
---
audio/softsynth/fluidsynth.cpp | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/audio/softsynth/fluidsynth.cpp b/audio/softsynth/fluidsynth.cpp
index 215547c6bad4..3b9f55346437 100644
--- a/audio/softsynth/fluidsynth.cpp
+++ b/audio/softsynth/fluidsynth.cpp
@@ -46,7 +46,12 @@
#include "backends/platform/ios7/ios7_common.h"
#endif
-static void logHandler(int level, char *message, void *data) {
+#if defined(FLUIDSYNTH_VERSION_MAJOR) && FLUIDSYNTH_VERSION_MAJOR > 1
+static void logHandler(int level, const char *message, void *data)
+#else
+static void logHandler(int level, char *message, void *data)
+#endif
+{
switch (level) {
case FLUID_PANIC:
error("FluidSynth: %s", message);

View File

@ -0,0 +1,66 @@
From 631b13b5f4990b667e19d9fbdc467f0c873b6c15 Mon Sep 17 00:00:00 2001
From: Le Philousophe <lephilousophe@users.noreply.github.com>
Date: Mon, 5 Apr 2021 12:22:51 +0200
Subject: [PATCH] FLUIDSYNTH: Simplify FluidSynth version check
---
audio/softsynth/fluidsynth.cpp | 18 +++++++++++++-----
1 file changed, 13 insertions(+), 5 deletions(-)
diff --git a/audio/softsynth/fluidsynth.cpp b/audio/softsynth/fluidsynth.cpp
index 3b9f55346437..e770fb68543b 100644
--- a/audio/softsynth/fluidsynth.cpp
+++ b/audio/softsynth/fluidsynth.cpp
@@ -46,7 +46,15 @@
#include "backends/platform/ios7/ios7_common.h"
#endif
-#if defined(FLUIDSYNTH_VERSION_MAJOR) && FLUIDSYNTH_VERSION_MAJOR > 1
+// We assume here Fluidsynth minor will never be above 255 and
+// that micro versions won't break API compatibility
+#if defined(FLUIDSYNTH_VERSION_MAJOR) && defined(FLUIDSYNTH_VERSION_MINOR)
+#define FS_API_VERSION ((FLUIDSYNTH_VERSION_MAJOR << 8) | FLUIDSYNTH_VERSION_MINOR)
+#else
+#define FS_API_VERSION 0
+#endif
+
+#if FS_API_VERSION >= 0x0200
static void logHandler(int level, const char *message, void *data)
#else
static void logHandler(int level, char *message, void *data)
@@ -103,7 +111,7 @@ class MidiDriver_FluidSynth : public MidiDriver_Emulated {
void setEngineSoundFont(Common::SeekableReadStream *soundFontData) override;
bool acceptsSoundFontData() override {
-#if defined(FLUIDSYNTH_VERSION_MAJOR) && FLUIDSYNTH_VERSION_MAJOR > 1
+#if FS_API_VERSION >= 0x0200
return true;
#else
return false;
@@ -162,7 +170,7 @@ void MidiDriver_FluidSynth::setStr(const char *name, const char *val) {
// Soundfont memory loader callback functions.
-#if defined(FLUIDSYNTH_VERSION_MAJOR) && FLUIDSYNTH_VERSION_MAJOR > 1
+#if FS_API_VERSION >= 0x0200
static void *SoundFontMemLoader_open(const char *filename) {
void *p;
if (filename[0] != '&') {
@@ -200,7 +208,7 @@ int MidiDriver_FluidSynth::open() {
fluid_set_log_function(FLUID_INFO, logHandler, NULL);
fluid_set_log_function(FLUID_DBG, logHandler, NULL);
-#if defined(FLUIDSYNTH_VERSION_MAJOR) && FLUIDSYNTH_VERSION_MAJOR > 1
+#if FS_API_VERSION >= 0x0200
// When provided with in-memory SoundFont data, only use the configured
// SoundFont instead if it's explicitly configured on the current game.
bool isUsingInMemorySoundFontData = _engineSoundFontData && !ConfMan.getActiveDomain()->contains("soundfont");
@@ -280,7 +288,7 @@ int MidiDriver_FluidSynth::open() {
const char *soundfont = !isUsingInMemorySoundFontData ?
ConfMan.get("soundfont").c_str() : Common::String::format("&%p", (void *)_engineSoundFontData).c_str();
-#if defined(FLUIDSYNTH_VERSION_MAJOR) && FLUIDSYNTH_VERSION_MAJOR > 1
+#if FS_API_VERSION >= 0x0200
if (isUsingInMemorySoundFontData) {
fluid_sfloader_t *soundFontMemoryLoader = new_fluid_defsfloader(_settings);
fluid_sfloader_set_callbacks(soundFontMemoryLoader,

View File

@ -0,0 +1,108 @@
From d0d38b0199dae9a1dbfecc53db54dd0a070694b4 Mon Sep 17 00:00:00 2001
From: Le Philousophe <lephilousophe@users.noreply.github.com>
Date: Mon, 5 Apr 2021 12:23:26 +0200
Subject: [PATCH] FLUIDSYNTH: Fix compilation with Fluidsynth 2.2
We replace deprecated functions as well
---
audio/softsynth/fluidsynth.cpp | 43 ++++++++++++++++++++++++++++++++++
1 file changed, 43 insertions(+)
diff --git a/audio/softsynth/fluidsynth.cpp b/audio/softsynth/fluidsynth.cpp
index e770fb68543b..f01dd8c7362b 100644
--- a/audio/softsynth/fluidsynth.cpp
+++ b/audio/softsynth/fluidsynth.cpp
@@ -180,11 +180,19 @@ static void *SoundFontMemLoader_open(const char *filename) {
return p;
}
+#if FS_API_VERSION >= 0x0202
+static int SoundFontMemLoader_read(void *buf, fluid_long_long_t count, void *handle) {
+#else
static int SoundFontMemLoader_read(void *buf, int count, void *handle) {
+#endif
return ((Common::SeekableReadStream *) handle)->read(buf, count) == (uint32)count ? FLUID_OK : FLUID_FAILED;
}
+#if FS_API_VERSION >= 0x0202
+static int SoundFontMemLoader_seek(void *handle, fluid_long_long_t offset, int origin) {
+#else
static int SoundFontMemLoader_seek(void *handle, long offset, int origin) {
+#endif
return ((Common::SeekableReadStream *) handle)->seek(offset, origin) ? FLUID_OK : FLUID_FAILED;
}
@@ -193,7 +201,11 @@ static int SoundFontMemLoader_close(void *handle) {
return FLUID_OK;
}
+#if FS_API_VERSION >= 0x0202
+static fluid_long_long_t SoundFontMemLoader_tell(void *handle) {
+#else
static long SoundFontMemLoader_tell(void *handle) {
+#endif
return ((Common::SeekableReadStream *) handle)->pos();
}
#endif
@@ -237,7 +249,11 @@ int MidiDriver_FluidSynth::open() {
_synth = new_fluid_synth(_settings);
if (ConfMan.getBool("fluidsynth_chorus_activate")) {
+#if FS_API_VERSION >= 0x0202
+ fluid_synth_chorus_on(_synth, -1, 1);
+#else
fluid_synth_set_chorus_on(_synth, 1);
+#endif
int chorusNr = ConfMan.getInt("fluidsynth_chorus_nr");
double chorusLevel = (double)ConfMan.getInt("fluidsynth_chorus_level") / 100.0;
@@ -252,22 +268,49 @@ int MidiDriver_FluidSynth::open() {
chorusType = FLUID_CHORUS_MOD_TRIANGLE;
}
+#if FS_API_VERSION >= 0x0202
+ fluid_synth_set_chorus_group_nr(_synth, -1, chorusNr);
+ fluid_synth_set_chorus_group_level(_synth, -1, chorusLevel);
+ fluid_synth_set_chorus_group_speed(_synth, -1, chorusSpeed);
+ fluid_synth_set_chorus_group_depth(_synth, -1, chorusDepthMs);
+ fluid_synth_set_chorus_group_type(_synth, -1, chorusType);
+#else
fluid_synth_set_chorus(_synth, chorusNr, chorusLevel, chorusSpeed, chorusDepthMs, chorusType);
+#endif
} else {
+#if FS_API_VERSION >= 0x0202
+ fluid_synth_chorus_on(_synth, -1, 0);
+#else
fluid_synth_set_chorus_on(_synth, 0);
+#endif
}
if (ConfMan.getBool("fluidsynth_reverb_activate")) {
+#if FS_API_VERSION >= 0x0202
+ fluid_synth_reverb_on(_synth, -1, 1);
+#else
fluid_synth_set_reverb_on(_synth, 1);
+#endif
double reverbRoomSize = (double)ConfMan.getInt("fluidsynth_reverb_roomsize") / 100.0;
double reverbDamping = (double)ConfMan.getInt("fluidsynth_reverb_damping") / 100.0;
int reverbWidth = ConfMan.getInt("fluidsynth_reverb_width");
double reverbLevel = (double)ConfMan.getInt("fluidsynth_reverb_level") / 100.0;
+#if FS_API_VERSION >= 0x0202
+ fluid_synth_set_reverb_group_roomsize(_synth, -1, reverbRoomSize);
+ fluid_synth_set_reverb_group_damp(_synth, -1, reverbDamping);
+ fluid_synth_set_reverb_group_width(_synth, -1, reverbWidth);
+ fluid_synth_set_reverb_group_level(_synth, -1, reverbLevel);
+#else
fluid_synth_set_reverb(_synth, reverbRoomSize, reverbDamping, reverbWidth, reverbLevel);
+#endif
} else {
+#if FS_API_VERSION >= 0x0202
+ fluid_synth_reverb_on(_synth, -1, 0);
+#else
fluid_synth_set_reverb_on(_synth, 0);
+#endif
}
Common::String interpolation = ConfMan.get("fluidsynth_misc_interpolation");

View File

@ -1,3 +1,14 @@
-------------------------------------------------------------------
Fri Apr 16 14:49:13 UTC 2021 - Antonio Larrosa <alarrosa@suse.com>
- Add patches from upstream to fix build with fluidsynth 2.2
* 0001-FLUIDSYNTH-Make-FluidSynth-logging-less-noisy-by-default.patch
* 0002-FLUIDSYNTH-Swapped-debug-levels-for-FLUID_WARN-and-FLUID_INFO.patch
* 0003-FLUIDSYNTH-Fix-build.patch
* 0004-AUDIO-Fix-compilation-with-Fluidsynth2.patch
* 0005-FLUIDSYNTH-Simplify-FluidSynth-version-check.patch
* 0006-FLUIDSYNTH-Fix-compilation-with-Fluidsynth-2.2.patch
------------------------------------------------------------------- -------------------------------------------------------------------
Thu Nov 5 14:10:14 UTC 2020 - Matthias Mailänder <mailaender@opensuse.org> Thu Nov 5 14:10:14 UTC 2020 - Matthias Mailänder <mailaender@opensuse.org>

View File

@ -1,7 +1,7 @@
# #
# spec file for package scummvm # spec file for package scummvm
# #
# Copyright (c) 2020 SUSE LLC # Copyright (c) 2021 SUSE LLC
# #
# All modifications and additions to the file contributed by third parties # All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed # remain the property of their copyright owners, unless otherwise agreed
@ -27,6 +27,12 @@ License: GPL-2.0-or-later
Group: Amusements/Games/Other Group: Amusements/Games/Other
URL: https://www.scummvm.org/ URL: https://www.scummvm.org/
Source: https://www.scummvm.org/frs/scummvm/%{version}/scummvm-%{version}.tar.xz Source: https://www.scummvm.org/frs/scummvm/%{version}/scummvm-%{version}.tar.xz
Patch0: 0001-FLUIDSYNTH-Make-FluidSynth-logging-less-noisy-by-default.patch
Patch1: 0002-FLUIDSYNTH-Swapped-debug-levels-for-FLUID_WARN-and-FLUID_INFO.patch
Patch2: 0003-FLUIDSYNTH-Fix-build.patch
Patch3: 0004-AUDIO-Fix-compilation-with-Fluidsynth2.patch
Patch4: 0005-FLUIDSYNTH-Simplify-FluidSynth-version-check.patch
Patch5: 0006-FLUIDSYNTH-Fix-compilation-with-Fluidsynth-2.2.patch
BuildRequires: desktop-file-utils BuildRequires: desktop-file-utils
BuildRequires: discord-rpc-devel BuildRequires: discord-rpc-devel
BuildRequires: gcc-c++ BuildRequires: gcc-c++
@ -80,6 +86,12 @@ These engines are in a worse state, but allow to play extra games.
%prep %prep
%setup -q %setup -q
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
# build the endianness test without optimization otherwise gcc is too smart # build the endianness test without optimization otherwise gcc is too smart
# and optimize everything away, making the test fail # and optimize everything away, making the test fail