[client] audio: allow building without any audio support

This commit is contained in:
Geoffrey McRae 2022-01-27 17:57:30 +11:00
parent a7db3d3a0f
commit a560a610d9
4 changed files with 26 additions and 4 deletions

View File

@ -26,7 +26,6 @@ include(UninstallTarget)
find_package(PkgConfig) find_package(PkgConfig)
pkg_check_modules(FONTCONFIG REQUIRED IMPORTED_TARGET fontconfig) pkg_check_modules(FONTCONFIG REQUIRED IMPORTED_TARGET fontconfig)
pkg_check_modules(SAMPLERATE REQUIRED IMPORTED_TARGET samplerate)
option(ENABLE_OPENGL "Enable the OpenGL renderer" ON) option(ENABLE_OPENGL "Enable the OpenGL renderer" ON)
add_feature_info(ENABLE_OPENGL ENABLE_OPENGL "Legacy OpenGL renderer.") add_feature_info(ENABLE_OPENGL ENABLE_OPENGL "Legacy OpenGL renderer.")
@ -152,7 +151,6 @@ add_subdirectory("${PROJECT_TOP}/repos/cimgui" "${CMAKE_BINARY_DIR}/cimgui" E
add_subdirectory(displayservers) add_subdirectory(displayservers)
add_subdirectory(renderers) add_subdirectory(renderers)
add_subdirectory(audiodevs)
add_executable(looking-glass-client ${SOURCES}) add_executable(looking-glass-client ${SOURCES})
@ -161,16 +159,24 @@ target_compile_definitions(looking-glass-client PRIVATE CIMGUI_DEFINE_ENUMS_AND_
target_link_libraries(looking-glass-client target_link_libraries(looking-glass-client
${EXE_FLAGS} ${EXE_FLAGS}
PkgConfig::FONTCONFIG PkgConfig::FONTCONFIG
PkgConfig::SAMPLERATE
lg_common lg_common
displayservers displayservers
lgmp lgmp
purespice purespice
renderers renderers
cimgui cimgui
audiodevs
) )
if (ENABLE_PIPEWIRE OR ENABLE_PULSEAUDIO)
add_definitions(-D ENABLE_AUDIO)
add_subdirectory(audiodevs)
pkg_check_modules(SAMPLERATE REQUIRED IMPORTED_TARGET samplerate)
target_link_libraries(looking-glass-client
PkgConfig::SAMPLERATE
audiodevs
)
endif()
install(TARGETS looking-glass-client install(TARGETS looking-glass-client
RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR}
COMPONENT binary) COMPONENT binary)

View File

@ -18,6 +18,8 @@
* Temple Place, Suite 330, Boston, MA 02111-1307 USA * Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/ */
#if ENABLE_AUDIO
#include "audio.h" #include "audio.h"
#include "main.h" #include "main.h"
#include "common/array.h" #include "common/array.h"
@ -691,3 +693,5 @@ void audio_tick(unsigned long long tickCount)
app_invalidateGraphs(); app_invalidateGraphs();
} }
#endif

View File

@ -18,6 +18,8 @@
* Temple Place, Suite 330, Boston, MA 02111-1307 USA * Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/ */
#if ENABLE_AUDIO
#include <stdbool.h> #include <stdbool.h>
#include <purespice.h> #include <purespice.h>
@ -39,3 +41,11 @@ void audio_recordVolume(int channels, const uint16_t volume[]);
void audio_recordMute(bool mute); void audio_recordMute(bool mute);
void audio_tick(unsigned long long tickCount); void audio_tick(unsigned long long tickCount);
#else
static inline void audio_init(void) {}
static inline void audio_free(void) {}
static inline void audio_tick(unsigned long long tickCount) {}
#endif

View File

@ -870,6 +870,7 @@ int spiceThread(void * arg)
.release = cb_spiceRelease, .release = cb_spiceRelease,
.request = cb_spiceRequest .request = cb_spiceRequest
}, },
#if ENABLE_AUDIO
.playback = .playback =
{ {
.enable = audio_supportsPlayback(), .enable = audio_supportsPlayback(),
@ -887,6 +888,7 @@ int spiceThread(void * arg)
.mute = audio_recordMute, .mute = audio_recordMute,
.stop = audio_recordStop .stop = audio_recordStop
} }
#endif
}; };
if (!purespice_connect(&config)) if (!purespice_connect(&config))