aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* player_thread: fix cross-fading duplicate chunk bugMax Kellermann2009-01-042-0/+9
| | | | | | | | When the decoder of the new song is not fast enough, the player thread has to wait for it for a moment. However the variable "nextChunk" was reset to -1 during that, making the next loop iteration assume that cross-fading has not begun yet. This patch overwrites it with "0" while waiting.
* input_curl: enabled Icy-Metadata supportMax Kellermann2009-01-033-12/+98
|
* added library for parsing icy-metadataMax Kellermann2009-01-033-1/+275
| | | | The icy_metadata will be used by the curl input_stream implementation.
* input_stream: added tag() methodMax Kellermann2009-01-036-78/+129
| | | | | The tag() method reads a tag from the stream. This replaces the meta_name and meta_title attributes.
* tag: added function tag_merge()Max Kellermann2009-01-032-0/+55
| | | | tag_merges() merges the data from two tag objects into one.
* decoder_api: moved code to do_send_tag(), free temporary tagMax Kellermann2009-01-032-7/+18
| | | | | | | This patch fixes a minor memory leak: when decoder_tag() attempted to send a merged tag object (created by tag_add_stream_tags()), and was interrupted by a decoder command, it did not free the temporary merged tag object.
* tag: revert g_strescape() patchMax Kellermann2009-01-031-7/+56
| | | | | | Don't use g_strescape(), because it escapes all non-ASCII characters. Add a new function which clears all non-printable characters, not just "newline".
* player: emit PLAYLIST event when stream tag changesMax Kellermann2009-01-031-0/+7
| | | | | | | | Commit b3e2635a introduced a regression: when a stream tag was changed, the playlist version had to be updated. This was done in syncCurrentPlayerDecodeMetadata(), called by syncPlayerAndPlaylist(). After b3e2635a, this was not called anymore. Fix this by emitting PIPE_EVENT_PLAYLIST.
* utils: removed unused functionsMax Kellermann2009-01-034-112/+8
| | | | | Removed all allocation functions, xwrite(), xread(), ARRAY_SIZE(). Those have been superseded by GLib.
* event_pipe: use GLib loggingMax Kellermann2009-01-031-2/+3
|
* event_pipe: use close() instead of xclose()Max Kellermann2009-01-031-3/+2
| | | | | xclose() aims to be the signal safe version of close(). However during cleanup, this isn't important.
* conf: use GLib instead of utils.hMax Kellermann2009-01-031-12/+9
|
* state_file: use GLib instead of utils.h / stat()Max Kellermann2009-01-031-3/+3
|
* state_file: errors are non-fatal in read_state_file()Max Kellermann2009-01-034-29/+24
| | | | | If the state file cannot be read, for whatever reason, don't abort MPD. The state file isn't _that_ important.
* songvec, dirvec: use GLib instead of utils.hMax Kellermann2009-01-032-14/+14
|
* compress: use GLib instead of utils.hMax Kellermann2009-01-031-4/+4
|
* don't include utils.h when it isn't usedMax Kellermann2009-01-038-9/+7
|
* timer: use GLib instead of utils.hMax Kellermann2009-01-031-4/+5
|
* tag: use g_strescape() to eliminate evil charactersMax Kellermann2009-01-033-27/+22
| | | | | This always allocates strings on the heap, but we can delete the stripReturnChar() function now.
* pcm: use GLib instead of utils.hMax Kellermann2009-01-033-17/+14
|
* pcm_utils: use the custom PRNG for volume ditheringMax Kellermann2009-01-034-6/+40
| | | | | Don't use libc's rand() function, because it is slow. Our own trivial linear congruential generator is good enough for dithering.
* listen: use GLib instead of utils.hMax Kellermann2009-01-033-20/+21
|
* tag_id3: use GLib instead of utils.hMax Kellermann2009-01-031-9/+12
|
* tag_pool: use GLib instead of utils.hMax Kellermann2009-01-031-3/+2
|
* null, fifo: use GLib instead of utils.hMax Kellermann2009-01-032-7/+8
|
* song: use GLib instead of utils.h/log.hMax Kellermann2009-01-031-5/+5
|
* decoder_api: use GLib instead of utils.hMax Kellermann2009-01-031-4/+5
|
* client: use GLib instead of utils.hMax Kellermann2009-01-032-7/+10
|
* client: convert GREETING to a static stringMax Kellermann2009-01-031-2/+2
| | | | The length of GREETING is known at compile time, don't use strlen().
* strset: use GLib instead of utils.hMax Kellermann2009-01-031-3/+3
|
* dbUtils: use GLib instead of utils.hMax Kellermann2009-01-031-3/+4
|
* audio: use GLib instead of utils.hMax Kellermann2009-01-031-2/+2
|
* listen: use gethostbyname() on WIN32Max Kellermann2009-01-031-0/+18
| | | | WIN32 has no getaddrinfo(). Fall back to gethostbyname().
* event_pipe: use _pipe() on WIN32Max Kellermann2009-01-031-2/+13
| | | | | Windows has no pipe(), it only has _pipe() with two additional parameters.
* configure.ac: link with -lws2_32 on WIN32Max Kellermann2009-01-031-0/+6
| | | | All socket functions are provided by ws2_32.dll.
* ao: use g_strsplit() instead of strtok_r()Max Kellermann2009-01-031-37/+15
| | | | g_strsplit() is more portable than strtok_r().
* permission: use g_strsplit() instead of strtok_r()Max Kellermann2009-01-031-8/+9
| | | | g_strsplit() is more portable than strtok_r().
* permission: parse password without strtok_r()Max Kellermann2009-01-031-16/+10
| | | | Use strchr()/g_strndup() to extract the password.
* log: don't call closelog() on !HAVE_SYSLOGMax Kellermann2009-01-031-0/+2
|
* update: don't check for symlinks on WIN32Max Kellermann2009-01-031-0/+15
| | | | | | WIN32 does have some kind of symbolic links (e.g. in NTFS), but the readlink() function is not available. Disable symlink checking for now.
* event_pipe: moved variable "main_task" to main.cMax Kellermann2009-01-035-7/+5
|
* sig_handlers: disable on WIN32Max Kellermann2009-01-031-0/+7
| | | | | WIN32 doesn't have POSIX signals. Disable the code. For a complete port, we will have to implement the WIN32 equivalent.
* command: fix adding local files on !WIN32Max Kellermann2009-01-031-1/+5
| | | | | | Due to a typo, adding local files was always denied. Disable the second playlist_append_file() invocation on WIN32.
* list: removed linked list libraryMax Kellermann2009-01-025-626/+0
| | | | It's been superseded by GLib's GSList.
* conf: use GLib's GSList libraryMax Kellermann2009-01-021-35/+54
| | | | Use GLib's singly-linked list library instead of our custom one.
* alsa: use GLib instead of utils.hMax Kellermann2009-01-021-3/+2
|
* jack: use GLib instead of utils.hMax Kellermann2009-01-021-15/+14
|
* jack: duplicate jack_get_ports() return valuesMax Kellermann2009-01-021-3/+4
| | | | | | | | | JACK documentation states: "The caller is responsible for calling free(3) any non-NULL returned value." This does not seem to include the array elements. Duplicate them after jack_get_ports(), and free only the array. Convert JackData.output_ports to non-const.
* update: use GLib instead of utils.hMax Kellermann2009-01-021-4/+5
|
* database: use GLib instead of utils.hMax Kellermann2009-01-021-2/+3
|