aboutsummaryrefslogtreecommitdiffstats
path: root/src (unfollow)
Commit message (Collapse)AuthorFilesLines
2009-04-01configure.ac: renamed --enable-oggvorbis to --enable-vorbisMax Kellermann1-1/+1
2009-04-01command: added command "sticker find"Max Kellermann1-0/+41
This command allows clients to search for stickers with a specified name.
2009-04-01Move db_get_song into sub-handlers. (FReq 2112)Eric Wollesen1-9/+27
db_get_song was being called once for all sub-handlers, but with the addition of the find command, we don't have a URI coming in, so doing db_get_song once won't work anymore. [mk: fixed initialization order]
2009-04-01song_sticker: added song_sticker_find()Max Kellermann2-0/+76
This is a wrapper for sticker_find(), which looks up the song object.
2009-04-01sticker: added sticker_find()Max Kellermann2-0/+85
sticker_find() finds stickers with the specified name.
2009-04-01directory: added directory_lookup_song()Max Kellermann3-25/+41
Moved code from db_get_song().
2009-04-01directory: renamed directory_get_directory()Max Kellermann3-6/+13
Renamed directory_get_directory() to directory_lookup_directory(). Added API documentation.
2009-04-01sticker_print: new library for sending stickers to a clientMax Kellermann3-10/+85
2009-04-01sticker: pass const sticker to sticker_foreach()Max Kellermann2-4/+4
2009-04-01client, event_pipe: explicitly ignore the write() resultMax Kellermann2-2/+2
On both locations, the result of write() can be ignored safely. In event_pipe_emit_fast(), that can only be "EAGAIN", which means that the pipe buffer is full - no further notification required. In client_init(), that would be a fatal connection error, which would be caught by the next event. This patch fixes gcc warnings.
2009-04-01socket_util: fixed format warningMax Kellermann1-1/+1
g_set_error() is a printf-like function, and expects a format string. Using the return value of gai_strerror() is unsafe.
2009-04-01flac: fixed "unused variable" warning without libcueMax Kellermann1-2/+2
Move the declaration of "i" into the "for" loop.
2009-03-31Tag subtracks according to "cuesheet" vorbis comment valueJochen Keil1-4/+32
Cuesheets are often saved as vorbis comment flac files (CUESHEET=.. case doesn't matter). We can parse this now and use the information to tag the subtracks (from the embedded cuesheets).
2009-03-31track length is computed correctly nowJochen Keil1-2/+1
2009-03-31free previously allocated flac metadata objectJochen Keil1-0/+1
2009-03-31remove old commented codeJochen Keil1-8/+0
2009-03-31Build tags from information in cue sheetsJochen Keil2-0/+296
With these methods a tag struct can be created from the cdtext information in a cue sheet. The methods depend on a cue parsing library. Reading from strings (char*) as well as from a file (FILE*) is supported.
2009-03-31do not consider single mode with "next" commandRomain Bignon1-0/+7
This is a little ugly, but as nextSongInPlaylist is both called when queued is update (in case playlist ended) and for user "next" command, there isn't any other (simple) solution
2009-03-30client: group static function declarations together.Avuton Olrich1-6/+5
2009-03-30queue_print: queue_print_song_info() is not necessry for export.Avuton Olrich2-13/+9
2009-03-30queue: queue_generate_id() is not necessary for export.Avuton Olrich2-7/+4
2009-03-30player_control: remove unused function playerCurrentDecodeSong().Avuton Olrich2-10/+0
2009-03-30conf: config_param_free() not necessary for export.Avuton Olrich2-3/+1
2009-03-30command: command_error() is not necessary for export.Avuton Olrich2-4/+1
2009-03-30client: client_write() does not necessary for export.Avuton Olrich2-6/+4
2009-03-30implemented the 'consume' modeRomain Bignon7-15/+82
Consume mode removes each song played
2009-03-28Bugfix for time/offset in flac pluginJochen Keil1-3/+3
Previous cast to float didn't have any effect because one value is uint and the other is a floating type but the number itself is even.. This caused some tracks to end before they were really at an end.
2009-03-27mixer: assert that the new volume value is validMax Kellermann3-7/+2
Added an assertion in mixer_set_volume(). Removed the range checks from the ALSA and OSS plugins.
2009-03-27mpcdec: changed plugin name to "mpcdec"Max Kellermann1-3/+3
The "mpcdec" plugin is based on the libmpcdec library.
2009-03-27mpcdec: support the new libmpcdec SV8 APIMax Kellermann1-14/+90
2009-03-27mpcdec: no CamelCaseMax Kellermann1-57/+65
Renamed variables and functions.
2009-03-27tag_pool: use memcmp() instead of strcmp() for non-terminated stringMax Kellermann1-1/+3
The strings passed to tag_pool_get_item() are not null-terminated, and the caller passes the string length. Don't assume it is null-terminated anyway by using strcmp().
2009-03-27tag_pool: use size_t for string lengthMax Kellermann2-4/+4
2009-03-27event_pipe can only be non-blocking if !WIN32Sean McNamara1-0/+2
2009-03-27More debugging for Win32 ioctlsocket: complain if it's not a WinsockSean McNamara1-3/+12
socket, because there is no ioctl for non-sockets on Windows
2009-03-27Add winsock2 headers for curl's use of select() on socketsSean McNamara1-1/+7
2009-03-27Uniform getaddrinfo() on WIN32 or POSIX, because MinGW now supports itSean McNamara1-23/+0
2009-03-27Winsock2 is needed on MinGW (or other pure Win32 toolchains) forSean McNamara1-0/+36
networking, select(), ntohl(), etc.
2009-03-27sticker: move SQLite statements into an arrayMax Kellermann1-70/+75
Simplify initialization and finalization.
2009-03-27pulse_mixer: protect the struct with a mutexMax Kellermann1-1/+29
There are numerous race conditions between the libpulse thread (pulse_mixer.c callbacks) and the rest of MPD. Protect the volatile attributes of the pulse_mixer struct with a mutex to fix that.
2009-03-27pulse_mixer: return if mixer is offlineMax Kellermann1-29/+27
Eliminate one indent level. Also remove several debug useless debug messages.
2009-03-27pulse_mixer: removed superfluous G_GNUC_UNUSED attributesMax Kellermann1-4/+4
Those parameters are used after all.
2009-03-27pulse_mixer: use local pa_cvolume variable for set_volume()Max Kellermann1-2/+3
Don't mess with pulse_mixer.volume for setting the volume. This variable should only be used to transfer the current volume from sink_input_vol() to pulse_mixer_get_volume().
2009-03-27pulse_mixer: wait for get_volume() operation to completeMax Kellermann1-1/+34
The pa_context_get_sink_input_info() function is asynchronous, and after it returns, libpulse does not guarantee that the operation has completed yet; in fact, it is not likely. Explicitly wait for the operation to complete. The code for the new pulse_wait_for_operation() function was inspired by mplayer and xine code.
2009-03-27mixer_control: don't lock the mutex twice in mixer_failed()Max Kellermann1-5/+14
The function mixer_failed() expects the mixer mutex to be already locked, yet it calls mixer_close(), which attempts to lock the mutex again, deadlocking itself.
2009-03-27renamed smartstop to single and changed behaviorRomain Bignon7-29/+43
When single mode is enabled, after current song it stops playback, or it replay same song if repeat mode is activated.
2009-03-27implements the smartstop featureRomain Bignon7-2/+66
The smartstop feature is a way to tell mpd to stop playing after current song. This patche provides: - 'state' command returns 'smartstop' state (1 or 0) - 'smartstop' can activate or not the smartstop state - when song is terminated, mpd stops playing and smartstop is set to 0
2009-03-27pulse_mixer: adapted code styleMax Kellermann1-27/+52
Use the same code style as the rest of MPD.
2009-03-26output_all: synchronize playback with player_control.notifyMax Kellermann2-2/+4
This patch fixes a longer delay when moving around songs in the playlist. The main thread wants to enqueue a new "next" song into the player thread, but the player thread is waiting inside audio_output_all_wait() for the output threads. Use player_control.notify there, so audio_output_all_wait() gets woken up by the main thread, too.
2009-03-26playlist_state: fix playback restore in random modeMax Kellermann1-2/+0
The functions playPlaylist() and seekSongInPlaylist() expect a song position, not a song order number. Don't convert the "current" variable with queue_position_to_order().