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
Max Kellermann
b778fb38a9
util/StringAPI: add raw strcmp() wrapper
2018-07-18 17:18:34 +02:00
Max Kellermann
32290d5eb8
fs/Path: add method ToUTF8Throw()
2018-07-18 16:51:29 +02:00
Max Kellermann
f87265a4d5
fs/AllocatedPath: divert some methods to class Path
...
Eliminate duplicate code.
2018-07-18 16:51:29 +02:00
Max Kellermann
6448b31b11
util/StringAPI: add strpbrk() wrapper
2018-07-18 16:51:29 +02:00
Max Kellermann
998227cffc
fs/CheckFile: remove variable path_utf8
2018-07-18 16:51:29 +02:00
Max Kellermann
09f743dc1a
config/File: add directive "include_optional"
2018-07-18 13:10:36 +02:00
Max Kellermann
035f986a91
config/File: support absolute paths in "include"
2018-07-18 13:09:04 +02:00
Max Kellermann
b168a9d469
fs/Traits: add Apply()
2018-07-18 13:06:07 +02:00
Max Kellermann
2b1d6ad396
fs/{,Allocated}Path: add typedef Traits
2018-07-18 13:05:23 +02:00
Max Kellermann
06c2aef3c7
config/File: fix typo in comment
2018-07-18 12:39:39 +02:00
Max Kellermann
d06ef76e58
config/File: implement the "include" directive
...
This is an experimental draft. More needs to be done.
2018-07-18 11:27:41 +02:00
Max Kellermann
57729683b6
config/Data: pass new items by rvalue reference
2018-07-18 11:21:59 +02:00
Max Kellermann
9ff2606bb8
config/Data: use std::forward_list to manage params and blocks
2018-07-18 11:03:19 +02:00
Max Kellermann
fd80683ade
decoder/mad: make "gapless_mp3_playback" a block option
...
Remove another dependency on the config/Global library.
2018-07-18 10:50:09 +02:00
Max Kellermann
49efb6071c
config/Migrate: library to migrate deprecated settings
2018-07-18 10:25:02 +02:00
Max Kellermann
8df98932b1
config/Data: add methods AddParam(), AddBlock()
2018-07-18 10:17:45 +02:00
Max Kellermann
95481dda86
config/Global: remove unused function config_get_param()
2018-07-17 23:42:20 +02:00
Max Kellermann
113141bf2a
StateFileConfig: add attribute "restore_paused"
2018-07-17 23:40:14 +02:00
Max Kellermann
bcc1e51097
StateFile: add struct StateFileConfig
2018-07-17 23:27:50 +02:00
Max Kellermann
e8a7c6cee3
config/Global: remove unused function config_get_block()
2018-07-17 23:14:47 +02:00
Max Kellermann
0c8ffa1ac3
output/MultipleOutputs: use struct ConfigData
2018-07-17 23:13:35 +02:00
Max Kellermann
4f678aa244
neighbor/Glue: use struct ConfigData
2018-07-17 23:11:33 +02:00
Max Kellermann
3a4a430f6c
fs/Config: use struct ConfigData
2018-07-17 23:09:56 +02:00
Max Kellermann
36db40b224
client/Global: use struct ConfigData
2018-07-17 23:07:50 +02:00
Max Kellermann
426b9672cf
db/Configured: use struct ConfigData
2018-07-17 23:06:17 +02:00
Max Kellermann
4d80419982
pcm/ConfiguredResampler: use struct ConfigData
2018-07-17 23:04:26 +02:00
Max Kellermann
3983caa2c8
Listen: use struct ConfigData
2018-07-17 23:02:53 +02:00
Max Kellermann
0b4e0b7bcb
LogInit: use struct ConfigData
2018-07-17 23:02:06 +02:00
Max Kellermann
a9b8d5ecb6
Permission: use struct ConfigData
2018-07-17 23:00:42 +02:00
Max Kellermann
60b2338091
config/Global: remove unused function config_get_path()
2018-07-17 22:59:09 +02:00
Max Kellermann
d2594c6380
storage/Configured: use struct ConfigData
2018-07-17 22:57:08 +02:00