- 12 Oct, 2009 3 commits
-
-
Max Kellermann authored
Based on this API, we will add parsers for EXTM3U, PLS, ASX, last.fm radio and others. There is no integration into the MPD core yet. Right now, we have a command line test program. This is work in progress.
-
Max Kellermann authored
-
Max Kellermann authored
Moved all the code which depends on the decoder plugins to a separate source. That allows leaner test programs.
-
- 11 Oct, 2009 7 commits
-
-
Max Kellermann authored
The while() clause resets the "plugin" variable. We don't need to reset it at the end of the loop body.
-
Max Kellermann authored
The "off_t" type may change when you enable or disable large file support on 32 bit platforms. This caused severe ABI problems within MPD when we enabled LFS for the first time: two sources included config.h and sys/types.h in different order, and had different off_t sizes - leading to memory corruption because of ABI incompatibility. This patch attempts to get rid of all public "off_t" uses: it removes "off_t" from the input_stream ABI/API, and switches to GLib's 64 bit "goffset" type. This may hurt 32 bit embedded platforms a tiny bit, but that's not even measurable.
-
Max Kellermann authored
Conflicts: NEWS configure.ac
-
Max Kellermann authored
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.
-
Max Kellermann authored
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.
-
Max Kellermann authored
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).
-
Max Kellermann authored
-
- 10 Oct, 2009 1 commit
-
-
Avuton Olrich authored
-
- 09 Oct, 2009 1 commit
-
-
Max Kellermann authored
-
- 08 Oct, 2009 13 commits
-
-
Max Kellermann authored
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.
-
Max Kellermann authored
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.
-
Max Kellermann authored
Sending PLAYER_COMMAND_STOP followed by PLAYER_COMMAND_QUEUE does the same. PLAYER_COMMAND_PLAY is redundant.
-
Max Kellermann authored
After some of the commands, the player thread must have reset the pc.next_song attribute.
-
Max Kellermann authored
-
Max Kellermann authored
Without the player error code, it errored_song variable is not used, and should be cleared, to avoid invalid access in pc_song_deleted().
-
Max Kellermann authored
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.
-
Max Kellermann authored
This lets us eliminate the static fixed-size buffer.
-
Max Kellermann authored
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".
-
Max Kellermann authored
AC_SYS_LARGEFILE defines macros for config.h. If we don't include config.h, we don't get large file support.
-
Max Kellermann authored
-
Alam Arias authored
This fixes mpg123 support.
-
Max Kellermann authored
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.
-
- 06 Oct, 2009 1 commit
-
-
Max Kellermann authored
-
- 03 Oct, 2009 3 commits
-
-
Max Kellermann authored
Conflicts: NEWS configure.ac
-
Avuton Olrich authored
-
Avuton Olrich authored
-
- 30 Sep, 2009 5 commits
-
-
Max Kellermann authored
-
Max Kellermann authored
-
Max Kellermann authored
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".
-
Max Kellermann authored
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.
-
Max Kellermann authored
-
- 28 Sep, 2009 2 commits
- 25 Sep, 2009 2 commits
-
-
Max Kellermann authored
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.
-
Max Kellermann authored
-
- 24 Sep, 2009 2 commits
-
-
Max Kellermann authored
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.
-
Max Kellermann authored
"rescan" is the same as "update", but it discards existing songs in the database.
-