Commit Graph

4560 Commits

Author SHA1 Message Date
Max Kellermann
71f881d5cb Merge branch 'v0.15.x'
Conflicts:

	NEWS
	configure.ac
2009-10-11 23:25:27 +02:00
Max Kellermann
9a3f5ff977 riff, aiff: fixed "limited range" gcc warning
On 32 bit systems with large file support enabled (i.e. "sizeof(off_t)
> sizeof(size_t)") gcc emits a warning because a size_t cast to off_t
can never become negative.
2009-10-11 23:15:38 +02:00
Max Kellermann
a1d868eb56 decoder_thread: change the fallback decoder name to "mad"
When there is no Content-Type response header, try the "mad" decoder
plugin.  It uesd to be named "mp3", and we forgot to change the
fallback name in decoder_thread.c.
2009-10-11 23:14:16 +02:00
Max Kellermann
af92b1c2d8 input/curl: don't abort if a packet has only metadata
When a received chunk of data has only icy-metadata, there was no
usable data left for input_curl_read() to return, and thus it returned
0 bytes.  "0" however is a special value for "end of file" or
"error".  This patch makes input_curl_read() read more data from the
socket, until the read request can be fulfilled (or until there's
really EOF).
2009-10-11 23:13:49 +02:00
Max Kellermann
016558093b input/curl: moved code to fill_buffer() 2009-10-11 23:09:38 +02:00
Avuton Olrich
d4e3fb4330 configure: Fix up the recorder plugin configure. 2009-10-10 11:36:22 -07:00
Max Kellermann
57f69a2915 doc/protocol.xml: "addid" with negative position is deprecated 2009-10-09 10:18:02 +02:00
Max Kellermann
448aefaace player_thread: get "elapsed" from audio outputs
Tracking the "elapsed" time from the chunks which we have sent to the
output pipe is very imprecise: since we have implemented the music
pipe, we're sending large number of chunks at once, giving the
"elapsed" time stamp a resolution of usually more than a second.

This patch changes the source of this information to the outputs.  If
a chunk has been played by all outputs, the "elapsed" time stamp is
updated.

The new command PLAYER_COMMAND_REFRESH makes the player thread update
its status information: it tells the outputs to update the chunk time
stamp.  After that, player_control.elapsed_time is current.
2009-10-08 22:09:25 +02:00
Max Kellermann
47b5e73a15 player_thread: always clear player_control.next_song on return
pc.next_song might be non-NULL even if player.queued==true: when the
decoder has started decoding the next song, but the result hasn't been
read yet.
2009-10-08 22:09:25 +02:00
Max Kellermann
d6a6f428b3 player_control: eliminate PLAYER_COMMAND_PLAY
Sending PLAYER_COMMAND_STOP followed by PLAYER_COMMAND_QUEUE does the
same.  PLAYER_COMMAND_PLAY is redundant.
2009-10-08 21:22:31 +02:00
Max Kellermann
fd3934b849 player_control: added several assertions on pc.next_song==NULL
After some of the commands, the player thread must have reset the
pc.next_song attribute.
2009-10-08 21:17:00 +02:00
Max Kellermann
e5857cb722 player_control: no CamelCase 2009-10-08 21:12:57 +02:00
Max Kellermann
2ec89c6304 player_control: clear errored_song in clearPlayerError()
Without the player error code, it errored_song variable is not used,
and should be cleared, to avoid invalid access in pc_song_deleted().
2009-10-08 21:00:16 +02:00
Max Kellermann
76953a9748 player_control: bundle "get" functions in pc_get_status()
The new player_status struct replaces a bunch of playerGetX()
functions.  When we add proper locking to the player_control struct,
we will only need to lock once for the "status" command.
2009-10-08 20:48:07 +02:00
Max Kellermann
128a5fa4a5 player_control: allocate getPlayerErrorStr() result
This lets us eliminate the static fixed-size buffer.
2009-10-08 20:45:38 +02:00
Max Kellermann
a5960c20cc playlist_control: "previous" really plays the previous song
No more CD player emulation.  The current behaviour of "previous" is
difficult for a client to predict, because it does not definitely know
the current position within the song.  If a client wants to restart
the current song, it can always send "playid".
2009-10-08 20:33:50 +02:00
Max Kellermann
aa71ce4cd5 input_stream: include config.h for AC_SYS_LARGEFILE macros
AC_SYS_LARGEFILE defines macros for config.h.  If we don't include
config.h, we don't get large file support.
2009-10-08 16:57:55 +02:00
Max Kellermann
16c981d425 decoder_api: document all function parameters 2009-10-08 15:39:45 +02:00
Alam Arias
81e56705ad configure.ac: build with large file support by default
This fixes mpg123 support.
2009-10-08 15:24:59 +02:00
Max Kellermann
ecb118f1ed state_file: save only if something has changed
If nothing has changed since the last save, don't save the state
file.  Saving will spin up the hard drive, which is undesirable on
hosts where MPD is idling in background.
2009-10-08 15:22:39 +02:00
Max Kellermann
1e663b1869 output_state: no CamelCase 2009-10-06 10:30:10 +02:00
Max Kellermann
7013f9fc31 Merged release 0.15.4 from branch 'v0.15.x'
Conflicts:
	NEWS
	configure.ac
2009-10-03 16:17:02 +02:00
Avuton Olrich
d6d4de1123 Modify version string to post-release version 0.15.5~git 2009-10-03 05:44:26 -07:00
Avuton Olrich
325e380b8e mpd version 0.15.4 2009-10-03 05:44:26 -07:00
Max Kellermann
31cabc751d command: range support for "delete" 2009-09-30 23:13:13 +02:00
Max Kellermann
0478a8e288 playlist_edit: moved code to playlist_delete_internal() 2009-09-30 23:10:15 +02:00
Max Kellermann
65693d057b decoder/ffmpeg: use the "artist" tag if "author" is not present
Usually, we read our "artist" tag from ffmpeg's "author" tag.  In some
cases however (e.g. APE), this tag is named "artist".  This patch
implements a fallback: if no "author" is found, MPD tries to use
"artist".
2009-09-30 15:41:43 +02:00
Max Kellermann
b0f9a1454a decoder/faad: skip assertion failure on large ID3 tags
When the ID3 tag in an AAC file is larger than the current buffer, the
function decoder_buffer_consume() aborts.  By using the new function
decoder_buffer_skip() instead, we can safely skip the ID3 tag.
2009-09-30 15:22:47 +02:00
Max Kellermann
efb290073b decoder_buffer: added function decoder_buffer_skip() 2009-09-30 15:22:36 +02:00
Tony
1039d57251 Add the sidplay filter param to doc/mpdconf.example. 2009-09-28 11:59:55 +02:00
Tony
934a38f976 Make the sidplay decoder filter configurable. 2009-09-28 11:59:55 +02:00
Max Kellermann
8f261af5c1 automatically update the database with Linux inotify
This patch implements a light-weight inotify library, and watches all
directories below the music directory.  It updates all directories
where files changed after a delay of 5 seconds.
2009-09-25 18:32:00 +02:00
Max Kellermann
3e8bdb9384 update: added missing stdbool.h include 2009-09-25 16:43:33 +02:00
Max Kellermann
7542ec4f20 command: relax requirements for unquoted words
Allow most printable characters in unquoted words.  The tokenizer
patch introduced very strict requirements for command parameters -
those were undocumented, and we're reverting the strictness now.
2009-09-25 00:53:15 +02:00
Max Kellermann
89ba540e6d command: added command "rescan"
"rescan" is the same as "update", but it discards existing songs in
the database.
2009-09-24 21:55:40 +02:00
Max Kellermann
47ab2ad6f3 configure.ac: rename HAVE_CURL to ENABLE_CURL 2009-09-24 21:40:07 +02:00
Max Kellermann
06d5d4b03e conf: handle fatal errors with GError
Don't call g_error(), which will abort the process and dump core.

This patch does not affect all the config_get_X() functions.  These
need some more refactoring.
2009-09-24 21:40:07 +02:00
Max Kellermann
f3739a73af conf: splitted function config_param_free() 2009-09-24 21:40:05 +02:00
Max Kellermann
1b227e0145 cmdline: handle fatal errors with GError
Don't call g_error(), which will abort the process and dump core.
2009-09-24 21:40:05 +02:00
Max Kellermann
308b3f2337 listen: handle fatal errors with GError
Don't call g_error(), which will abort the process and dump core.
2009-09-24 21:40:04 +02:00
Max Kellermann
1e56107967 update: splitted update.c into several sources 2009-09-24 21:39:46 +02:00
Max Kellermann
b0e1a3d34c update: pass const string to update_enqueue()
Duplicate the path string within update.c, do not expect an allocated
string as parameter.
2009-09-24 21:39:43 +02:00
Max Kellermann
1cc4914b24 update: renamed directory_update_init() to update_enqueue() 2009-09-24 17:57:39 +02:00
Max Kellermann
aec18c74ec decoder/sidplay: free songlength data blob in error handler
When parsing the songlength database fails, the code forgot to free
the memory allocated by the raw file data.
2009-09-24 10:17:58 +02:00
Max Kellermann
4729d10bb2 decoder/sidplay: moved code to sidplay_load_songlength_db() 2009-09-24 10:14:05 +02:00
Max Kellermann
a8af3ce0dd decoder/sidplay: free GError objects
The caller is responsible fro freeing GError objects.  That
g_error_free() call was missing in two places.
2009-09-24 10:05:21 +02:00
Max Kellermann
d657be33ba decoder/sidplay: pass GError** to g_file_get_contents()
The error handler dereferences GError*, but did not retrieve that
object from g_file_get_contents().
2009-09-24 10:04:24 +02:00
Max Kellermann
a86f9b8035 cmdline: removed options --create-db and --no-create-db
Both options are deprecated, and should not be used anymore.  Many
users get confused by their presence.
2009-09-20 23:31:35 +02:00
Patrik Weiskircher
32f212cb86 output/osx: fix the OS X 10.6 build
Include CoreServices/CoreServices.h.
2009-09-20 23:30:37 +02:00
Serge Ziryukin
82c6c13780 input/mms: fix G_LOG_DOMAIN value 2009-09-20 23:28:29 +02:00