1menuconfig BR2_PACKAGE_MPD
2	bool "mpd"
3	depends on BR2_INSTALL_LIBSTDCPP
4	depends on BR2_USE_WCHAR # boost
5	depends on BR2_TOOLCHAIN_HAS_THREADS
6	depends on BR2_USE_MMU # fork
7	depends on BR2_TOOLCHAIN_HAS_ATOMIC
8	depends on BR2_TOOLCHAIN_GCC_AT_LEAST_8 # C++17
9	depends on BR2_HOST_GCC_AT_LEAST_8 # C++17
10	select BR2_PACKAGE_BOOST
11	select BR2_PACKAGE_FMT
12	select BR2_PACKAGE_LIBICONV if !BR2_ENABLE_LOCALE
13	help
14	  MPD is a flexible, powerful, server-side application
15	  for playing music. Through plugins and libraries
16	  it can play a variety of sound files while being
17	  controlled by its network protocol.
18
19	  https://www.musicpd.org
20
21if BR2_PACKAGE_MPD
22
23comment "Archive plugins"
24
25config BR2_PACKAGE_MPD_BZIP2
26	bool "bzip2"
27	select BR2_PACKAGE_BZIP2
28	help
29	  Enable bzip2 archive support.
30
31config BR2_PACKAGE_MPD_SQLITE
32	bool "sqlite"
33	select BR2_PACKAGE_SQLITE
34	help
35	  Enable sqlite database support.
36	  If you don't use sqlite it will use an ASCII database.
37
38config BR2_PACKAGE_MPD_ZZIP
39	bool "zzip"
40	select BR2_PACKAGE_ZZIPLIB
41	help
42	  Enable ZIP archive support.
43
44comment "Commercial services"
45
46config BR2_PACKAGE_MPD_QOBUZ
47	bool "qobuz"
48	depends on BR2_PACKAGE_LIBGPG_ERROR_ARCH_SUPPORTS
49	select BR2_PACKAGE_MPD_CURL
50	select BR2_PACKAGE_LIBGCRYPT
51	select BR2_PACKAGE_YAJL
52	help
53	  Play songs from the commercial streaming service Qobuz.
54
55config BR2_PACKAGE_MPD_SOUNDCLOUD
56	bool "soundcloud"
57	select BR2_PACKAGE_MPD_CURL
58	select BR2_PACKAGE_YAJL
59	help
60	  Enable soundcloud.com playlist support.
61
62comment "Converter plugins"
63
64config BR2_PACKAGE_MPD_LIBSAMPLERATE
65	bool "libsamplerate"
66	select BR2_PACKAGE_LIBSAMPLERATE
67	help
68	  Enable libsamplerate input support.
69	  Select this for software sample rate conversion.
70
71config BR2_PACKAGE_MPD_LIBSOXR
72	bool "libsoxr"
73	select BR2_PACKAGE_LIBSOXR
74	help
75	  Enable libsoxr resampler support.
76	  The SoX Resampler library performs software sample-rate
77	  conversion.
78
79comment "Decoder plugins"
80
81config BR2_PACKAGE_MPD_DSD
82	bool "dsd"
83	help
84	  Enable Digital Speech Decoder (DSD) support to play audio
85	  files encoded in a digital speech format.
86
87config BR2_PACKAGE_MPD_FAAD2
88	bool "faad2"
89	select BR2_PACKAGE_FAAD2
90	help
91	  Enable faad2 input support.
92	  Select this if you want to play back MP4/AAC files.
93
94config BR2_PACKAGE_MPD_FFMPEG
95	bool "ffmpeg"
96	depends on BR2_PACKAGE_FFMPEG_ARCH_SUPPORTS
97	select BR2_PACKAGE_FFMPEG
98	help
99	  Enable ffmpeg input support.
100	  Select this if you want to play back files supported by
101	  ffmpeg.
102
103config BR2_PACKAGE_MPD_FLAC
104	bool "flac"
105	select BR2_PACKAGE_FLAC
106	help
107	  Enable flac input/streaming support.
108	  Select this if you want to play back FLAC files.
109
110config BR2_PACKAGE_MPD_FLUIDSYNTH
111	bool "fluidsynth"
112	depends on !BR2_STATIC_LIBS
113	select BR2_PACKAGE_FLUIDSYNTH
114	help
115	  Enable fluidsynth MIDI decoder support.
116
117comment "fluidsynth support needs a toolchain w/ dynamic library"
118	depends on BR2_STATIC_LIBS
119
120config BR2_PACKAGE_MPD_LIBSNDFILE
121	bool "libsndfile"
122	select BR2_PACKAGE_LIBSNDFILE
123	help
124	  Enable libsndfile input/streaming support.
125	  Select this if you want to play back WAV files.
126
127config BR2_PACKAGE_MPD_MAD
128	bool "mad"
129	default y
130	select BR2_PACKAGE_MPD_ID3TAG
131	select BR2_PACKAGE_LIBMAD
132	help
133	  Enable mad input support.
134	  Select this if you want to play back MP3 files.
135
136config BR2_PACKAGE_MPD_MODPLUG
137	bool "modplug"
138	select BR2_PACKAGE_LIBMODPLUG
139	help
140	  Enable Modplug decoder support.
141
142config BR2_PACKAGE_MPD_MPG123
143	bool "mpg123"
144	select BR2_PACKAGE_MPD_ID3TAG
145	select BR2_PACKAGE_MPG123
146	help
147	  Enable mpg123 input support.
148	  Select this if you want to play back MP3 files.
149
150config BR2_PACKAGE_MPD_MUSEPACK
151	bool "musepack"
152	select BR2_PACKAGE_LIBCUEFILE
153	select BR2_PACKAGE_LIBREPLAYGAIN
154	select BR2_PACKAGE_MUSEPACK
155	help
156	  Enable musepack input support.
157	  Select this if you want to play back MPC files.
158
159config BR2_PACKAGE_MPD_OPUS
160	bool "opus"
161	select BR2_PACKAGE_OPUS
162	select BR2_PACKAGE_LIBOGG
163	help
164	  Enable opus input support.
165	  Select this if you want to play back OPUS encoded files.
166
167config BR2_PACKAGE_MPD_SIDPLAY
168	bool "sidplay"
169	select BR2_PACKAGE_LIBSIDPLAY2
170	help
171	  Enable C64 SID support.
172
173config BR2_PACKAGE_MPD_TREMOR
174	bool "tremor"
175	depends on !BR2_PACKAGE_MPD_VORBIS
176	select BR2_PACKAGE_LIBOGG
177	select BR2_PACKAGE_TREMOR
178	help
179	  Enable vorbis input support.
180	  Select this if you want to play back OGG files on softfloat
181	  targets.
182
183config BR2_PACKAGE_MPD_VORBIS
184	bool "vorbis"
185	select BR2_PACKAGE_LIBOGG
186	select BR2_PACKAGE_LIBVORBIS
187	help
188	  Enable vorbis input/streaming support.
189	  Select this if you want to play back OGG files on hardfloat
190	  targets.
191
192config BR2_PACKAGE_MPD_WAVPACK
193	bool "wavpack"
194	select BR2_PACKAGE_WAVPACK
195	help
196	  Enable wavpack input support.
197	  Select this if you want to play back WV files.
198
199comment "Encoder plugins"
200
201config BR2_PACKAGE_MPD_LAME
202	bool "lame"
203	select BR2_PACKAGE_LAME
204	help
205	  Enable lame (mp3) encoding support.
206
207config BR2_PACKAGE_MPD_TWOLAME
208	bool "twolame"
209	select BR2_PACKAGE_TWOLAME
210	help
211	  Enable TwoLAME mp2 encoding.
212
213comment "Input plugins"
214
215config BR2_PACKAGE_MPD_CDIO_PARANOIA
216	bool "cdio-paranoia"
217	select BR2_PACKAGE_LIBCDIO_PARANOIA
218	help
219	  Enable cdio-paranoia support.
220
221config BR2_PACKAGE_MPD_CURL
222	bool "curl"
223	select BR2_PACKAGE_LIBCURL
224	help
225	  Enable curl streaming (http) support.
226
227config BR2_PACKAGE_MPD_LIBMMS
228	bool "mms"
229	select BR2_PACKAGE_LIBMMS
230	help
231	  Enable MMS support.
232
233config BR2_PACKAGE_MPD_LIBNFS
234	bool "nfs"
235	# libnfs -> libtirpc
236	depends on BR2_TOOLCHAIN_HAS_NATIVE_RPC || BR2_TOOLCHAIN_HAS_THREADS
237	select BR2_PACKAGE_LIBNFS
238	help
239	  Enable Network File System (NFS) support.
240
241comment "nfs support needs a toolchain w/ threads support"
242	depends on !(BR2_TOOLCHAIN_HAS_THREADS || BR2_TOOLCHAIN_HAS_NATIVE_RPC)
243
244comment "samba support needs a glibc toolchain w/ dynamic library, RPC"
245	depends on !BR2_nios2
246	depends on !BR2_TOOLCHAIN_USES_GLIBC || BR2_STATIC_LIBS || \
247		!BR2_TOOLCHAIN_HAS_NATIVE_RPC
248
249config BR2_PACKAGE_MPD_LIBSMBCLIENT
250	bool "samba"
251	depends on !BR2_nios2 # samba
252	depends on BR2_TOOLCHAIN_USES_GLIBC
253	depends on !BR2_STATIC_LIBS
254	depends on BR2_TOOLCHAIN_HAS_NATIVE_RPC
255	depends on BR2_TOOLCHAIN_HAS_SYNC_4
256	select BR2_PACKAGE_SAMBA4
257	help
258	  Enable Samba support.
259
260comment "Output plugins"
261
262config BR2_PACKAGE_MPD_ALSA
263	bool "alsa"
264	default y
265	select BR2_PACKAGE_ALSA_LIB
266	select BR2_PACKAGE_ALSA_LIB_PCM
267	select BR2_PACKAGE_ALSA_LIB_MIXER
268	help
269	  Enable alsa output support.
270
271config BR2_PACKAGE_MPD_AO
272	bool "ao"
273	select BR2_PACKAGE_LIBAO
274	help
275	  Enable libao output support.
276
277config BR2_PACKAGE_MPD_HTTPD_OUTPUT
278	bool "httpd output"
279	help
280	  Enable httpd output support.
281
282config BR2_PACKAGE_MPD_JACK2
283	bool "jack2"
284	depends on !BR2_STATIC_LIBS # jack2
285	depends on BR2_TOOLCHAIN_HAS_SYNC_4
286	select BR2_PACKAGE_JACK2
287	help
288	  Enable jack output support.
289
290comment "jack support needs a toolchain w/ dynamic library"
291	depends on BR2_TOOLCHAIN_HAS_SYNC_4
292	depends on BR2_STATIC_LIBS
293
294config BR2_PACKAGE_MPD_OPENAL
295	bool "openal"
296	depends on BR2_PACKAGE_OPENAL_ARCH_SUPPORTS
297	depends on BR2_TOOLCHAIN_HAS_THREADS_NPTL
298	select BR2_PACKAGE_OPENAL
299	help
300	  Enable OpenAL output support.
301
302comment "openal support needs a toolchain w/ NPTL"
303	depends on BR2_PACKAGE_OPENAL_ARCH_SUPPORTS
304	depends on !BR2_TOOLCHAIN_HAS_THREADS_NPTL
305
306config BR2_PACKAGE_MPD_OSS
307	bool "oss"
308	help
309	  Enable OSS (Open Sound System) output support.
310
311config BR2_PACKAGE_MPD_PULSEAUDIO
312	bool "pulseaudio"
313	depends on BR2_PACKAGE_PULSEAUDIO_HAS_ATOMIC
314	depends on BR2_USE_WCHAR
315	depends on BR2_TOOLCHAIN_HAS_THREADS
316	depends on !BR2_STATIC_LIBS
317	depends on BR2_USE_MMU
318	select BR2_PACKAGE_PULSEAUDIO
319	help
320	  Enable pulseaudio output support.
321
322comment "pulseaudio support needs a toolchain w/ threads, wchar, dynamic library"
323	depends on BR2_USE_MMU
324	depends on BR2_PACKAGE_PULSEAUDIO_HAS_ATOMIC
325	depends on !BR2_TOOLCHAIN_HAS_THREADS || BR2_STATIC_LIBS || !BR2_USE_WCHAR
326
327config BR2_PACKAGE_MPD_SHOUTCAST
328	bool "shoutcast"
329	select BR2_PACKAGE_LIBSHOUT
330	help
331	  Enable shoutcast streaming output support.
332
333comment "Miscellaneous plugins"
334
335config BR2_PACKAGE_MPD_AVAHI_SUPPORT
336	bool "avahi (zeroconf) support"
337	depends on !BR2_STATIC_LIBS # avahi
338	select BR2_PACKAGE_AVAHI
339	select BR2_PACKAGE_AVAHI_DAEMON
340	select BR2_PACKAGE_AVAHI_LIBDNSSD_COMPATIBILITY
341	help
342	  Enable Avahi (zeroconf) support.
343	  Select this for multicast DNS/DNS-SD service discovery
344	  support. This allows MPD to publish service information on a
345	  local network.
346
347comment "avahi support needs a toolchain w/ dynamic library"
348	depends on BR2_STATIC_LIBS
349
350config BR2_PACKAGE_MPD_IO_URING
351	bool "io_uring"
352	depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_1
353	select BR2_PACKAGE_LIBURING
354	help
355	  Asynchronous I/O using kernel io_uring subsystem
356
357comment "io_uring support needs a toolchain w/ headers >= 5.1"
358	depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_5_1
359
360config BR2_PACKAGE_MPD_LIBMPDCLIENT
361	bool "libmpdclient"
362	select BR2_PACKAGE_LIBMPDCLIENT
363	help
364	  Enable libmpdclient support.
365
366config BR2_PACKAGE_MPD_NEIGHBOR_DISCOVERY_SUPPORT
367	bool "neighbor discovery support"
368	depends on BR2_PACKAGE_MPD_LIBSMBCLIENT || !BR2_PACKAGE_MPD_UPNP_DISABLED
369	help
370	  Enable support for neighbor discovery.
371	  This option can be used in conjunction with the smbclient
372	  plugin to provide a list of SMB/CIFS servers or with the
373	  UPnP plugin to provide a list of UPnP servers on the local
374	  network. The neighbor plugin needs configuration in
375	  mpd.conf. For further information take a look at the MPD
376	  documentation.
377
378config BR2_PACKAGE_MPD_TCP
379	bool "tcp sockets"
380	default y
381	help
382	  Enable MPD to listen on tcp sockets.
383
384	  You want this on if MPD and the client(s) work
385	  on different machines (the usual scenario).
386
387choice
388	prompt "UPnP"
389	default BR2_PACKAGE_MPD_UPNP_PUPNP if BR2_PACKAGE_MPD_UPNP # legacy
390	default BR2_PACKAGE_MPD_UPNP_DISABLED
391	help
392	  Enable MPD to access a UPnP based media server.
393
394	  For further information, see
395	  https://www.lesbonscomptes.com/upmpdcli/pages/upmpdcli-or-mpdupnp.html
396
397config BR2_PACKAGE_MPD_UPNP_PUPNP
398	bool "pupnp"
399	select BR2_PACKAGE_EXPAT
400	select BR2_PACKAGE_LIBUPNP
401	select BR2_PACKAGE_MPD_CURL
402	help
403	  Provides UPnP database access through libupnp
404	  (the legacy Portable SDK for UPnP devices).
405
406	  Introduces least additional dependencies.
407
408config BR2_PACKAGE_MPD_UPNP_NPUPNP
409	bool "npupnp"
410	select BR2_PACKAGE_EXPAT
411	select BR2_PACKAGE_LIBNPUPNP
412	select BR2_PACKAGE_MPD_CURL
413	help
414	  Provides UPnP database access through libnpupnp
415	  (a C++ reimplementation of the Portable UPnP library).
416
417	  This implementation is more modern, but also brings
418	  additional features not needed in this context, thus
419	  consuming more space.
420
421config BR2_PACKAGE_MPD_UPNP_DISABLED
422	bool "disabled"
423	help
424	  No UPnP client functionality.
425
426endchoice
427
428comment "Tag plugins"
429
430config BR2_PACKAGE_MPD_ID3TAG
431	bool "id3tag"
432	select BR2_PACKAGE_LIBID3TAG
433	help
434	  Enable ID3 support.
435
436endif
437
438comment "mpd needs a toolchain w/ C++, threads, wchar, gcc >= 8, host gcc >= 8"
439	depends on BR2_USE_MMU
440	depends on BR2_TOOLCHAIN_HAS_ATOMIC
441	depends on !BR2_INSTALL_LIBSTDCPP || !BR2_USE_WCHAR || \
442		!BR2_TOOLCHAIN_HAS_THREADS || \
443		!BR2_TOOLCHAIN_GCC_AT_LEAST_8 || \
444		!BR2_HOST_GCC_AT_LEAST_8
445