Commit Graph

4348 Commits

Author SHA1 Message Date
Max Kellermann 46c19b8249 song_print: send song modification time to client
Added the response line "Last-Modified", which sends the modification
time in ISO 8601.  The same was already implemented for playlists.
2009-07-05 08:40:29 +02:00
Max Kellermann 077b24d62d configure.ac: increased protocol version to 0.16.0
We're going to extend the protocol now.  Update the protocol version.
2009-07-05 08:40:26 +02:00
Max Kellermann 111c4dac63 song_save: use GError for error handling 2009-07-05 08:29:52 +02:00
Max Kellermann 69ff9d757f song_save: no CamelCase
Renamed functions.
2009-07-05 08:29:50 +02:00
Max Kellermann 0c2ab17e91 sticker: use GError for error handling 2009-07-05 08:29:47 +02:00
Max Kellermann 12e82b9e33 test: added program "run_filter"
This program runs filter plugins in an isolated environment.
2009-07-05 06:54:48 +02:00
Max Kellermann 644fc48776 conf: registered option "filter"
Add this option to the user's manual.
2009-07-05 06:54:45 +02:00
Max Kellermann 666b1fae79 volume: removed unused macros
Removed VOLUME_MIXER_OSS and VOLUME_MIXER_ALSA.
2009-07-03 18:51:01 +02:00
Max Kellermann e3c436f411 filter: added "volume" plugin
The "volume" filter plugin will replace the current software volume
code.  One "volume" filter may be attached to each output device.
This will allow the user to use hardware mixers for some devices, and
software mixers for other devices at the same time.

Currently, neither the filter API nor the "volume" plugin is
integrated into MPD.
2009-07-03 01:06:17 +02:00
Max Kellermann 48f3e13bec filter: added new plugin API for filters
The filter API allows us to implement software volume as a pluggable
filter, and we will be able to integrate libraries like SoX.
2009-07-03 01:02:53 +02:00
Max Kellermann a923080d9b conf: added config_quark()
This GQuark will be used for GErrors related to malformed
configuration.
2009-07-03 01:01:50 +02:00
Max Kellermann 706614b0d7 playlist_state: don't save "current" song when none is set
This patch fixes an assertion failure:

 Assertion `order < queue->length' failed.

This happens when the state file is saved, when there is no "current"
song: current==-1, and queue_order_to_position(-1) is called.
2009-06-29 22:27:57 +02:00
Christopher Zimmerman a641f562f3 playlist_state: save state when stopped
At the moment mpd doesn't store or restore the current track to/from
its state file when the daemon is stopped/started while in 'stopped'
state.  I believe the preferred behaviour would be to store and
restore the current track even when the daemon is in stopped state
when shutting down.

I made a small patch to adapt this behaviour. If you believe this is
not the preferred behaviour, maybe this should be realized as a
configuration option. I'm not sure how to do this, but made a small
comment, where one would have to put the option.
2009-06-26 09:26:12 +02:00
Max Kellermann fe96bdf7e6 autogen.sh: don't check for autoconf <2.60
configure.ac refuses to run with autoconf older than 2.60, don't
bother to test for those versions in autogen.sh.
2009-06-25 11:53:34 +02:00
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 eacd604518 ffmpeg: support multiple tags
Call av_metadata_get() in a loop.
2009-06-25 08:43:59 +02:00
Max Kellermann 637c6a1850 conf: log unused/unknown block parameters 2009-06-25 08:42:25 +02:00
Max Kellermann 0cbc4012e8 conf: added "used" flag to struct block_param 2009-06-25 08:41:23 +02:00
Max Kellermann 8074b82653 conf: detect duplicate parameters in config_add_block_param()
Moved the check from config_get_block_param().  Detect the duplicate
parameter when it's added, not when it's queried.
2009-06-25 08:41:09 +02:00
Max Kellermann 5d583c9b2d conf: make get_bool() return a bool
Instead of returning an artificial three-state integer, return a
"success" value and put the boolean value into a "bool" pointer.
That's a little bit more overhead, but an API which looks more
natural.
2009-06-25 08:40:02 +02:00
Max Kellermann 093e900d44 conf: moved code from get_bool() to string_array_contains() 2009-06-25 08:39:53 +02:00
Max Kellermann 8965b66ce4 conf: register configuration options statically
Initialize the config_entries array at compile time.  This is not only
faster, but also smaller.
2009-06-25 08:39:44 +02:00
Max Kellermann 146add67c2 conf: removed config_add_param()
This function is unused.
2009-06-25 08:39:01 +02:00
Max Kellermann 34e9a0a960 conf: replace "mask" bit field with two "bool" variables
Due to padding, this takes the same amount of memory.
2009-06-25 08:38:51 +02:00
Max Kellermann b1e95b1fa8 volume: removed support for legacy mixer configuration
The top-level "mixer_device" and "mixer_control" options have been
deprecated by MPD 0.15, and it's safe to remove them in MPD 0.16.
2009-06-25 08:37:51 +02:00
Max Kellermann ce072b89d2 command: added new "status" line with more precise "elapsed time" 2009-06-25 08:37:34 +02:00
Daniel Seuthe 4ffd9bce5a Preamp for missing replay-gain 2009-06-25 08:36:35 +02:00
Avuton Olrich f16d05c633 Modify version string to post-release version 0.16~git 2009-06-24 17:34:27 -07:00
Avuton Olrich 8758e97794 mpd version 0.15 2009-06-23 18:43:57 -07:00
Max Kellermann 2536b0da83 decoder_thread: reopen the stream after file_decode() has failed
When decoding a local file, the decoder thread tries to run all
matching decoders, until one succeeds.  Both file_decode() and
stream_decode() can decode a stream, but MPD closes the stream before
calling file_decode().  Problem is: when this decoder fails, and the
next's stream_decode() method is invoked, the input_stream is still
closed.  This patch reopens it.
2009-06-19 08:09:13 +02:00
Max Kellermann d5ddecb15a listen: bind() failure on secondary address is non-fatal
Several users had problems with binding MPD to "localhost".  The cause
was duplicate /etc/hosts entries: the resolver library returns
127.0.0.1 twice, and of course, MPD attempts to bind to "both" of
them.  This patch makes failures non-fatal, given that at least one
address was bound successfully.  This is a workaround; users should
rather fix their /etc/hosts file.
2009-06-10 08:01:07 +02:00
Max Kellermann 5bb8a5eeef listen: renamed "error" to "error_r" in listen_add_host() 2009-06-10 07:51:14 +02:00
Max Kellermann 7dec2a9bcb listen: print debug message before bind()
Dump each socket address before binding to it.
2009-06-10 07:48:50 +02:00
Max Kellermann 5372ee406a doc: refer to command_list_ok_begin, not command_list_begin
list_OK is returned only after command_list_ok_begin.
2009-06-09 09:19:42 +02:00
Max Kellermann 08732ce189 doc: fixed a typo in the protocol documentation 2009-06-09 09:17:22 +02:00
Max Kellermann 74334a516c ffmpeg: moved code to ffmpeg_copy_metadata() 2009-06-08 08:45:54 +02:00
Max Kellermann f5d4079d11 ffmpeg: removed "new metadata api" warning
This warning is useless.  I assume the author added it for debugging
purposes.
2009-06-08 08:41:07 +02:00
Max Kellermann faaf9dafe1 client: check "expired" flag again in client_write_output()
When client_defer_output() aborts the connection to the client,
client_write_output() called client_write_deferred() anyway.  This
caused an assertion failure.  Fix it by checking for the "expired"
flag again after client_defer_output() returns.
2009-06-04 08:59:33 +02:00
Max Kellermann 427dd81678 client: added assertions on channel!=NULL
I'm hunting down a bug where client->channel==NULL during I/O
operations.  These new assertions help avoid this kind of bug in the
future.
2009-06-04 08:42:02 +02:00
Max Kellermann ed475718e6 decoder_plugin: corrected outdated API documentation 2009-06-04 08:22:43 +02:00
Max Kellermann 70d7c79546 conf: make config_param.num_block_params unsigned 2009-06-03 06:55:09 +02:00
Max Kellermann ddc2694419 conf: eliminated CamelCase
Renamed all remaining CamelCase functions.
2009-06-03 06:55:04 +02:00
Max Kellermann 5c5d39b012 doc: mark the "User's Manual" as incomplete 2009-06-02 21:09:46 +02:00
Max Kellermann 3483c891dc doc: added Developer's Manual
Just a start...
2009-06-02 21:09:45 +02:00
Max Kellermann 516e52c67b doc: added "since MPD version" to commands
Document which commands were introduced after MPD 0.13.
2009-06-02 20:47:00 +02:00
Max Kellermann 9ee53bc76e player_thread: check pipe size again before exiting
When the decoder is finished, break out of the player loop only after
another player.pipe check.  We did check the pipe size a few lines
above, but that check was kind of racy.
2009-06-02 08:40:28 +02:00
Max Kellermann aa7f5dec87 player_thread: don't leak empty music_chunks
When a music_chunk only contains a tag but no PCM data, play_chunk()
returns true without freeing the chunk.  The caller now assumes that
the chunk is moved into some music_pipe and does not bother to free it
either.
2009-06-02 08:40:28 +02:00
Max Kellermann 1800bde303 player_thread: reinitialize music_buffer in !NDEBUG
To check for leaked music_chunk objects, free the music buffer on
CLOSE_AUDIO.  This invokes an assertion check which ensures that all
chunks have been returned to the buffer.
2009-05-29 23:34:51 +02:00
Max Kellermann a90c4e5184 output_all: explicitly return "true" from audio_output_all_play()
Instead of returning the local variable "ret" which is always true at
this point, hard-code the "true" return value, because that might be
more readable.
2009-05-29 23:04:45 +02:00
Mathieu Rochette 0dedfe7ddc input/file: log message on error
If a file is removed the library, next time mpd will try to play it it
will result in an error 'ERROR: problems decoding some/file.ogg'.
Nothing is written in log files (verbose mode or not)

[mk: append strerror(errno)]
2009-05-28 23:46:19 +02:00