1########################################
2# ALSA
3########################################
4IF (UNIX AND NOT APPLE)
5	OPTION(ALSA "" ON)
6
7	MESSAGE(STATUS "Checking for ALSA")
8	MESSAGE(STATUS "*****************")
9
10	IF (ALSA)
11		FIND_PACKAGE(Alsa)
12
13		IF (ALSA_FOUND)
14			ALSA_VERSION_STRING(alsaVersion)
15
16			MESSAGE(STATUS "  version: ${alsaVersion}")
17			PRINT_LIBRARY_INFO("ALSA" ALSA_FOUND "${_ALSA_INCLUDE_DIR}" "${ASOUND_LIBRARY}")
18
19			SET(USE_ALSA True CACHE BOOL "")
20		ENDIF (ALSA_FOUND)
21	ELSE (ALSA)
22		MESSAGE("${MSG_DISABLE_OPTION}")
23	ENDIF (ALSA)
24
25	MESSAGE("")
26	APPEND_SUMMARY_LIST("Audio Device" "ALSA" "${USE_ALSA}")
27ELSE (UNIX AND NOT APPLE)
28	SET(ALSA_CAPABLE FALSE)
29ENDIF (UNIX AND NOT APPLE)
30
31########################################
32# aRts
33########################################
34IF (UNIX)
35	OPTION(ARTS "" ON)
36
37	MESSAGE(STATUS "Checking for aRts")
38	MESSAGE(STATUS "*****************")
39
40	IF (ARTS)
41		FIND_PACKAGE(Arts)
42		PRINT_LIBRARY_INFO("aRts" ARTS_FOUND "${ARTS_CFLAGS}" "${ARTS_LDFLAGS}")
43
44		IF (ARTS_FOUND)
45			SET(USE_ARTS True CACHE BOOL "")
46		ENDIF (ARTS_FOUND)
47	ELSE (ARTS)
48		MESSAGE("${MSG_DISABLE_OPTION}")
49	ENDIF (ARTS)
50
51	MESSAGE("")
52	APPEND_SUMMARY_LIST("Audio Device" "aRts" "${USE_ARTS}")
53ELSE (UNIX)
54	SET(ARTS_CAPABLE FALSE)
55ENDIF (UNIX)
56
57########################################
58# ESD
59########################################
60IF (UNIX)
61	OPTION(ESD "" ON)
62
63	MESSAGE(STATUS "Checking for ESD")
64	MESSAGE(STATUS "****************")
65
66	IF (ESD)
67		FIND_HEADER_AND_LIB(ESD esd.h esd esd_close)
68		PRINT_LIBRARY_INFO("ESD" ESD_FOUND "${ESD_INCLUDE_DIR}" "${ESD_LIBRARY_DIR}")
69
70		IF (ESD_FOUND)
71			SET(USE_ESD True CACHE BOOL "")
72		ENDIF (ESD_FOUND)
73	ELSE (ESD)
74		MESSAGE("${MSG_DISABLE_OPTION}")
75	ENDIF (ESD)
76
77	MESSAGE("")
78	APPEND_SUMMARY_LIST("Audio Device" "ESD" "${USE_ESD}")
79ELSE (UNIX)
80	SET(ESD_CAPABLE FALSE)
81ENDIF (UNIX)
82
83########################################
84# JACK
85########################################
86IF (UNIX)
87	OPTION(JACK "" ON)
88
89	MESSAGE(STATUS "Checking for JACK")
90	MESSAGE(STATUS "*****************")
91
92	IF (JACK)
93		FIND_HEADER_AND_LIB(JACK jack/jack.h jack jack_client_close)
94		PRINT_LIBRARY_INFO("JACK" JACK_FOUND "${JACK_INCLUDE_DIR}" "${JACK_LIBRARY_DIR}")
95
96		IF (JACK_FOUND)
97			SET(USE_JACK 1)
98		ENDIF (JACK_FOUND)
99	ELSE (JACK)
100		MESSAGE("${MSG_DISABLE_OPTION}")
101	ENDIF (JACK)
102
103	MESSAGE("")
104	APPEND_SUMMARY_LIST("Audio Device" "JACK" "${USE_JACK}")
105ELSE (UNIX)
106	SET(JACK_CAPABLE FALSE)
107ENDIF (UNIX)
108
109########################################
110# Secret Rabbit Code
111########################################
112IF (JACK_FOUND)
113	MESSAGE(STATUS "Checking for Secret Rabbit Code")
114	MESSAGE(STATUS "*******************************")
115
116	FIND_HEADER_AND_LIB(SRC samplerate.h samplerate src_get_version)
117	PRINT_LIBRARY_INFO("Secret Rabbit Code" SRC_FOUND "${SRC_INCLUDE_DIR}" "${SRC_LIBRARY_DIR}")
118
119	IF (SRC_FOUND)
120		SET(USE_SRC 1)
121	ENDIF (SRC_FOUND)
122
123	MESSAGE("")
124	APPEND_SUMMARY_LIST("Audio Device" "SRC" "${USE_SRC}")
125ENDIF (JACK_FOUND)
126
127########################################
128# OSS
129########################################
130IF (UNIX AND NOT APPLE)
131	OPTION(OSS "" ON)
132
133	MESSAGE(STATUS "Checking for OSS")
134	MESSAGE(STATUS "****************")
135
136	IF (OSS)
137		FIND_HEADER_AND_LIB(OSS sys/soundcard.h)
138		PRINT_LIBRARY_INFO("OSS" OSS_FOUND "${OSS_INCLUDE_DIR}" "")
139
140		IF (OSS_FOUND)
141			SET(USE_OSS 1)
142		ENDIF (OSS_FOUND)
143	ELSE (OSS)
144		MESSAGE("${MSG_DISABLE_OPTION}")
145	ENDIF (OSS)
146
147	MESSAGE("")
148	APPEND_SUMMARY_LIST("Audio Device" "OSS" "${USE_OSS}")
149ELSE (UNIX AND NOT APPLE)
150	SET(OSS_CAPABLE FALSE)
151ENDIF (UNIX AND NOT APPLE)
152
153########################################
154# PulseAudioSimple
155########################################
156IF (UNIX AND NOT APPLE)
157	OPTION(PULSEAUDIOSIMPLE "" ON)
158
159	MESSAGE(STATUS "Checking for PULSEAUDIOSIMPLE")
160	MESSAGE(STATUS "*****************************")
161
162        IF (PULSEAUDIOSIMPLE)
163        IF (PULSEAUDIOSIMPLE_INCLUDE_DIR AND PULSEAUDIOSIMPLE_LIBRARIES)
164        # in cache already
165         SET(PULSEAUDIOSIMPLE_FIND_QUIETLY TRUE)
166        ENDIF (PULSEAUDIOSIMPLE_INCLUDE_DIR AND PULSEAUDIOSIMPLE_LIBRARIES)
167
168           # use pkg-config to get the directories and then use these values
169        # in the FIND_PATH() and FIND_LIBRARY() calls
170        include(FindPkgConfig)
171        pkg_check_modules(PULSEAUDIOSIMPLE libpulse-simple)
172        IF (PULSEAUDIOSIMPLE_FOUND)
173          SET(PULSEAUDIOSIMPLE_DEFINITIONS ${PULSEAUDIOSIMPLE_CFLAGS})
174          FIND_PATH(PULSEAUDIOSIMPLE_INCLUDE_DIR pulse/simple.h PATHS ${PULSEAUDIOSIMPLE_INCLUDE_DIRS} PATH_SUFFIXES pulse)
175          FIND_LIBRARY(PULSEAUDIOSIMPLE_LIBRARIES NAMES pulse-simple libpulse-simple PATHS ${PULSEAUDIOSIMPLE_LIBRARY_DIRS})
176        ENDIF (PULSEAUDIOSIMPLE_FOUND)
177
178        IF (PULSEAUDIOSIMPLE_INCLUDE_DIR AND PULSEAUDIOSIMPLE_LIBRARIES)
179         SET(PULSEAUDIOSIMPLE_FOUND TRUE)
180        ELSE (PULSEAUDIOSIMPLE_INCLUDE_DIR AND PULSEAUDIOSIMPLE_LIBRARIES)
181         SET(PULSEAUDIOSIMPLE_FOUND FALSE)
182        ENDIF (PULSEAUDIOSIMPLE_INCLUDE_DIR AND PULSEAUDIOSIMPLE_LIBRARIES)
183
184        IF (PULSEAUDIOSIMPLE_FOUND)
185         IF (NOT PULSEAUDIOSIMPLE_FIND_QUIETLY)
186          MESSAGE(STATUS "Found PulseAudio Simple: ${PULSEAUDIOSIMPLE_LIBRARIES}")
187        ENDIF (NOT PULSEAUDIOSIMPLE_FIND_QUIETLY)
188        SET(USE_PULSE_SIMPLE 1)
189        ELSE (PULSEAUDIOSIMPLE_FOUND)
190         MESSAGE(STATUS "Could NOT find PulseAudioSimple\n")
191        ENDIF (PULSEAUDIOSIMPLE_FOUND)
192
193        MARK_AS_ADVANCED(PULSEAUDIOSIMPLE_INCLUDE_DIR PULSEAUDIOSIMPLE_LIBRARIES)
194        ELSE (PULSEAUDIOSIMPLE)
195                MESSAGE("${MSG_DISABLE_OPTION}")
196        ENDIF (PULSEAUDIOSIMPLE)
197
198        MESSAGE("")
199		APPEND_SUMMARY_LIST("Audio Device" "PulseAudio" "${USE_PULSE_SIMPLE}")
200ELSE (UNIX AND NOT APPLE)
201	SET(PULSEAUDIOSIMPLE_CAPABLE FALSE)
202ENDIF (UNIX AND NOT APPLE)
203