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
a174159496
test/ParseSongFilter: new debug program
2018-07-24 23:04:47 +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
05fb624031
doc/protocol.xml: group <arg> elements
2018-07-24 23:03:09 +02:00
Max Kellermann
2de98b652b
doc/protocol.xml: move filter syntax to separate section
2018-07-24 22:36:03 +02:00
Max Kellermann
361ad92da9
doc/protocol.xml: improve find/search links
2018-07-24 22:36:00 +02:00
Max Kellermann
84ff71002e
doc/user: remove the obsolete DocBook version
...
Was converted to reStructuredText / Sphinx in commit
8a689e68bc
2018-07-24 22:28:29 +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
Rasmus Steinke
504776a10f
fix spelling
2018-07-21 08:14:53 +02:00
Rasmus Steinke
184b90bb88
fix wrong ref labels
2018-07-21 08:13:40 +02:00
Rasmus Steinke
cf85fcec79
fix wrong language type for code-blocks
2018-07-21 08:05:37 +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
Rasmus Steinke
42d41647b5
fix wrong format of code sample
2018-07-20 23:50:14 +02:00
Rasmus Steinke
c91db14cef
add missing formatting
2018-07-20 23:47:39 +02:00
Rasmus Steinke
10b925e7ac
highlight actual tag_names
2018-07-20 23:42:45 +02:00
Max Kellermann
c9942846c9
doc: link the user manual in the TOC
2018-07-20 23:09:22 +02:00
Rasmus Steinke
6235cf066a
fix missing paragraphs in tables
2018-07-20 20:25:24 +02:00
Rasmus Steinke
86979c8f04
Use correct headers
2018-07-20 16:06:26 +02:00
Rasmus Steinke
8a689e68bc
Convert user documentation to restructuredText
2018-07-20 15:31:10 +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