Commit Graph

11342 Commits

Author SHA1 Message Date
Max Kellermann 68c023cdd8 config/Path: simplify expression 2018-08-02 09:43:48 +02:00
Max Kellermann b18b0bf328 config/Path: remove unnecessary IsNull() check
`AllocatedPath::FromUTF8Throw()` will never return a nulled instance.
2018-08-02 09:43:17 +02:00
Max Kellermann 2a2c5d50ff unix/PidFile: add "noexcept" 2018-08-01 20:27:56 +02:00
Max Kellermann dfda0faac7 unix/{Daemon,PidFile}: throw exception on error
Don't use the bad `FatalError` library.
2018-08-01 20:20:29 +02:00
Max Kellermann 95acc4be07 Main: add "noexcept" 2018-08-01 20:16:40 +02:00
Max Kellermann 330a4cf573 Main: remove exception handler from mpd_main_after_fork()
Let MainOrThrow() forward it to mpd_main().
2018-08-01 20:15:54 +02:00
Max Kellermann 6ffbb151a0 Main: move log_deinit() call to mpd_main()
Deinitialize the logging library after the last exception handler,
because that one could still need it.

Use `AtScopeExit()` to ensure it's always called, even if an exception
was thrown.
2018-08-01 20:14:31 +02:00
Max Kellermann 271e49db5d Main: move code to MainOrThrow(), leaving exception handler in mpd_main() 2018-08-01 20:13:27 +02:00
Max Kellermann 8d2101ccb4 Main: move libdbus cleanup to class ODBus::ScopeInit 2018-08-01 19:24:50 +02:00
Max Kellermann 7aa8497546 SongFilter: implement the AND operator 2018-07-30 10:19:31 +02:00
Max Kellermann 7a8d5070f5 Songfilter: move code to ExpectWord() 2018-07-30 10:18:42 +02:00
Max Kellermann 8707ae6fd4 Songfilter: allow redundant parantheses 2018-07-30 10:00:44 +02:00
Max Kellermann 8786b61636 SongFilter: make ParseExpression() static 2018-07-30 09:57:04 +02:00
Max Kellermann 1b5faf5cbf SongFilter: move code from SongFilter to AndSongFilter 2018-07-29 18:39:47 +02:00
Yue Wang 1e88e71b9a [OSXOutputPlugin] Fix a bug that the stream sample rate is missing
the code here tried to guard DSD features behind ENABLE_DSD. However, the sample rate setting should be shared between two scenarios. 

https://github.com/MusicPlayerDaemon/MPD/commit/40a1ebee295c569521ea17ffdedc641d1aedd9cb#diff-ce7ecec9ea9ca3df90d9c290cb3ef9d4R795


The code runs fine if the dac supports the sample rate, as Mac OS  will use the device rate if stream rate is 0. 
However, when DAC is uncapable of processing the sample rate, a wrong rate (device rate) will be used for the stream rate.
2018-07-28 00:06:56 -07:00
Max Kellermann e16fd4a09b input/qobuz: initialize the libgcrypt library 2018-07-26 18:26:46 +02:00
Max Kellermann 7db7568dcf lib/gcrypt/MD5: move code to util/HexFormat.cxx 2018-07-26 17:46:56 +02:00
Max Kellermann 409d3c7136 lib/gcrypt/MD5: return a StringBuffer 2018-07-26 17:45:45 +02:00
Max Kellermann 7f81375861 lib/gcrypt/MD5: move code to Hash.hxx 2018-07-26 12:14:31 +02:00
Max Kellermann 0de39a431b lib/gcrypt/MD5: relicense to BSD-2 2018-07-26 12:14:00 +02:00
Max Kellermann 1726278ccc SongFilter: make several macros internal 2018-07-25 11:32:41 +02:00
Max Kellermann 8661a51aba SongFilter: make locate_parse_type() static 2018-07-25 11:30:56 +02:00
Max Kellermann 42ec67168a command/Database: don't use locate_parse_type() 2018-07-25 11:29:14 +02:00
Max Kellermann 91af2ebc2a command/Database: move code to handle_list_file() 2018-07-25 11:27:12 +02:00
Max Kellermann f7fb8a33d7 db/Print: pass TagType to PrintUniqueTags() 2018-07-25 11:21:47 +02:00
Max Kellermann 0505cb8f7e db/Print: move code to PrintSongUris() 2018-07-25 11:18:45 +02:00
Max Kellermann 2cfccc1c34 SongFilter: make Item an interface
Prepare to allow more complex expressions.
2018-07-25 11:04:41 +02:00
Max Kellermann 438366effc SongFilter: move code to class StringFilter 2018-07-25 11:04:41 +02:00
Max Kellermann 29d5ad667c SongFilter: allow dash in tag name
Required for "modified-since".
2018-07-25 11:04:41 +02:00
Max Kellermann 235ddc0990 util/TimeISO8601: new utility library 2018-07-25 08:43:06 +02:00
Max Kellermann 517f5b1999 util/TimeConvert: new utility library 2018-07-25 08:34:52 +02:00
Max Kellermann a8ac8b2563 TimePrint: remove unused time_t overload 2018-07-25 08:33:59 +02:00
Max Kellermann 78a65cf281 SongFilter: remove DetachedSong overloads
All DetachedSong instances should be converted to LightSong first,
which is a very cheap operation.
2018-07-25 07:43:05 +02:00
Max Kellermann 96017f58a5 decoder/ffmpeg: skip the av_probe_input_format() call
This is kind of a revert of commit
b2e3c0757b, which is not any longer
necessary since commit 0dd4b52b63
removed the last call to `av_open_input_stream()`.
2018-07-25 00:07:16 +02:00
Max Kellermann c8e6f50d55 input/buffered: fix bogus offset after Seek()
Instead of copying the offset from our `input`, copy the requested
offset to our `offset` attribute.

By the time Seek() finishes, our input's offset may have advanced
already, having read some more data, thus giving us a bogus offset.

This fixes spurious decoder failues (closes #320).
2018-07-25 00:01:43 +02:00
Max Kellermann 9263d6d07d SongFilter: implement operator "!="
Closes #89
2018-07-24 23:24:42 +02:00
Max Kellermann 5271e81ebe SongFilter: new extensible filter syntax
Will allow more complex fitler expression, such as negation (#89).
2018-07-24 23:05:36 +02:00
Max Kellermann efb2051b30 SongFilter: add ToExpression() 2018-07-24 23:04:44 +02:00
Max Kellermann a2b24cb5a2 SongFilter: pass std::string&& to Item constructor 2018-07-24 23:03:35 +02:00
Max Kellermann a54f9ede2e SongFilter: use std::list::emplace_back() 2018-07-24 23:03:33 +02:00
Max Kellermann 7f1b134137 SongFilter: basic support for negated items
Not yet wired to the protocol.
2018-07-21 11:20:50 +02:00
Max Kellermann b34fd905c8 SongFilter: simplify Parse() loop
Consume the ConstBuffer instead of iterating it.  This will allow
adding more complex parsers.
2018-07-21 07:36:42 +02:00
Max Kellermann 821f77325c SongFilter: Parse() throws exception on error 2018-07-21 07:24:42 +02:00
Max Kellermann bd8cf7c53d SongFilter: make internal Parse() overload private 2018-07-21 07:21:27 +02:00
Max Kellermann 88c19c21ee SongFilter: remove obsolete prototype 2018-07-21 07:15:43 +02:00
Max Kellermann 40ec819330 SongFilter: make a few methods private 2018-07-21 07:15:09 +02:00
Max Kellermann 34dbd03be1 SongFilter: convert "tag" to "unsigned"
Having this as one-byte integer actually adds overhead and saves no
memory due to padding.
2018-07-21 07:04:01 +02:00
Max Kellermann b98263e86f fs/io/OutputStream: relicense under BSD-2 2018-07-19 14:02:37 +02:00
Max Kellermann f30265a9ee config/File: support wildcards in "include" 2018-07-18 17:28:30 +02:00
Max Kellermann fcbcec6856 fs/List: new library exporting ListWildcard() 2018-07-18 17:18:38 +02:00