Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
| * | fs/io/FileOutputStream: don't auto-delete file on WIN32 | Max Kellermann | 2015-02-06 | 1 | -0/+2 | |
| | | | | | | | | | | | | | | | | | | The file handle is never reset to INVALID_HANDLE_VALUE, and thus the destructor will assume the operation shall be cancelled and will delete the temporary file. This was a major breakage for saving the database file and the state file. | |||||
| * | TagBuilder: allow adding duplicate tag types in Complement() | Max Kellermann | 2015-02-06 | 1 | -1/+10 | |
| | | | | | | | | | | | | | | | | | | | | Build a table of pre-existing tag types before adding new items. The old way would check HasType() each time, which would return true after the first instance of that tag type had been added, preventing duplicate tag types to be merged. This broke duplicate tag types loaded from the state file, because this code path uses TagBuilder::Complement(). | |||||
* | | SongPrint: let CPP concatenate string literals | Max Kellermann | 2015-02-06 | 1 | -2/+2 | |
| | | ||||||
* | | tag/Rva2: convert pointers to references | Max Kellermann | 2015-02-04 | 1 | -9/+9 | |
| | | ||||||
* | | tag/Rva2: rename struct rva2_data to CamelCase | Max Kellermann | 2015-02-04 | 1 | -6/+6 | |
| | | ||||||
* | | tag/Rva2: make enum rva2_channel strictly-typed | Max Kellermann | 2015-02-04 | 1 | -12/+12 | |
| | | ||||||
* | | lib/upnp/Discovery: remove locking from ExpireDevices() | Max Kellermann | 2015-02-03 | 2 | -7/+6 | |
| | | ||||||
* | | lib/upnp/Discovery: apply naming convention | Max Kellermann | 2015-02-02 | 5 | -42/+42 | |
| | | ||||||
* | | output/sles: use AudioOutputWrapper::Create() | Max Kellermann | 2015-02-01 | 1 | -4/+6 | |
| | | ||||||
* | | DecoderThread: make variables more local | Max Kellermann | 2015-01-31 | 1 | -6/+3 | |
| | | ||||||
* | | decoder/sndfile, ...: update API documentation | Max Kellermann | 2015-01-31 | 9 | -13/+13 | |
| | | ||||||
* | | decoder/DsdLib: fix integer overflow in ID3 size calculation | Max Kellermann | 2015-01-30 | 1 | -2/+4 | |
| | | ||||||
* | | decoder/DsdLib: check size before seeking | Max Kellermann | 2015-01-30 | 1 | -4/+3 | |
| | | ||||||
* | | decoder/DsdLib: don't use InputStream::GetOffset() after seeking | Max Kellermann | 2015-01-30 | 1 | -3/+2 | |
| | | | | | | | | We already know the offset. | |||||
* | | decoder/DsdLib: pass offset_type t dsdlib_tag_id3() | Max Kellermann | 2015-01-30 | 2 | -4/+2 | |
| | | ||||||
* | | Merge branch 'v0.19.x' | Max Kellermann | 2015-01-29 | 3 | -15/+14 | |
|\| | ||||||
| * | db/update/Walk: use std::unique_ptr instead of std::auto_ptr | Max Kellermann | 2015-01-29 | 1 | -1/+1 | |
| | | | | | | | | | | std::auto_ptr is deprecated, and std::unique_ptr is much better anyway. | |||||
| * | Avoid integer overflow in MonotonicClock{S,MS,US} | PHO | 2015-01-29 | 1 | -6/+6 | |
| | | | | | | | | | | This is Darwin specific: the previous implementation was causing an integer overflow when base.numer is very large. On PPC Darwin, the timebase info is 1000000000/33330116 and this is too large for integer arithmetic. | |||||
| * | decoder/DsdLib: use new[] to allocate the ID3 buffer | Max Kellermann | 2015-01-29 | 1 | -3/+5 | |
| | | | | | | | | | | Don't abort the process if there's not enough memory. This buffer is not important and can be large. | |||||
| * | decoder/DsdLib: free ID3 buffer right after id3_tag_parse() | Max Kellermann | 2015-01-29 | 1 | -5/+2 | |
| | | | | | | | | Merge two free() calls. | |||||
| * | decoder/DsdLib: raise ID3 tag limit to 1 MB | Max Kellermann | 2015-01-29 | 1 | -1/+1 | |
| | | | | | | | | | | A bug report was submitted with a 600 kB ID3 tag that could not be read by MPD. | |||||
* | | output/fifo: use template AudioOutputWrapper | Max Kellermann | 2015-01-28 | 1 | -47/+39 | |
| | | ||||||
* | | StickerDatabase: convert the struct name to upper case | Max Kellermann | 2015-01-28 | 7 | -19/+19 | |
| | | ||||||
* | | Merge branch 'v0.19.x' | Max Kellermann | 2015-01-26 | 12 | -678/+13 | |
|\| | ||||||
| * | Merge branch 'v0.18.x' into v0.19.x | Max Kellermann | 2015-01-26 | 10 | -660/+3 | |
| |\ | ||||||
| | * | {playlist,input}/despotify: remove defunct plugin | Max Kellermann | 2015-01-26 | 9 | -668/+0 | |
| | | | ||||||
| | * | util/list: disable gcc5 warning | Max Kellermann | 2015-01-23 | 1 | -0/+4 | |
| | | | | | | | | | | | | | | | This file has been removed in newer MPD versions, so don't care about it now. | |||||
| | * | ClientProcess: cast enum to int before passing to printf() | Max Kellermann | 2015-01-23 | 1 | -3/+3 | |
| | | | | | | | | | | | | Fixes gcc5 warning. | |||||
| * | | Test the existence of strndup(3) before using it. | PHO | 2015-01-26 | 1 | -5/+6 | |
| | | | | | | | | | | | | This can eliminate the ad-hoc "#ifdef WIN32" and can also support other platforms lacking it as well (including Darwin 9). | |||||
| * | | thread/Name: include stdio.h if HAVE_PRCTL | Max Kellermann | 2015-01-21 | 1 | -1/+4 | |
| | | | | | | | | | | | | | | | Caused a build failure with uClibc because snprintf() was not available. | |||||
* | | | pcm/SoxrResampler: move quality recipe names to table | Max Kellermann | 2015-01-25 | 1 | -25/+23 | |
| | | | ||||||
* | | | tag/Format: add %iso8601% | Max Kellermann | 2015-01-22 | 1 | -0/+27 | |
| | | | ||||||
* | | | ConfigFile: fix typo (parser breakage) | Max Kellermann | 2015-01-22 | 1 | -2/+2 | |
| | | | ||||||
* | | | util/format: allow upper case, digits and underscore in names | Max Kellermann | 2015-01-22 | 1 | -1/+2 | |
| | | | ||||||
* | | | util/format: move code to is_name_char() | Max Kellermann | 2015-01-22 | 1 | -1/+7 | |
| | | | ||||||
* | | | queue/PlaylistState: remove unused macro | Max Kellermann | 2015-01-22 | 1 | -3/+0 | |
| | | | ||||||
* | | | pcm/SoxrResampler: allow multi-threaded resampling | Max Kellermann | 2015-01-22 | 1 | -1/+1 | |
| | | | ||||||
* | | | pcm/SoxrResampler: add a global soxr_runtime_spec_t variable | Max Kellermann | 2015-01-22 | 1 | -1/+5 | |
| | | | ||||||
* | | | Config: add section "resampler" | Max Kellermann | 2015-01-22 | 7 | -33/+125 | |
| | | | ||||||
* | | | config/Block: add method IsEmpty() | Max Kellermann | 2015-01-22 | 1 | -0/+5 | |
| | | | ||||||
* | | | config/Param: split block-specific attributes to new struct ConfigBlock | Max Kellermann | 2015-01-21 | 108 | -713/+851 | |
| | | | | | | | | | | | | The old struct config_param remains only for top-level string options. | |||||
* | | | config/File: move code to ReadConfigParam() | Max Kellermann | 2015-01-21 | 1 | -73/+82 | |
| | | | ||||||
* | | | fs/io/BufferedReader: count line numbers | Max Kellermann | 2015-01-21 | 3 | -26/+38 | |
| | | | | | | | | | | | | Replaces the dirty code in config/ConfigFile.cxx. | |||||
* | | | config/File: use FileReader/BufferedReader instead of stdio | Max Kellermann | 2015-01-21 | 1 | -28/+21 | |
| | | | ||||||
* | | | config/Data: assign nullptr during iteration | Max Kellermann | 2015-01-21 | 1 | -2/+3 | |
| | | | ||||||
* | | | config/Option: convert to strictly-typed enum | Max Kellermann | 2015-01-21 | 32 | -128/+149 | |
| | | | ||||||
* | | | input/curl: work around format warning on WIN32 | Max Kellermann | 2015-01-21 | 1 | -0/+3 | |
| | | | ||||||
* | | | config/Param: make "line" signed | Max Kellermann | 2015-01-21 | 3 | -7/+7 | |
| | | | ||||||
* | | | ConfigFile: convert macros to constexpr | Max Kellermann | 2015-01-21 | 1 | -2/+2 | |
| | | | ||||||
* | | | config/Data: add method Clear() | Max Kellermann | 2015-01-21 | 3 | -3/+33 | |
| | | | | | | | | | | | | Move code from config_global_finish(). |