Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
| * | DeferredMonitor: fix race condition when using GLib event loop | Max Kellermann | 2014-04-26 | 3 | -11/+23 | |
| | | | | | | | | | | | | | | | | | | Turns out the lock-free code using atomics was not thread-safe. The given callback could be invoked by GLib before the source_id attribute was assigned. This commit changes the DeferredMonitor class to use a Mutex to block the event loop until source_id is assigned. This bug does not exist in the 0.19 branch because it does not use the GLib main loop anymore. | |||||
| * | configure.ac: prepare for 0.18.11 | Max Kellermann | 2014-04-26 | 2 | -1/+3 | |
| | | ||||||
* | | icu/Collate: use u_strFoldCase() instead of ucol_getSortKey() | Max Kellermann | 2014-05-12 | 1 | -10/+41 | |
| | | | | | | | | Turns out ucol_getSortKey() does not what I thought it does. | |||||
* | | icu/Collate: UCharFromUTF8() returns WritableBuffer<UChar> | Max Kellermann | 2014-05-12 | 1 | -19/+20 | |
| | | ||||||
* | | icu/Collate: initialize error_code | Max Kellermann | 2014-05-12 | 1 | -1/+1 | |
| | | | | | | | | Fixes the broken "search" command. | |||||
* | | mixer/software: keep attribute "volume" in the 0..100 range | Max Kellermann | 2014-05-12 | 1 | -7/+19 | |
| | | | | | | | | | | The attribute must be 0..100 and not 0..1024. Previously, the code was inconsistent. | |||||
* | | InputStream: remove attribute "plugin" | Max Kellermann | 2014-05-11 | 16 | -63/+21 | |
| | | ||||||
* | | InputStream: make various methods abstract | Max Kellermann | 2014-05-11 | 19 | -643/+252 | |
| | | | | | | | | Replace InputPlugin attributes. | |||||
* | | InputStream: add virtual destructor | Max Kellermann | 2014-05-11 | 31 | -180/+48 | |
| | | | | | | Replaces the method Close(). | |||||
* | | input/plugins: make InputStream the base class | Max Kellermann | 2014-05-11 | 15 | -320/+236 | |
| | | | | | | | | Prepare for adding virtual methods. | |||||
* | | input/rewind: convert to class | Max Kellermann | 2014-05-11 | 1 | -46/+89 | |
| | | ||||||
* | | InputStream: convert to class | Max Kellermann | 2014-05-11 | 31 | -70/+132 | |
| | | ||||||
* | | Makefile.am: add variable NFS_SOURCES | Max Kellermann | 2014-05-11 | 1 | -2/+5 | |
| | | ||||||
* | | PlaylistCommands: remove redundant playlist_load_spl() call | Max Kellermann | 2014-05-10 | 3 | -56/+1 | |
| | | | | | | | | | | This case is handled already by playlist_open_in_playlist_dir() (via playlist_mapper_open()). And the call didn't work anyway. | |||||
* | | PlaylistMapper: use map_spl_utf8_to_fs() | Max Kellermann | 2014-05-10 | 1 | -10/+2 | |
| | | | | | | | | | | | | Eliminates some overhead and some duplicate code, and fixes a serious bug: the old code did not append the ".m3u" suffix, and thus the "load" command was completely broken for stored playlists. D'oh! | |||||
* | | doc/protocol.xml: add warning to "listall" and "listallinfo" | Max Kellermann | 2014-04-29 | 1 | -0/+12 | |
| | | ||||||
* | | db/Count: implement grouping | Max Kellermann | 2014-04-27 | 5 | -10/+109 | |
| | | ||||||
* | | db/Count: add constructor | Max Kellermann | 2014-04-27 | 1 | -2/+3 | |
| | | ||||||
* | | DatabasePrint: move PrintSongCount() to Count.cxx | Max Kellermann | 2014-04-26 | 6 | -54/+112 | |
| | | ||||||
* | | db/Helpers: split library | Max Kellermann | 2014-04-25 | 6 | -47/+99 | |
| | | ||||||
* | | DatabasePrint: refactor variable/function names | Max Kellermann | 2014-04-25 | 3 | -23/+23 | |
| | | ||||||
* | | LogInit: fix file descriptor leak in SIGHUP handler | Max Kellermann | 2014-04-25 | 1 | -0/+2 | |
| | | ||||||
* | | DatabaseCommands: disallow "grouping" by the selected tag | Max Kellermann | 2014-04-25 | 1 | -0/+7 | |
| | | | | | | | | Fixes assertion failure. | |||||
* | | db/Helpers: move code to tag/Set.cxx | Max Kellermann | 2014-04-24 | 4 | -90/+132 | |
| | | ||||||
* | | db/Helpers: move TagSet to dedicated header | Max Kellermann | 2014-04-24 | 3 | -24/+62 | |
| | | ||||||
* | | db/Helpers: use set::emplace() | Max Kellermann | 2014-04-24 | 1 | -0/+8 | |
| | | ||||||
* | | DatabasePrint: eliminate printAllIn(), printInfoForAllIn() | Max Kellermann | 2014-04-24 | 3 | -26/+4 | |
| | | ||||||
* | | DatabasePrint: merge adjacent client_printf() calls | Max Kellermann | 2014-04-24 | 1 | -2/+4 | |
| | | ||||||
* | | DatabasePrint: pass const SearchStats reference | Max Kellermann | 2014-04-24 | 1 | -4/+5 | |
| | | ||||||
* | | DatabasePrint: use unsigned counts | Max Kellermann | 2014-04-24 | 1 | -3/+3 | |
| | | ||||||
* | | DatabaseCommands: "list" allows grouping | Max Kellermann | 2014-04-24 | 15 | -43/+197 | |
| | | ||||||
* | | TagBuilder: add method AddEmptyItem() | Max Kellermann | 2014-04-24 | 2 | -0/+17 | |
| | | ||||||
* | | DatabaseCommands: simplify the handle_list() argument parser | Max Kellermann | 2014-04-24 | 1 | -9/+12 | |
| | | ||||||
* | | db/Helpers: "list" on album artist falls back to the artist tag | Max Kellermann | 2014-04-24 | 2 | -1/+5 | |
| | | ||||||
* | | db/Helpers: move code to CheckUniqueTag() | Max Kellermann | 2014-04-24 | 1 | -6/+12 | |
| | | ||||||
* | | db/Helpers: use reference instead of pointer | Max Kellermann | 2014-04-24 | 1 | -4/+6 | |
| | | ||||||
* | | SongFilter: convert argv to ConstBuffer | Max Kellermann | 2014-04-24 | 4 | -13/+27 | |
| | | ||||||
* | | util/{Const,Writable}Buffer: add front(), back(), pop_{front,back}(), shift() | Max Kellermann | 2014-04-24 | 2 | -0/+118 | |
| | | ||||||
* | | util/{Const,Writable}Buffer: add typedef reference_type | Max Kellermann | 2014-04-24 | 2 | -4/+8 | |
| | | ||||||
* | | doc/protocol.xml: change "in" to "base" | Max Kellermann | 2014-04-24 | 1 | -1/+1 | |
| | | ||||||
* | | doc/protocol.xml: update and fix command "list" | Max Kellermann | 2014-04-24 | 1 | -5/+10 | |
| | | ||||||
* | | DatabaseCommands: fix crash on "list base" | Max Kellermann | 2014-04-24 | 2 | -7/+4 | |
| | | | | | | | | | | | | The string "base" is understood by locate_parse_type(), but not by listAllUniqueTags(). The special tag type LOCATE_TAG_BASE_TYPE causes a crash in PrintUniqueTag(). | |||||
* | | DatabasePrint: convert "type" to unsigned | Max Kellermann | 2014-04-24 | 2 | -2/+2 | |
| | | ||||||
* | | DatabaseCommands: clarify compatibility comment | Max Kellermann | 2014-04-24 | 1 | -1/+1 | |
| | | ||||||
* | | input/nfs: add missing string.h include | Max Kellermann | 2014-04-23 | 1 | -0/+1 | |
| | | | | | | | | For strrchr(). Fixes build failure. | |||||
* | | Merge tag 'release-0.18.10' | Max Kellermann | 2014-04-10 | 5 | -19/+63 | |
|\| | ||||||
| * | release v0.18.10 | Max Kellermann | 2014-04-10 | 1 | -1/+1 | |
| | | ||||||
| * | decoder/sndfile: work around libsndfile bug on partial read | Marcello Desantis | 2014-04-09 | 2 | -6/+21 | |
| | | ||||||
| * | PlaylistEdit: don't interrupt playback when current song gets deleted | Weng Xuetian | 2014-04-09 | 2 | -10/+9 | |
| | | ||||||
| * | decoder/ffmpeg: handle unknown stream start time | Max Kellermann | 2014-03-18 | 2 | -2/+26 | |
| | |