You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
94 lines
2.5 KiB
94 lines
2.5 KiB
https://github.com/brailcom/speechd/commit/db21e5fe4b3155734f60a67c8ab5da6b53174e1b
|
|
https://github.com/brailcom/speechd/pull/783
|
|
https://bugs.gentoo.org/877339
|
|
|
|
From db21e5fe4b3155734f60a67c8ab5da6b53174e1b Mon Sep 17 00:00:00 2001
|
|
From: Bernard Cafarelli <bernard.cafarelli@gmail.com>
|
|
Date: Mon, 17 Oct 2022 15:28:37 +0200
|
|
Subject: [PATCH] Fix audio plugin loading with dlopen
|
|
|
|
dlopen needs the full name including .so extension
|
|
Set SPD_AUDIO_PLUGIN_ENTRY to correct name (ltdl adds a prefix)
|
|
--- a/src/audio/alsa.c
|
|
+++ b/src/audio/alsa.c
|
|
@@ -37,7 +37,11 @@
|
|
#include <alsa/asoundlib.h>
|
|
#include <alsa/pcm.h>
|
|
|
|
+#ifdef USE_DLOPEN
|
|
+#define SPD_AUDIO_PLUGIN_ENTRY spd_audio_plugin_get
|
|
+#else
|
|
#define SPD_AUDIO_PLUGIN_ENTRY spd_alsa_LTX_spd_audio_plugin_get
|
|
+#endif
|
|
#include <spd_audio_plugin.h>
|
|
|
|
typedef struct {
|
|
--- a/src/audio/libao.c
|
|
+++ b/src/audio/libao.c
|
|
@@ -32,7 +32,11 @@
|
|
#include <glib.h>
|
|
#include <ao/ao.h>
|
|
|
|
+#ifdef USE_DLOPEN
|
|
+#define SPD_AUDIO_PLUGIN_ENTRY spd_audio_plugin_get
|
|
+#else
|
|
#define SPD_AUDIO_PLUGIN_ENTRY spd_libao_LTX_spd_audio_plugin_get
|
|
+#endif
|
|
#include <spd_audio_plugin.h>
|
|
|
|
/* send a packet of XXX bytes to the sound device */
|
|
--- a/src/audio/nas.c
|
|
+++ b/src/audio/nas.c
|
|
@@ -32,7 +32,11 @@
|
|
|
|
#include <pthread.h>
|
|
|
|
+#ifdef USE_DLOPEN
|
|
+#define SPD_AUDIO_PLUGIN_ENTRY spd_audio_plugin_get
|
|
+#else
|
|
#define SPD_AUDIO_PLUGIN_ENTRY spd_nas_LTX_spd_audio_plugin_get
|
|
+#endif
|
|
#include <spd_audio_plugin.h>
|
|
|
|
typedef struct {
|
|
--- a/src/audio/oss.c
|
|
+++ b/src/audio/oss.c
|
|
@@ -39,7 +39,11 @@
|
|
|
|
#include <sys/soundcard.h>
|
|
|
|
+#ifdef USE_DLOPEN
|
|
+#define SPD_AUDIO_PLUGIN_ENTRY spd_audio_plugin_get
|
|
+#else
|
|
#define SPD_AUDIO_PLUGIN_ENTRY spd_oss_LTX_spd_audio_plugin_get
|
|
+#endif
|
|
#include <spd_audio_plugin.h>
|
|
|
|
typedef struct {
|
|
--- a/src/audio/pulse.c
|
|
+++ b/src/audio/pulse.c
|
|
@@ -51,7 +51,11 @@
|
|
#include <pulse/simple.h>
|
|
#include <pulse/error.h>
|
|
|
|
+#ifdef USE_DLOPEN
|
|
+#define SPD_AUDIO_PLUGIN_ENTRY spd_audio_plugin_get
|
|
+#else
|
|
#define SPD_AUDIO_PLUGIN_ENTRY spd_pulse_LTX_spd_audio_plugin_get
|
|
+#endif
|
|
#include <spd_audio_plugin.h>
|
|
|
|
typedef struct {
|
|
--- a/src/common/spd_audio.c
|
|
+++ b/src/common/spd_audio.c
|
|
@@ -120,7 +120,7 @@ AudioID *spd_audio_open(const char *name, void **pars, char **error)
|
|
plugin_dir = PLUGIN_DIR;
|
|
|
|
#ifdef USE_DLOPEN
|
|
- libname = g_strdup_printf("%s/" SPD_AUDIO_LIB_PREFIX "%s", plugin_dir, name);
|
|
+ libname = g_strdup_printf("%s/" SPD_AUDIO_LIB_PREFIX "%s.so", plugin_dir, name);
|
|
dlhandle = dlopen(libname, RTLD_NOW | RTLD_GLOBAL);
|
|
|
|
g_free(libname);
|
|
|