aboutsummaryrefslogtreecommitdiffstats
path: root/src (unfollow)
Commit message (Collapse)AuthorFilesLines
2009-10-12text_input_stream: input_stream wrapper for reading text filesMax Kellermann2-0/+140
2009-10-12song: moved code to song_update.cMax Kellermann2-147/+172
Moved all the code which depends on the decoder plugins to a separate source. That allows leaner test programs.
2009-10-11decoder_thread: removed redundant NULL assignmentsMax Kellermann1-2/+1
The while() clause resets the "plugin" variable. We don't need to reset it at the end of the loop body.
2009-10-11input_stream: use "goffset" instead of "off_t"Max Kellermann10-25/+25
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.
2009-10-11riff, aiff: fixed "limited range" gcc warningMax Kellermann2-10/+10
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-11decoder_thread: change the fallback decoder name to "mad"Max Kellermann1-1/+1
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-11input/curl: don't abort if a packet has only metadataMax Kellermann1-20/+22
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-11input/curl: moved code to fill_buffer()Max Kellermann1-27/+40
2009-10-08player_thread: get "elapsed" from audio outputsMax Kellermann5-4/+42
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-08player_thread: always clear player_control.next_song on returnMax Kellermann1-5/+3
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-08player_control: eliminate PLAYER_COMMAND_PLAYMax Kellermann3-5/+1
Sending PLAYER_COMMAND_STOP followed by PLAYER_COMMAND_QUEUE does the same. PLAYER_COMMAND_PLAY is redundant.
2009-10-08player_control: added several assertions on pc.next_song==NULLMax Kellermann1-0/+6
After some of the commands, the player thread must have reset the pc.next_song attribute.
2009-10-08player_control: no CamelCaseMax Kellermann9-62/+79
2009-10-08player_control: clear errored_song in clearPlayerError()Max Kellermann1-1/+2
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-08player_control: bundle "get" functions in pc_get_status()Max Kellermann4-34/+46
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-08player_control: allocate getPlayerErrorStr() resultMax Kellermann3-21/+23
This lets us eliminate the static fixed-size buffer.
2009-10-08playlist_control: "previous" really plays the previous songMax Kellermann3-39/+12
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-08input_stream: include config.h for AC_SYS_LARGEFILE macrosMax Kellermann1-0/+2
AC_SYS_LARGEFILE defines macros for config.h. If we don't include config.h, we don't get large file support.
2009-10-08decoder_api: document all function parametersMax Kellermann1-27/+73
2009-10-08state_file: save only if something has changedMax Kellermann8-0/+86
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-06output_state: no CamelCaseMax Kellermann3-6/+6
2009-09-30command: range support for "delete"Max Kellermann3-3/+38
2009-09-30playlist_edit: moved code to playlist_delete_internal()Max Kellermann1-10/+19
2009-09-30decoder/ffmpeg: use the "artist" tag if "author" is not presentMax Kellermann1-2/+5
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-30decoder/faad: skip assertion failure on large ID3 tagsMax Kellermann1-2/+6
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-30decoder_buffer: added function decoder_buffer_skip()Max Kellermann2-0/+36
2009-09-28Make the sidplay decoder filter configurable.Tony1-1/+5
2009-09-25automatically update the database with Linux inotifyMax Kellermann7-0/+792
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-25update: added missing stdbool.h includeMax Kellermann1-0/+2
2009-09-25command: relax requirements for unquoted wordsMax Kellermann3-6/+75
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-24command: added command "rescan"Max Kellermann7-27/+67
"rescan" is the same as "update", but it discards existing songs in the database.
2009-09-24configure.ac: rename HAVE_CURL to ENABLE_CURLMax Kellermann2-3/+3
2009-09-24conf: handle fatal errors with GErrorMax Kellermann3-54/+115
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-24conf: splitted function config_param_free()Max Kellermann1-4/+11
2009-09-24cmdline: handle fatal errors with GErrorMax Kellermann3-5/+30
Don't call g_error(), which will abort the process and dump core.
2009-09-24listen: handle fatal errors with GErrorMax Kellermann3-10/+29
Don't call g_error(), which will abort the process and dump core.
2009-09-24update: splitted update.c into several sourcesMax Kellermann5-770/+987
2009-09-24update: pass const string to update_enqueue()Max Kellermann3-14/+20
Duplicate the path string within update.c, do not expect an allocated string as parameter.
2009-09-24update: renamed directory_update_init() to update_enqueue()Max Kellermann4-4/+4
2009-09-24decoder/sidplay: free songlength data blob in error handlerMax Kellermann1-3/+4
When parsing the songlength database fails, the code forgot to free the memory allocated by the raw file data.
2009-09-24decoder/sidplay: moved code to sidplay_load_songlength_db()Max Kellermann1-29/+36
2009-09-24decoder/sidplay: free GError objectsMax Kellermann1-0/+2
The caller is responsible fro freeing GError objects. That g_error_free() call was missing in two places.
2009-09-24decoder/sidplay: pass GError** to g_file_get_contents()Max Kellermann1-1/+2
The error handler dereferences GError*, but did not retrieve that object from g_file_get_contents().
2009-09-20cmdline: removed options --create-db and --no-create-dbMax Kellermann3-27/+5
Both options are deprecated, and should not be used anymore. Many users get confused by their presence.
2009-09-20output/osx: fix the OS X 10.6 buildPatrik Weiskircher1-0/+1
Include CoreServices/CoreServices.h.
2009-09-20input/mms: fix G_LOG_DOMAIN valueSerge Ziryukin1-1/+1
2009-09-20output/osx: fix the OS X 10.6 buildPatrik Weiskircher1-0/+1
Include CoreServices/CoreServices.h.
2009-09-10decoder/vorbis: revert "faster tag scanning with ov_test_callback()"Max Kellermann1-1/+1
This patch made ov_time_total() unusable, and MPD did not know the duration of songs.
2009-09-07output/openal: support OpenAL plugin on Mac OS XSerge Ziryukin1-0/+6
2009-09-06output/openal: fix default device nameSerge Ziryukin1-3/+3