aboutsummaryrefslogtreecommitdiffstats
path: root/src (follow)
Commit message (Collapse)AuthorAgeFilesLines
* fs/io/FileOutputStream: use CREATE_ALWAYS instead of TRUNCATE_EXISTINGMax Kellermann2015-02-101-1/+1
| | | | | Fixes yet another breakage of creating the database+state file on Windows.
* command/{Queue,File}Commands: drop "file:///" prefix for absolute pathsMax Kellermann2015-02-092-13/+15
| | | | | | | | | | | | Requiring this prefix makes the client's intention very clear, but it was too hard to understand why this prefix was needed. Initially, my intention was to differentiate from broken clients which prefix relate URIs with a slash; once MPD allowed that. In the past few years however, MPD has disallowed that, and there was no significant breakage (except for the "add /" special case which some clients apparently still do). So I figure it's about time to define that an URI that begins with a slash points to an arbitrary file on the file system.
* fs/Charset: convert #ifdef to regular "if"Max Kellermann2015-02-091-3/+5
|
* fs/Charset: change FixSeparators() API to use std::string&&Max Kellermann2015-02-081-11/+6
|
* Listen: remove C-style "void"Max Kellermann2015-02-071-1/+2
|
* Merge tag 'v0.19.9'Max Kellermann2015-02-062-1/+12
|\
| * fs/io/FileOutputStream: don't auto-delete file on WIN32Max Kellermann2015-02-061-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 Kellermann2015-02-061-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 literalsMax Kellermann2015-02-061-2/+2
| |
* | tag/Rva2: convert pointers to referencesMax Kellermann2015-02-041-9/+9
| |
* | tag/Rva2: rename struct rva2_data to CamelCaseMax Kellermann2015-02-041-6/+6
| |
* | tag/Rva2: make enum rva2_channel strictly-typedMax Kellermann2015-02-041-12/+12
| |
* | lib/upnp/Discovery: remove locking from ExpireDevices()Max Kellermann2015-02-032-7/+6
| |
* | lib/upnp/Discovery: apply naming conventionMax Kellermann2015-02-025-42/+42
| |
* | output/sles: use AudioOutputWrapper::Create()Max Kellermann2015-02-011-4/+6
| |
* | DecoderThread: make variables more localMax Kellermann2015-01-311-6/+3
| |
* | decoder/sndfile, ...: update API documentationMax Kellermann2015-01-319-13/+13
| |
* | decoder/DsdLib: fix integer overflow in ID3 size calculationMax Kellermann2015-01-301-2/+4
| |
* | decoder/DsdLib: check size before seekingMax Kellermann2015-01-301-4/+3
| |
* | decoder/DsdLib: don't use InputStream::GetOffset() after seekingMax Kellermann2015-01-301-3/+2
| | | | | | | | We already know the offset.
* | decoder/DsdLib: pass offset_type t dsdlib_tag_id3()Max Kellermann2015-01-302-4/+2
| |
* | Merge branch 'v0.19.x'Max Kellermann2015-01-293-15/+14
|\|
| * db/update/Walk: use std::unique_ptr instead of std::auto_ptrMax Kellermann2015-01-291-1/+1
| | | | | | | | | | std::auto_ptr is deprecated, and std::unique_ptr is much better anyway.
| * Avoid integer overflow in MonotonicClock{S,MS,US}PHO2015-01-291-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 bufferMax Kellermann2015-01-291-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 Kellermann2015-01-291-5/+2
| | | | | | | | Merge two free() calls.
| * decoder/DsdLib: raise ID3 tag limit to 1 MBMax Kellermann2015-01-291-1/+1
| | | | | | | | | | A bug report was submitted with a 600 kB ID3 tag that could not be read by MPD.
* | output/fifo: use template AudioOutputWrapperMax Kellermann2015-01-281-47/+39
| |
* | StickerDatabase: convert the struct name to upper caseMax Kellermann2015-01-287-19/+19
| |
* | Merge branch 'v0.19.x'Max Kellermann2015-01-2612-678/+13
|\|
| * Merge branch 'v0.18.x' into v0.19.xMax Kellermann2015-01-2610-660/+3
| |\
| | * {playlist,input}/despotify: remove defunct pluginMax Kellermann2015-01-269-668/+0
| | |
| | * util/list: disable gcc5 warningMax Kellermann2015-01-231-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 Kellermann2015-01-231-3/+3
| | | | | | | | | | | | Fixes gcc5 warning.
| * | Test the existence of strndup(3) before using it.PHO2015-01-261-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_PRCTLMax Kellermann2015-01-211-1/+4
| | | | | | | | | | | | | | | Caused a build failure with uClibc because snprintf() was not available.
* | | pcm/SoxrResampler: move quality recipe names to tableMax Kellermann2015-01-251-25/+23
| | |
* | | tag/Format: add %iso8601%Max Kellermann2015-01-221-0/+27
| | |
* | | ConfigFile: fix typo (parser breakage)Max Kellermann2015-01-221-2/+2
| | |
* | | util/format: allow upper case, digits and underscore in namesMax Kellermann2015-01-221-1/+2
| | |
* | | util/format: move code to is_name_char()Max Kellermann2015-01-221-1/+7
| | |
* | | queue/PlaylistState: remove unused macroMax Kellermann2015-01-221-3/+0
| | |
* | | pcm/SoxrResampler: allow multi-threaded resamplingMax Kellermann2015-01-221-1/+1
| | |
* | | pcm/SoxrResampler: add a global soxr_runtime_spec_t variableMax Kellermann2015-01-221-1/+5
| | |
* | | Config: add section "resampler"Max Kellermann2015-01-227-33/+125
| | |
* | | config/Block: add method IsEmpty()Max Kellermann2015-01-221-0/+5
| | |
* | | config/Param: split block-specific attributes to new struct ConfigBlockMax Kellermann2015-01-21108-713/+851
| | | | | | | | | | | | The old struct config_param remains only for top-level string options.
* | | config/File: move code to ReadConfigParam()Max Kellermann2015-01-211-73/+82
| | |
* | | fs/io/BufferedReader: count line numbersMax Kellermann2015-01-213-26/+38
| | | | | | | | | | | | Replaces the dirty code in config/ConfigFile.cxx.
* | | config/File: use FileReader/BufferedReader instead of stdioMax Kellermann2015-01-211-28/+21
| | |