diff --git a/bin/dbus/dbusconfigurationmanager.cpp b/bin/dbus/dbusconfigurationmanager.cpp index e2620acc4c5d4d3e6478bf62365aab54d0849902..a8c511c1841e01fd9cf3b155debec3505321da23 100644 --- a/bin/dbus/dbusconfigurationmanager.cpp +++ b/bin/dbus/dbusconfigurationmanager.cpp @@ -18,16 +18,10 @@ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ -#ifdef HAVE_CONFIG_H -#include "config.h" -#endif - #include "dbusconfigurationmanager.h" #include "configurationmanager_interface.h" #include "datatransfer_interface.h" -#include "media/audio/audiolayer.h" - DBusConfigurationManager::DBusConfigurationManager(DBus::Connection& connection) : DBus::ObjectAdaptor(connection, "/cx/ring/Ring/ConfigurationManager") {} @@ -403,20 +397,10 @@ DBusConfigurationManager::setAudioManager(const std::string& api) -> decltype(DR return DRing::setAudioManager(api); } -std::vector<std::string> -DBusConfigurationManager::getSupportedAudioManagers() -{ - return { -#if HAVE_ALSA - ALSA_API_STR, -#endif -#if HAVE_PULSE - PULSEAUDIO_API_STR, -#endif -#if HAVE_JACK - JACK_API_STR, -#endif - }; +auto +DBusConfigurationManager::getSupportedAudioManagers() -> decltype(DRing::getSupportedAudioManagers()) +{ + return DRing::getSupportedAudioManagers(); } auto diff --git a/src/client/configurationmanager.cpp b/src/client/configurationmanager.cpp index 0aeb3479cff0f06e471b87cada05296f44e9737e..7216dde8b2779150fb1bcecf47e4bcc2937d2be6 100644 --- a/src/client/configurationmanager.cpp +++ b/src/client/configurationmanager.cpp @@ -780,6 +780,12 @@ setRingingTimeout(int32_t timeout) jami::Manager::instance().setRingingTimeout(timeout); } +std::vector<std::string> +getSupportedAudioManagers() +{ + return jami::AudioPreference::getSupportedAudioManagers(); +} + bool setAudioManager(const std::string& api) { diff --git a/src/dring/configurationmanager_interface.h b/src/dring/configurationmanager_interface.h index 6674b77902bd1ca90ef91440be4a80cb412c97b8..1a2000b9ef231ac4ab08130199380058817a720a 100644 --- a/src/dring/configurationmanager_interface.h +++ b/src/dring/configurationmanager_interface.h @@ -123,6 +123,7 @@ DRING_PUBLIC void mutePlayback(bool mute); DRING_PUBLIC bool isRingtoneMuted(); DRING_PUBLIC void muteRingtone(bool mute); +DRING_PUBLIC std::vector<std::string> getSupportedAudioManagers(); DRING_PUBLIC std::string getAudioManager(); DRING_PUBLIC bool setAudioManager(const std::string& api); diff --git a/src/media/audio/audiolayer.h b/src/media/audio/audiolayer.h index 00b8525a0317f2dc5211a78bcb68f5a57c60155b..da04018eb0583a2c9b3375cb39b6d4bfaab26230 100644 --- a/src/media/audio/audiolayer.h +++ b/src/media/audio/audiolayer.h @@ -44,6 +44,7 @@ typedef struct SpeexEchoState_ SpeexEchoState; */ // Define the audio api +#define OPENSL_API_STR "opensl" #define PULSEAUDIO_API_STR "pulseaudio" #define ALSA_API_STR "alsa" #define JACK_API_STR "jack" diff --git a/src/preferences.cpp b/src/preferences.cpp index c7782099515dc786bbadcddef0e315f52171b5f0..2d53b68dd5837780518dfdb76d36801324570546 100644 --- a/src/preferences.cpp +++ b/src/preferences.cpp @@ -438,6 +438,31 @@ AudioPreference::createAudioLayer() return nullptr; } +std::vector<std::string> +AudioPreference::getSupportedAudioManagers() +{ + return { +#if HAVE_OPENSL + OPENSL_API_STR, +#endif +#if HAVE_ALSA + ALSA_API_STR, +#endif +#if HAVE_PULSE + PULSEAUDIO_API_STR, +#endif +#if HAVE_JACK + JACK_API_STR, +#endif +#if HAVE_COREAUDIO + COREAUDIO_API_STR, +#endif +#if HAVE_PORTAUDIO + PORTAUDIO_API_STR, +#endif + }; +} + void AudioPreference::serialize(YAML::Emitter &out) const { out << YAML::Key << CONFIG_LABEL << YAML::Value << YAML::BeginMap; diff --git a/src/preferences.h b/src/preferences.h index a1dffdfcc737f470039e8f29d1f31b3aa04835ad..f954d5f60a7e67ad034c0ea837f3e1078b398921 100644 --- a/src/preferences.h +++ b/src/preferences.h @@ -238,6 +238,8 @@ class AudioPreference : public Serializable { AudioLayer *createAudioLayer(); AudioLayer *switchAndCreateAudioLayer(); + static std::vector<std::string> getSupportedAudioManagers(); + std::string getAudioApi() const { return audioApi_; }