Commit Graph

139 Commits

Author SHA1 Message Date
Max Kellermann 5b78b46a30 Makefile.am: require automake 1.10
Refuse to build with automake 1.9.  1.9 is quite old already, and I'm
too lazy to test with ancient versions.
2009-06-25 11:52:55 +02:00
Max Kellermann 3483c891dc doc: added Developer's Manual
Just a start...
2009-06-02 21:09:45 +02:00
Max Kellermann 1d0be2a031 doc: fixed DocBook markup in doc/sticker.xml
The old sticker.xml used elements which are not valid in DocBook.  Now
that the file is valid, let's add it to $(DOCBOOK_FILES).
2009-05-15 18:54:50 +02:00
Max Kellermann 46e0b49e71 Makefile.am: added doc/doxygen.conf to $(EXTRA_DIST) 2009-05-15 18:43:22 +02:00
Max Kellermann e6ea7ffdcb Makefile.am: run sparse once with all sources
Don't loop over source files, do all checks in one run.
2009-05-04 09:43:05 +02:00
Max Kellermann 2c7508f72c Makefile.am: ship DocBook sources even when documentation is disabled 2009-04-30 11:43:19 +02:00
Avuton Olrich 6dde36d683 scripts: Remove mpd.spec, it was always half-baked.
Remove mpd.spec and makerpm.sh. It was never used or maintained
and the distributors take care of this kinda thing now anyhow.
2009-04-29 02:43:04 -07:00
Max Kellermann 70d322b296 Makefile.am: moved doxygen invocation out of HAVE_XMLTO
The doxygen invocation was misplaced: it was only defined when xmlto
is available.
2009-04-26 20:02:53 +02:00
Max Kellermann eea2866190 Makefile.am: moved source files to $(TAG_SRC)
$(TAG_SRC) contains the names of all tag reader source files.  Some of
these are required for test/run_decoder.
2009-04-25 13:21:28 +02:00
Max Kellermann 63710ff5a6 test: added program "read_mixer"
This little program is used to test mixer plugins in an isolated
environment.  This is ALSA-only currently, because we don't have a
real "plugin list" yet, and I'm too lazy to implement a switch.
2009-04-21 22:46:41 +02:00
Max Kellermann e1f0c5347c configure.ac: detect libiso9660 with pkg-config
Fail if the iso9660 plugin is enabled but not found.
2009-04-13 20:47:28 +02:00
Max Kellermann e216e01ab3 configure.ac: detect libzzip with pkg-config
Fail if the zzip plugin is enabled but not found.
2009-04-13 20:46:31 +02:00
Hagen Schink 92ba754fc6 Implemented basic icy support for the httpd output
[mk: folded with patch "Put icy related functions in extra source
files"; moved icy_server.c from HAVE_CURL to ENABLE_HTTPD_OUTPUT;
removed an unused variable]
2009-04-13 19:35:02 +02:00
Max Kellermann 99a88988d5 test: added run_input test program 2009-04-13 19:18:10 +02:00
Max Kellermann e18d67338b removed TODO file
Most of that was already implemented, and for other feature requests,
we have the bug tracker.
2009-04-10 09:14:25 +02:00
Max Kellermann e823e78d0f test: added configuration file reader 2009-04-10 09:14:12 +02:00
Avuton Olrich 27491c77b9 make: gitignore is not necessary for distribution. 2009-04-02 09:44:59 +02:00
Max Kellermann a7685780ed configure.ac: renamed --enable-mod to --enable-mikmod 2009-04-01 22:48:06 +02:00
Max Kellermann 5242305a90 configure.ac: renamed --enable-oggvorbis to --enable-vorbis 2009-04-01 22:45:17 +02:00
Max Kellermann b914d3f6eb Makefile.am: use TREMOR_CFLAGS and TREMOR_LIBS
Don't append those two CFLAGS/LIBS in configure.ac.
2009-04-01 22:45:00 +02:00
Max Kellermann b9a5e78780 Makefile.am: use LAME_CFLAGS and LAME_LIBS
Don't append LAME_CFLAGS/LAME_LIBS to MPD_CFLAGS/MPD_LIBS in
configure.ac.  Export them via AC_SUBST() instead.
2009-04-01 22:05:53 +02:00
Max Kellermann cb35d6e687 sticker_print: new library for sending stickers to a client 2009-04-01 17:30:56 +02:00
Jochen Keil 192e29107d Configure/Make dependencies for cue/cue_tag.h/.c
Autoconf/automake support for libcue which
is needed for cue/cue_tag.h/.c.
Libcue will have/has pkg-config support
so this is fairly straightforward.
2009-03-31 22:17:56 +02:00
Max Kellermann 33aeac4fcb Makefile.am: use PULSE_CFLAGS and PULSE_LIBS
Don't add those to MPD_CFLAGS and MPD_LIBS.
2009-03-28 21:39:26 +01:00
Max Kellermann 5164cc1ff8 Makefile.am: use JACK_CFLAGS and JACK_LIBS
Don't add those to MPD_CFLAGS and MPD_LIBS.
2009-03-28 21:38:53 +01:00
Max Kellermann 50c53e4b24 Makefile.am: use SAMPLERATE_CFLAGS and SAMPLERATE_LIBS
Don't add those to MPD_CFLAGS and MPD_LIBS.
2009-03-28 21:38:44 +01:00
Viliam Mateicka 71cd24954a move printAllOutputPluginTypes to output_list.c 2009-03-21 09:45:42 +01:00
Max Kellermann bba127a392 solaris: new audio output plugin for Solaris /dev/audio 2009-03-16 09:55:10 +01:00
Max Kellermann ae1a7fc84a vorbis_encoder: added support for all MPD tag types
Copy all tags know to MPD to the vorbis_comment.
2009-03-15 18:36:29 +01:00
Max Kellermann e1189712f9 Makefile.am: added documentation upload target
This "upload" target uploads generated documentation to
http://www.musicpd.org/doc/, and works only for my user account.
2009-03-15 17:32:28 +01:00
Max Kellermann e62580db0b httpd: new output plugin to replace "shout"
Let's get rid of the "shout" plugin, and the awfully complicated
icecast daemon setup!  MPD can do better if it's doing the HTTP server
stuff on its own.  This new plugin has several advantages:

- easier to set up - only one daemon, no password settings, no mount
  settings
- MPD controls the encoder and thus already knows the packet
  boundaries - icecast has to parse them
- MPD doesn't bother to encode data while nobody is listening

This implementation is very experimental (no header parsing, ignores
request URI, no icy-metadata, ...).  It should be able to suport
several encoders in parallel in the future (with different bit rates,
different codec, ...), to make MPD the perfect streaming server.  Once
MPD gets multi-player support, we can even mount several different
radio stations on one server.
2009-03-15 03:32:34 +01:00
Max Kellermann 565afefc66 page: new library for reference counted buffers 2009-03-15 02:29:12 +01:00
Max Kellermann c76d35969b fifo_buffer: added buffering library
It is a library which I have written years ago for other projects.
This library is licensed under BSD 2-clause, because it is very
generic.
2009-03-14 17:30:00 +01:00
Max Kellermann e12140cfce pcm_resample: choose the fallback resampler at runtime
Even if libsamplerate support is enabled, compile the fallback
resampler.  When the user specifies the option
"samplerate_converter=internal", it is chosen in favor of
libsamplerate.  This may help users with a weak FPU who don't want to
compile a custom MPD from source, because the fallback resampler does
not use floating point operations.
2009-03-14 15:26:36 +01:00
Max Kellermann 456201fa22 pcm_resample: renamed implementation functions
Added diversion functions to pcm_resample.c.  These check which
resampler is enabled at compile time (libsamplerate or fallback).
This prepares the following patch.
2009-03-14 15:26:28 +01:00
Max Kellermann bd833f64e2 Makefile.am: don't let sparse scan C++ sources
sparse cannot deal with C++.
2009-03-14 14:30:02 +01:00
Max Kellermann 0a1db6cbc9 Makefile.am: added limit definitions to SPARSE_CPPFLAGS
sparse complains that a lot of limit.h macros are missing.  Define
them to keep sparse quiet.
2009-03-14 14:30:01 +01:00
Max Kellermann b488355df8 mixer_api: moved mixer_plugin imports to mixer_list.h
This patch allows the output plugins to import only mixer_list.h,
instead of the full mixer_api.h (which would expose internal
structures).
2009-03-14 11:36:59 +01:00
Max Kellermann a5017a2d7c mixer_api: moved functions to mixer_control.c
mixer_control.h should provide the functions needed to manipulate a
mixer, without exposing the internal mixer API (which is provided by
mixer_api.h).
2009-03-14 11:36:50 +01:00
Max Kellermann 88af35c0ab volume: moved code to mixer_all.c 2009-03-14 11:35:40 +01:00
Max Kellermann e7c3f469c3 mixer_api: moved struct mixer_plugin to mixer_plugin.h 2009-03-14 11:33:51 +01:00
Max Kellermann d8218cae6b Makefile.am: link test/software_volume with GLib
That linker flag got lost when AM_LDFLAGS was removed.
2009-03-12 19:41:11 +01:00
Max Kellermann e9cbb6be3f audio: moved mixer functions to mixer_control.c 2009-03-12 18:34:37 +01:00
Max Kellermann 0cb8e7f2cb doc: added skeleton for the user manual 2009-03-12 17:06:48 +01:00
Diego Elio 'Flameeyes' Pettenò ce6ef89f26 Pass glib libs properly to libtool.
Passing libraries through LDFLAGS is a mistake that causes link to fail
when using --as-needed. Since the ld arguments are positional, so are
libtool's. Use the proper variable, thus, to pass the libraries.
2009-03-11 12:45:46 +01:00
Max Kellermann 79ef9166df test: added program "run_output"
The "run_output" program can be used to test an audio output plugin in
an isolated environment.
2009-03-10 15:46:55 +01:00
Max Kellermann 296c1bb3b6 Makefile.am: moved file names to $(OUTPUT_API_SRC) 2009-03-10 15:46:55 +01:00
Max Kellermann fd76e29fba added memory poisoning library
Memory poisoning is useful for marking memory regions as "undefined".
This poisoning only enabled in the debug build (!NDEBUG).
2009-03-09 19:09:30 +01:00
David Guibert 21bb10f4bf pulse mixer
This patch introduces the mixer for the pulse output.

Technically speaking, the pulse index is needed to get or set
the volume. You must define callback fonctions to get this index since
the pulse output in mpd is done using the simpe api. The pulse simple api
does not provide the index of the newly defined output.

So callback fonctions are associated to the pulse context.
The list of all the sink input is then retreived.
Then we select the name of the mpd pulse output and control
its volume by its associated index number.

Signed-off-by: Patrice Linel <patnathanael@gmail.com>
Signed-off-by: David Guibert <david.guibert@gmail.com>

[mk: fixed whitespace errors and broke long lines; removed
daemonization changes from main.c]
2009-03-07 15:59:20 +01:00
Max Kellermann 01cf7feac7 pipe: added music_buffer, rewrite music_pipe
Turn the music_pipe into a simple music_chunk queue.  The music_chunk
allocation code is moved to music_buffer, and is now managed with a
linked list instead of a ring buffer.  Two separate music_pipe objects
are used by the decoder for the "current" and the "next" song, which
greatly simplifies the cross-fading code.
2009-03-06 00:42:03 +01:00
Max Kellermann 000b2d4f3a music_pipe: added music_pipe_push()
Added music_pipe_allocate(), music_pipe_push() and
music_pipe_cancel().  Those functions allow the caller (decoder thread
in this case) to do its own chunk management.  The functions
music_pipe_flush() and music_pipe_tag() can now be removed.
2009-03-06 00:42:01 +01:00
Max Kellermann c655f804a9 music_pipe: moved struct music_chunk to chunk.h 2009-03-03 22:23:25 +01:00
Max Kellermann 4220e6b0ad input_lastfm: new input plugin for last.fm radio
The lastfm input plugin enables MPD to play lastfm:// URLs.  This
plugin is not complete yet: it plays only the first song in the
last.fm playlist, and the playlist parser isn't even implemented
properly.
2009-03-02 23:11:31 +01:00
Max Kellermann 36d24fb7ea input: moved plugins to ./src/input/
Create a sub directory for input plugins.
2009-03-02 20:40:31 +01:00
Max Kellermann 2e51365ea4 input_stream: moved struct input_plugin to input_plugin.h
Start to separate private from public input_stream API.
2009-03-02 20:13:08 +01:00
Max Kellermann 2f438e5d23 tag_id3: parse ID3 tags in AIFF files
Added a small AIFF parser library, code copied from the RIFF parser
(big-endian integers).  Look for an "ID3" chunk, and let libid3tag
parse it.
2009-03-02 18:12:44 +01:00
Max Kellermann 336f624277 tag_id3: parse ID3 tags in RIFF/WAV files
Added a small RIFF parser library.  Look for an "id3" chunk, and let
libid3tag parse it.
2009-03-02 18:00:46 +01:00
Max Kellermann b4f84fab34 configure.ac: make "xmlto" optional
Even when --enable-documentation is passed, don't abort if "xmlto" was
not found.
2009-03-01 01:26:04 +01:00
Max Kellermann c4626143c9 Makefile.am: fixed xmlto output path
The output path must be ./doc/protocol/, not ./protocol/
2009-03-01 01:15:09 +01:00
Max Kellermann 362cc22558 test: added test program which reads tags from a file 2009-02-28 17:04:37 +01:00
Max Kellermann 4a2b315ab6 tag: moved APE code to tag_ape.c 2009-02-28 16:44:41 +01:00
Michal Nazarewicz cabbf7ab4a pipe: new audio output plugin which runs a command
[mk: adapted to new output plugin API]
2009-02-28 16:11:59 +01:00
Max Kellermann b55d9fcdb8 socket_util: added function sockaddr_to_string()
Create the socket_util.c library, the first function is
sockaddr_to_string(): it converts a sockaddr struct to a string
containing the IP address in a human-readable form.
2009-02-28 15:12:24 +01:00
Max Kellermann 0cf4f09e4f output_api: removed audio_output_get_name()
Use config_get_block_string("name") instead of audio_output_get_name().
2009-02-25 17:32:58 +01:00
Max Kellermann 4726c7f709 test: added encoder test program
Added a command line program which runs an encoder plugin.
2009-02-25 17:12:14 +01:00
Max Kellermann e0e92e050e test: added decoder test program
Added a command line program which runs a decoder plugin.
2009-02-25 17:09:09 +01:00
Max Kellermann bdb3129f18 configure.ac: declare AM_CFLAGS
Moved generic compiler options to AM_CFLAGS.  MPD_CFLAGS/MPD_LIBS will
hopefully fade away one day, in favor of more fine-grained variables.
2009-02-25 16:46:07 +01:00
Max Kellermann 6fdaa49668 Makefile.am: use AM_CPPFLAGS, AM_LDFLAGS
Renamed the old AM_CFLAGS to AM_CPPFLAGS, because it contained only
preprocessor options.  Append it to src_mpd_CPPFLAGS.  Removed
GLIB_LIBS from src_mpd_CPPFLAGS, because it is already part of
AM_LDFLAGS.
2009-02-25 16:45:23 +01:00
Max Kellermann 02c9c3e0d8 Makefile.am: added per-subsystem variables
Added "make" variables for the sources and dependencies of each
subsystem (archive, input, output, decoder, encoder, mixer).
2009-02-25 16:44:11 +01:00
Max Kellermann 6823217697 ls: moved generic URI utilities to uri.c
"ls" is a bad name for a library which parses URIs.  We'll move the
rest of the "ls" library later.
2009-02-25 16:44:06 +01:00
Max Kellermann 3b1a9aeca0 Makefile.am: no recursive makefiles
Recursive Makefiles are inefficient and error prone (no proper way to
declare dependencies).  Since there's no disadvantage in having one
single Makefile, let's do it.
2009-02-23 10:04:51 +01:00
Max Kellermann 76dc9ac5f9 test: added command line test program for pcm_volume.c
This program is a simple utility for debugging and benchmarking the
software volume code.
2009-02-18 22:27:55 +01:00
Max Kellermann 54387d1451 configure.ac: added switch for test programs
The switch syntax is "--enable-test".  There are no test programs yet.
2009-02-18 19:27:05 +01:00
Max Kellermann d66dddb47e Makefile.am: distribute only real scripts
Don't distribute the whole scripts/ directory, because this may
include editor backup files and other temporary files.
2008-12-24 11:01:14 +01:00
Max Kellermann 51fd7cdfb7 Makefile.am: removed m4/* from EXTRA_DIST
The m4 files are automatically included in the distribution.
2008-12-24 10:56:53 +01:00
Max Kellermann 6260e0c8a0 Makefile.am: don't add directory into EXTRA_DIST
Add separate files.  This fixes "make distcheck".
2008-12-24 10:50:23 +01:00
Max Kellermann 20ec1a4810 Makefile.am: install documentation 2008-10-25 21:32:10 +02:00
Max Kellermann 90fdf07aa9 Makefile.am: require automake 1.9
With heavy use of conditionals, I broke Makefile.am for the ancient
automake version 1.6.  Instead of supporting this automake version
forever, I'm removing support for it now.  Since automake isn't
required on the build machine, nobody should have a serious problem
with that.
2008-10-18 07:21:04 +02:00
Max Kellermann b2839540d6 Makefile.am: fix automake 1.6 errors
When building with the ancient automake 1.6 version, the following
errors occur:

 Makefile.am:5: invalid variable `doc_DATA'
 doc/Makefile.am:2: invalid variable `doc_DATA'

This patches renames some internal variables.
2008-10-16 15:00:02 +02:00
Max Kellermann c0a9ef980f removed the "bs" build scripts
autotools are somewhat ugly, but that doesn't justify duplicating its
effort with another complex build system.
2008-10-16 15:00:00 +02:00
Richard Brown 50e038d1ef Makefile.am: don't override $(docdir)
Makefile.am sets docdir = $(prefix)/share/doc/$(PACKAGE). This
overrides the setting specified in ./configure --docdir.
2008-10-14 18:32:46 +02:00
Eric Wong 016af692d9 autotools: tidy up make dist
* Add missing headers in Makefile.am
* remove mp4ff.dsp (Win32 crap)
* Add scripts, m4, bs, autogen.sh to allow for hotfixes by the
  SCM-challenged.  (downloading the source via git is NOT a
  lightweight operation for everybody).
2008-10-06 18:54:12 +02:00
Max Kellermann 9899ab5ac2 properly configure the M4 macro directory
Add information about the M4 macro dir ./m4/ to both configure.ac and
Makefile.am.
2008-09-23 22:38:46 +02:00
Eric Wong b79f6b882a Merge branches/ew r7104
thread-safety work in preparation for rewrite to use pthreads

Expect no regressions against trunk (r7078), possibly minor
performance improvements in update (due to fewer heap
allocations), but increased stack usage.

Applied the following patches:

* maxpath_str for reentrancy (temporary fix, reverted)
* path: start working on thread-safe variants of these methods
* Re-entrancy work on path/character-set conversions
* directory.c: exploreDirectory() use reentrant functions here
* directory/update: more use of reentrant functions + cleanups
* string_toupper: a strdup-less version of strDupToUpper
* get_song_url: a static-variable-free version of getSongUrl()
* Use reentrant/thread-safe get_song_url everywhere
* replace rmp2amp with the reentrant version, rmp2amp_r
* Get rid of the non-reentrant/non-thread-safe rpp2app, too.
* buffer2array: assert strdup() returns a usable value in unit tests
* replace utf8ToFsCharset and fsCharsetToUtf8 with thread-safe variants
* fix storing playlists w/o absolute paths
* parent_path(), a reentrant version of parentPath()
* parentPath => parent_path for reentrancy and thread-safety
* allow "make test" to automatically run embedded unit tests
* remove convStrDup() and maxpath_str()
* use MPD_PATH_MAX everywhere instead of MAXPATHLEN
* path: get rid of appendSlash, pfx_path and just use pfx_dir
* get_song_url: fix the ability to play songs in the top-level music_directory

git-svn-id: https://svn.musicpd.org/mpd/trunk@7106 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2007-12-28 02:56:25 +00:00
Eric Wong 0c24fc0cb3 add sparse-check target to makefiles
sparse is a semantic parser developed for the Linux kernel,
but works for any project written (ANSI) C.

You can get sparse via git here:
git clone git://www.kernel.org/pub/scm/devel/sparse/sparse.git

git-svn-id: https://svn.musicpd.org/mpd/trunk@4377 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2006-07-17 00:15:31 +00:00
Warren Dukes 7c861b334b don't generate .bz2 for make dist
git-svn-id: https://svn.musicpd.org/mpd/trunk@493 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-03-26 05:13:21 +00:00
Warren Dukes b2abb5778b make dist generate a bzip2
git-svn-id: https://svn.musicpd.org/mpd/trunk@256 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-03-12 15:29:37 +00:00
Warren Dukes a3fded301e autogen.sh updates
git-svn-id: https://svn.musicpd.org/mpd/trunk@255 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-03-12 15:26:41 +00:00
Warren Dukes d35747a40c import from SF CVS
git-svn-id: https://svn.musicpd.org/mpd/trunk@1 09075e82-0dd4-0310-85a5-a0d7c8717e4f
2004-02-23 23:41:20 +00:00