Commit Graph

13237 Commits

Author SHA1 Message Date
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
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
Rasmus Steinke 641447bf9b remove remaining docbook syntax; update year in footer 2018-07-18 12:52:39 +02:00
Max Kellermann 06c2aef3c7 config/File: fix typo in comment 2018-07-18 12:39:39 +02:00