Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | | use audio_output_plugins_for_each's plugin iterator | Jonathan Neuschäfer | 2012-02-15 | 1 | -2/+2 | |
| | | ||||||
* | | rtsp_client: strncat -> g_strlcat | Jonathan Neuschäfer | 2012-02-15 | 1 | -7/+7 | |
| | | | | | | | | | | | | | | | | | | The main difference is that strncat takes the maximum number of characters to copy as its third argument, while g_strlcat takes the size of the buffer, which is how the code was using strncat. Incomplete requests may still be constructed as a result of the reqest buffer filling up. | |||||
* | | main: handle negative strtol return value | Jonathan Neuschäfer | 2012-02-15 | 1 | -2/+3 | |
| | | | | | | | | | | size_t is unsigned most of the time, so we can't really use it to check for negative values. Also handle strtol overflow. | |||||
* | | decoder/sidplay: remove unused variable 'ret' | Jonathan Neuschäfer | 2012-02-15 | 1 | -1/+0 | |
|/ | ||||||
* | command: move code to protocol/argparser.c | Max Kellermann | 2012-02-14 | 3 | -166/+241 | |
| | ||||||
* | command: use standard error messages in check_int() | Max Kellermann | 2012-02-14 | 1 | -49/+27 | |
| | ||||||
* | command: check for empty string after strtol() | Max Kellermann | 2012-02-14 | 1 | -7/+7 | |
| | | | | An empty string is obviously not a valid integer. | |||||
* | command: parse unsigned integers and booleans where applicable | Max Kellermann | 2012-02-14 | 1 | -67/+39 | |
| | ||||||
* | command: move functions to protocol/result.c | Max Kellermann | 2012-02-14 | 3 | -31/+102 | |
| | ||||||
* | command: eliminate local buffer "unknown" | Max Kellermann | 2012-02-14 | 1 | -2/+1 | |
| | ||||||
* | listen: implement systemd socket activation | Max Kellermann | 2012-02-13 | 1 | -0/+36 | |
| | ||||||
* | server_socket: add method _add_fd() | Max Kellermann | 2012-02-13 | 2 | -0/+38 | |
| | ||||||
* | server_socket: move code to set_fd() | Max Kellermann | 2012-02-13 | 1 | -8/+21 | |
| | ||||||
* | zeroconf: skip initialisation if there is no port | Max Kellermann | 2012-02-13 | 1 | -0/+7 | |
| | ||||||
* | command: new command "config" | Max Kellermann | 2012-02-13 | 1 | -0/+19 | |
| | ||||||
* | mapper: add mapper_get_music_directory() | Max Kellermann | 2012-02-13 | 4 | -29/+25 | |
| | | | | Shortcut for map_directory_fs(db_get_root()). | |||||
* | database: add "pure" attributes | Max Kellermann | 2012-02-13 | 1 | -0/+5 | |
| | ||||||
* | database: remove obsolete prototype db_check() | Max Kellermann | 2012-02-13 | 1 | -3/+0 | |
| | ||||||
* | mapper: add "pure" attributes | Max Kellermann | 2012-02-13 | 1 | -0/+10 | |
| | ||||||
* | client: add function client_is_local() | Max Kellermann | 2012-02-13 | 2 | -1/+12 | |
| | ||||||
* | client: add "pure" attributes | Max Kellermann | 2012-02-13 | 1 | -0/+3 | |
| | ||||||
* | command: never print "bad name" in response to "load" | Max Kellermann | 2012-02-13 | 1 | -5/+14 | |
| | | | | Work around a confusing error message. | |||||
* | playlist_vector: require database lock for all functions | Max Kellermann | 2012-02-13 | 4 | -3/+27 | |
| | ||||||
* | playlist_vector: add new playlist to the end of the list | Max Kellermann | 2012-02-13 | 1 | -1/+1 | |
| | | | | Avoid reversing the order after every update. | |||||
* | directory.h: move DIRECTORY_DIR to directory_save.c | Max Kellermann | 2012-02-13 | 2 | -2/+1 | |
| | ||||||
* | Merge branch 'v0.16.x' | Max Kellermann | 2012-02-13 | 5 | -6/+17 | |
|\ | | | | | | | | | | | | | | | Conflicts: NEWS configure.ac src/decoder/ffmpeg_decoder_plugin.c test/read_tags.c | |||||
| * | decoder/ffmpeg: read the "year" tag | Max Kellermann | 2012-02-13 | 1 | -1/+1 | |
| | | | | | | | | | | | | This was disabled when compiled with a new ffmpeg version. Older ffmpeg versions used it explicitly, while newer ones may pass it through from the codec. | |||||
| * | decoder_api: check state before emitting initial seek command | Max Kellermann | 2012-02-13 | 1 | -0/+6 | |
| | | | | | | | | This fixes seeking in the vorbis decoder during MPD startup. | |||||
| * | pcm_buffer: pcm_buffer_get() never returns NULL | Max Kellermann | 2012-02-13 | 2 | -0/+9 | |
| | | | | | | | | | | | | This fixes a bug when libsamplerate returns an empty buffer for a very small input buffer. The caller thinks this is an error, bug there is no GError object. | |||||
| * | output/winmm: remove pointless NULL check | Max Kellermann | 2012-02-13 | 1 | -5/+1 | |
| | | | | | | | | pcm_buffer_get() cannot ever return NULL. | |||||
* | | directory: fix reverse order of child directories | treblid | 2012-02-13 | 1 | -1/+1 | |
| | | | | | | | | | | Directories are loaded in reverse order when MPD starts. Only fixed when doing a rescan. | |||||
* | | playlist/flac: delete this obsolete plugin | Max Kellermann | 2012-02-12 | 3 | -200/+0 | |
| | | | | | | | | | | The FLAC playlist plugin has been superseded by the "embcue" playlist plugin, which can read the embedded CUE sheets of all formats. | |||||
* | | playlist/embcue: ignore "FILE", always point to container song file | Max Kellermann | 2012-02-12 | 1 | -2/+15 | |
| | | | | | | | | | | An embedded CUE sheet must always point to the song file it is contained in. | |||||
* | | song: add function song_replace_uri() | Max Kellermann | 2012-02-12 | 2 | -0/+21 | |
| | | ||||||
* | | db_print: print extra "playlist" object for embedded CUE sheets | Max Kellermann | 2012-02-12 | 1 | -12/+30 | |
| | | | | | | | | | | | | This finally enables the new embedded CUE sheet code: when a song file contains a playlist, it is printed in the "lsinfo" output, so clients get to know about this. | |||||
* | | song_update: update the "has_playlist" flag | Max Kellermann | 2012-02-12 | 1 | -3/+3 | |
| | | ||||||
* | | tag_handler: add new handler that updates has_playlist | Max Kellermann | 2012-02-12 | 2 | -0/+24 | |
| | | ||||||
* | | tag: add attribute "has_playlist" | Max Kellermann | 2012-02-12 | 4 | -0/+18 | |
| | | ||||||
* | | tag_{ape,id3}: remove the _load() functions | Max Kellermann | 2012-02-12 | 5 | -84/+6 | |
| | | | | | | | | Use _scan() instead, to have more control. | |||||
* | | playlist_vector: use the list_head library | Max Kellermann | 2012-02-12 | 9 | -80/+57 | |
| | | ||||||
* | | update_remove: add header update_remove.h | Max Kellermann | 2012-02-12 | 5 | -16/+44 | |
| | | ||||||
* | | update_walk: move code to update_db.c | Max Kellermann | 2012-02-12 | 3 | -85/+159 | |
| | | ||||||
* | | update_walk: move code to update_io.c | Max Kellermann | 2012-02-12 | 3 | -100/+168 | |
| | | ||||||
* | | update_walk: move code to update_song_file() | Max Kellermann | 2012-02-12 | 1 | -59/+64 | |
| | | ||||||
* | | playlist/embcue: new plugin for reading embedded cue sheets | Max Kellermann | 2012-02-12 | 5 | -0/+322 | |
| | | | | | | | | | | Parses CUE data from the "CUESHEET" tag. Needs further integration in the update thread. | |||||
* | | decoder/wavpack: bigger tag value buffer | Max Kellermann | 2012-02-12 | 1 | -2/+1 | |
| | | | | | | | | Prepare for big CUESHEET tags. | |||||
* | | tag_handler: handle arbitrary name/value pairs | Max Kellermann | 2012-02-12 | 8 | -8/+106 | |
| | | | | | | | | | | The new method pair() receives an arbitrary name/value pair. Support for this is being added to a few decoder plugins. | |||||
* | | decoder/wavpack: move code to wavpack_scan_tag_item() | Max Kellermann | 2012-02-11 | 1 | -26/+17 | |
| | | | | | | | | | | Remove clutter from wavpack_scan_file(), and use a (large) fixed buffer for the tag item. | |||||
* | | decoder/wavpack: use the tag_table library | Max Kellermann | 2012-02-11 | 1 | -8/+7 | |
| | | ||||||
* | | decoder/{mikmod,fluidsynth,mp4ff}: adapt to tag_handler API | Max Kellermann | 2012-02-11 | 3 | -26/+28 | |
| | | | | | | | | Fixes build regression. |