aboutsummaryrefslogtreecommitdiffstats
path: root/src (unfollow)
Commit message (Collapse)AuthorFilesLines
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
2009-09-06openal output pluginSerge Ziryukin2-0/+271
2009-08-30decoder/sidplay: support seekingMike Dawson1-3/+34
2009-08-30decoder/sidplay: implemented songlength databaseMike Dawson1-0/+87
[mk: added autoconf test; fixed songlen_data_size type]
2009-08-30decoder/sidplay: subtunesMike Dawson1-8/+125
2009-08-26decoder/mpg123: new decoder plugin based on libmpg123Max Kellermann2-0/+214
Still missing: - seeking - tags - streaming - encodings other than MPG123_ENC_SIGNED_16
2009-08-25command: add "findadd" command.Anton Khirnov3-0/+51
2009-08-25decoder/vorbis: open file in "binary" modeGunnar Roth1-1/+1
fopen change for win32 in tag dup of vorbis win32 adaption for head changes
2009-08-24decoder/vorbis: faster tag scanning with ov_test_callback()Rasmus Steinke1-1/+1
using ov_test_callback with function CALLBACKS_STREAMONLY will cause scanning to stop after the comment field. ov_open (and ov_test) default to CALLBACKS_DEFAULT which scans the file structure causing a huge slowdown. The speed improvement is huge: It scanned my files around 10x faster This procedure has been recommended by monthy (main vorbis developer) and was said to be safe for scanning files.