Make Alsa audio backend optional

This commit is contained in:
Iwan Timmer 2017-05-27 17:27:58 +02:00
parent 3461d17119
commit bbeffe2782
3 changed files with 17 additions and 4 deletions

View File

@ -13,7 +13,7 @@ aux_source_directory(./src/input SRC_LIST)
set(MOONLIGHT_DEFINITIONS) set(MOONLIGHT_DEFINITIONS)
find_package(ALSA REQUIRED) find_package(ALSA)
find_package(Opus REQUIRED) find_package(Opus REQUIRED)
find_package(Broadcom) find_package(Broadcom)
find_package(Freescale) find_package(Freescale)
@ -82,6 +82,12 @@ if (AMLOGIC_FOUND OR BROADCOM_FOUND OR FREESCALE_FOUND OR CMAKE_BUILD_TYPE MATCH
list(APPEND MOONLIGHT_OPTIONS EMBEDDED) list(APPEND MOONLIGHT_OPTIONS EMBEDDED)
endif() endif()
if (ALSA_FOUND)
list(APPEND SRC_LIST ./src/audio/alsa.c)
list(APPEND MOONLIGHT_DEFINITIONS HAVE_ALSA)
list(APPEND MOONLIGHT_OPTIONS ALSA)
endif()
if (PULSE_FOUND) if (PULSE_FOUND)
list(APPEND SRC_LIST ./src/audio/pulse.c) list(APPEND SRC_LIST ./src/audio/pulse.c)
list(APPEND MOONLIGHT_DEFINITIONS HAVE_PULSE) list(APPEND MOONLIGHT_DEFINITIONS HAVE_PULSE)
@ -90,8 +96,6 @@ endif()
include_directories("${PROJECT_BINARY_DIR}") include_directories("${PROJECT_BINARY_DIR}")
list(APPEND SRC_LIST ./src/audio/alsa.c)
add_subdirectory(libgamestream) add_subdirectory(libgamestream)
add_executable(moonlight ${SRC_LIST}) add_executable(moonlight ${SRC_LIST})
@ -154,6 +158,11 @@ if (SOFTWARE_FOUND)
endif() endif()
endif() endif()
if (ALSA_FOUND)
target_include_directories(moonlight PRIVATE ${ALSA_INCLUDE_DIR})
target_link_libraries(moonlight ${ALSA_LIBRARY})
endif()
if (PULSE_FOUND) if (PULSE_FOUND)
target_include_directories(moonlight PRIVATE ${PULSE_INCLUDE_DIRS}) target_include_directories(moonlight PRIVATE ${PULSE_INCLUDE_DIRS})
target_link_libraries(moonlight ${PULSE_LIBRARIES}) target_link_libraries(moonlight ${PULSE_LIBRARIES})
@ -163,7 +172,7 @@ configure_file("./src/configuration.h.in" "${PROJECT_BINARY_DIR}/configuration.h
set_property(TARGET moonlight PROPERTY COMPILE_DEFINITIONS ${MOONLIGHT_DEFINITIONS}) set_property(TARGET moonlight PROPERTY COMPILE_DEFINITIONS ${MOONLIGHT_DEFINITIONS})
target_include_directories(moonlight PRIVATE ${GAMESTREAM_INCLUDE_DIR} ${MOONLIGHT_COMMON_INCLUDE_DIR} ${OPUS_INCLUDE_DIRS} ${EVDEV_INCLUDE_DIRS} ${UDEV_INCLUDE_DIRS}) target_include_directories(moonlight PRIVATE ${GAMESTREAM_INCLUDE_DIR} ${MOONLIGHT_COMMON_INCLUDE_DIR} ${OPUS_INCLUDE_DIRS} ${EVDEV_INCLUDE_DIRS} ${UDEV_INCLUDE_DIRS})
target_link_libraries(moonlight ${EVDEV_LIBRARIES} ${ALSA_LIBRARY} ${OPUS_LIBRARY} ${UDEV_LIBRARIES} ${CMAKE_DL_LIBS}) target_link_libraries(moonlight ${EVDEV_LIBRARIES} ${OPUS_LIBRARY} ${UDEV_LIBRARIES} ${CMAKE_DL_LIBS})
add_subdirectory(docs) add_subdirectory(docs)

View File

@ -27,7 +27,9 @@
extern const char* audio_device; extern const char* audio_device;
#ifdef HAVE_ALSA
extern AUDIO_RENDERER_CALLBACKS audio_callbacks_alsa; extern AUDIO_RENDERER_CALLBACKS audio_callbacks_alsa;
#endif
#ifdef HAVE_SDL #ifdef HAVE_SDL
extern AUDIO_RENDERER_CALLBACKS audio_callbacks_sdl; extern AUDIO_RENDERER_CALLBACKS audio_callbacks_sdl;
#endif #endif

View File

@ -111,7 +111,9 @@ AUDIO_RENDERER_CALLBACKS* platform_get_audio(enum platform system) {
if (audio_pulse_init()) if (audio_pulse_init())
return &audio_callbacks_pulse; return &audio_callbacks_pulse;
#endif #endif
#ifdef HAVE_ALSA
return &audio_callbacks_alsa; return &audio_callbacks_alsa;
#endif
} }
return NULL; return NULL;
} }