Commit Graph

305 Commits

Author SHA1 Message Date
Max Kellermann
32e5848f34 util/Error: add "printf" attributes 2014-07-30 22:02:46 +02:00
Max Kellermann
f9e63dfd65 util/DynamicFifoBuffer: fix typo in API documentation 2014-07-30 20:53:09 +02:00
Max Kellermann
d8558a3af3 util/Cast: add "const" overload 2014-07-14 17:08:57 +02:00
Max Kellermann
72eedb1c98 util/Cast: add missing include 2014-07-14 17:08:41 +02:00
Max Kellermann
3c5cf9500d util/Cast: fix indent 2014-07-14 16:44:43 +02:00
Max Kellermann
7a1f3177c9 util/Cast: reimplement as template without macro 2014-07-14 16:24:07 +02:00
Max Kellermann
f8da8b0261 util/Cast: add const overloads 2014-07-14 16:02:02 +02:00
Max Kellermann
393cb7fd7d util/Cast: suppress "unused function" warning by using "inline" 2014-07-14 15:58:12 +02:00
Max Kellermann
e74e1256d4 util/Cast: fix indent 2014-07-14 15:57:48 +02:00
Max Kellermann
211aea1441 util/ConstBuffer: add method skip_front() 2014-06-26 22:25:03 +02:00
Max Kellermann
74a46788cd util/ConstBuffer: wrap assert() in NDEBUG check
Fixes build failure because assert.h was not included.
2014-06-26 13:31:48 +02:00
Max Kellermann
7213c26798 util/ConstBuffer: add method Contains() 2014-06-23 22:30:01 +02:00
Max Kellermann
3ca0a39a35 db/simple: use class boost::intrusive::list
Remove the C list_head library and use type-safe C++ instead.
2014-06-16 18:39:16 +02:00
Max Kellermann
7fb9bebd46 util/{Const,Writable}Buffer: add front(), back(), pop_{front,back}(), shift() 2014-04-24 09:50:19 +02:00
Max Kellermann
3b8a9dd6ec util/{Const,Writable}Buffer: add typedef reference_type 2014-04-24 09:47:59 +02:00
Max Kellermann
a68acf5c66 util/ConstBuffer: add FromVoid(), ToVoid() to "void" specialization
Provide the full API.
2014-03-18 12:09:17 +01:00
Max Kellermann
328860c8ba util/CircularBuffer: add method GetSpace() 2014-03-16 00:28:42 +01:00
Max Kellermann
89ac111853 util/CircularBuffer: add method GetSize() 2014-03-16 00:27:18 +01:00
Max Kellermann
3d4f588a7f util/CircularBuffer: rename GetSize() to GetCapacity() 2014-03-15 23:12:20 +01:00
Max Kellermann
f660d30138 util/CircularBuffer: new buffer class 2014-03-15 18:35:52 +01:00
Max Kellermann
1e06c66c77 java: new helper library for the Android port 2014-03-01 18:48:20 +01:00
Max Kellermann
4ba7427fa0 util/{Const,Writable}Buffer: add operator[] 2014-03-01 07:49:13 +01:00
Max Kellermann
9dc5335e3e util/{Const,Writable}Buffer: add template specialization for "void"
Omit a few methods that are not applicable.
2014-03-01 07:37:58 +01:00
Max Kellermann
d333de1980 util/ConstBuffer: remove cast operator ConstBuffer<void>
This was bugged, because it did not scale the "size".
2014-03-01 07:37:20 +01:00
Max Kellermann
6ba1fe7568 UriUtil: support ftp:// URLs in uri_remove_auth() 2014-02-24 19:59:53 +01:00
Max Kellermann
fb5fbb8088 util/Tokenizer: relicense to BSD-2 2014-02-19 10:41:48 +01:00
Max Kellermann
2b21312b36 util/StringUtil: add StringEndsWith()
Replaces g_str_has_suffix().
2014-02-18 09:18:42 +01:00
Max Kellermann
579e48edbb util/StringUtil: add function Strip()
Replaces g_strstrip().
2014-02-17 22:37:43 +01:00
Max Kellermann
d05ae4b444 util/HugeAllocator: relicense to BSD-2 2014-02-10 13:32:50 +01:00
Max Kellermann
56f082c9d4 util/PeakBuffer: fix nullptr dereference when peak_size==0 2014-01-15 11:24:29 +01:00
Max Kellermann
fe7cda57e4 util/PeakBuffer: fix nullptr dereference when peak_size==0 2014-01-14 23:07:04 +01:00
Max Kellermann
4f83c60296 copyright year 2014 2014-01-13 22:31:55 +01:00
Max Kellermann
139122c57f Merge branch 'v0.18.x' 2014-01-08 22:14:12 +01:00
Max Kellermann
27ca0db7a6 util/Alloc: new library replacing GLib's g_malloc() 2014-01-07 23:35:18 +01:00
Max Kellermann
da80f91e1c Directory: make some code generic, move to VarSize.hxx 2014-01-07 23:10:56 +01:00
Max Kellermann
0d20130d07 util/Cast: new utility library 2014-01-06 18:21:45 +01:00
Max Kellermann
afc70c120e util/UriUtil: uri_get_suffix() fails if name begins with dot
A file called ".jpg" is not a JPEG file with an empty name; it is
merely a hidden file.
2013-12-29 17:40:51 +01:00
Max Kellermann
86e72ffefb util/Clamp: generic Clamp() function 2013-12-22 21:08:06 +01:00
Max Kellermann
d86cd4e4b4 util/fifo_buffer: remove obsolete library 2013-12-19 12:17:09 +01:00
Max Kellermann
a191db84f2 util/Error: add missing <algorithm> include
For std::move().
2013-12-19 10:58:20 +01:00
Max Kellermann
52dca859c7 util/PeakBuffer: use IsEmpty() instead of IsNull()
The DynamicFifoBuffer methods never return nullptr when the buffer is
empty or full; instead, they return an empty buffer.  This bug caused
an endless loop.
2013-12-19 10:30:26 +01:00
Max Kellermann
f544316314 util/{Domain,Error}: relicense to BSD 2-clause 2013-12-16 22:42:01 +01:00
Max Kellermann
ecdebb315f util/PeakBuffer: use DynamicFifoBuffer instead of struct fifo_buffer
Switch to the C++ version.
2013-12-15 23:07:08 +01:00
Max Kellermann
1f523be72d util/PeakBuffer: return ConstBuffer<void> 2013-12-15 23:07:08 +01:00
Max Kellermann
f2a20a0a80 util/WritableBuffer: add cast methods 2013-12-15 23:01:06 +01:00
Max Kellermann
e5a2efaa65 util/WritableBuffer: fix indent 2013-12-15 22:58:32 +01:00
Max Kellermann
c44cb3246d util/DynamicFifoBuffer: make constructor "explicit" 2013-12-15 22:35:21 +01:00
Max Kellermann
635d6a19ef util/Tokenizer, ...: include cleanup 2013-12-15 18:33:26 +01:00
Max Kellermann
777844ae0c system/SocketError, ...: use strerror() instead of g_strerror()
Avoid GLib.
2013-12-15 18:32:07 +01:00
Max Kellermann
e1ec65bd53 UriUtil: add function uri_get_scheme()
Replaces g_uri_parse_scheme().
2013-12-15 17:06:10 +01:00
Max Kellermann
635a67afac util/SplitString: new utility class
To replace g_strdup().
2013-12-14 12:58:26 +01:00
Max Kellermann
ad7302a032 util/DynamicFifoBuffer: new class replacing growing_fifo 2013-12-05 11:49:21 +01:00
Max Kellermann
6f47c1ca20 util/ConstBuffer: new utility class 2013-11-29 22:06:04 +01:00
Max Kellermann
af4133e3c9 Util/StringUtil: add StringStartsWith()
Replaces GLib's g_str_has_prefix().
2013-11-28 18:48:35 +01:00
Max Kellermann
f90abe9530 include cleanup using iwyu 2013-11-28 11:50:54 +01:00
Denis Krjuchkov
db238cc23f CommandLine: new command line parser
This implementation behaves mostly identical to old parser.
Few observable differences:
- There are no option groups (single group is used for all options)
- Option --stdout is hidden (it has been obsolete for a long time)
- MPD executable name (mpd) is hardcoded for simplicity
2013-11-24 17:29:05 +06:00
Max Kellermann
0b6548a282 util/RefCount: no "constexpr" with libc++
Not supported by libc++.
2013-11-11 12:27:16 +01:00
Max Kellermann
faf5821816 util/LazyRandomEngine: make min()/max() static+constexpr
Required for building with libc++.
2013-11-11 12:27:15 +01:00
Max Kellermann
44581dbef5 util/UriUtil: add uri_is_child_or_same() 2013-10-29 21:13:40 +01:00
Max Kellermann
3ac7de7a22 util/NumberParser: add ParseFloat() 2013-10-26 13:49:15 +02:00
Max Kellermann
ade66e7ece util/NumberParser: indent 2013-10-26 13:49:15 +02:00
Max Kellermann
3d12f8d246 UriUtil: uri_remove_auth() returns std::string 2013-10-23 21:58:44 +02:00
Max Kellermann
8f1ec1dfdf util/NumberParser: utilities for parsing numbers from ASCII strings 2013-10-21 09:48:31 +02:00
Max Kellermann
222dc8a239 Util/ASCII: add StringEqualsCaseASCII() overload with length
Replaces GLib's g_ascii_strncasecmp().
2013-10-21 08:42:55 +02:00
Max Kellermann
0e4d2e7277 Util/ASCII: add function StringEqualsCaseASCII()
Replaces GLib's g_ascii_strcasecmp().
2013-10-20 23:09:51 +02:00
Max Kellermann
5dc4cbdf82 util/FormatString: new library to replace g_strdup_printf() 2013-10-19 17:24:21 +02:00
Max Kellermann
b39ab76118 Util/CharUtil: new library replacing g_ascii_isX() 2013-10-19 15:36:47 +02:00
Max Kellermann
58fe352fda util/StringUtil: rename strchug_fast_c() to strchug_fast()
Overload the name.
2013-10-18 12:24:47 +02:00
Max Kellermann
f6d74012b7 util/Error: add method SetLastError() 2013-10-17 19:29:38 +02:00
Max Kellermann
5e26e2ab1d system/ByteOrder: new library for byte ordering / endianess
Replacing GLib macros.
2013-10-16 22:09:44 +02:00
Max Kellermann
08eca827b6 util/ByteReverse: use C99 "restrict"
Micro-optimization.
2013-10-16 22:07:59 +02:00
Max Kellermann
6b2b5af344 util/byte_reverse: convert to C++ 2013-10-16 22:07:52 +02:00
Max Kellermann
509f8dab89 Util/Macros: replacement for GLib's G_N_ELEMENTS() 2013-10-15 22:47:39 +02:00
Max Kellermann
84d20d9e43 util/FifoBuffer: C++ version of the fifo_buffer library 2013-10-15 10:28:52 +02:00
Max Kellermann
be2951b45f gcc.h: rename to Compiler.h 2013-10-15 09:21:59 +02:00
Max Kellermann
6fd481df97 Mapper, ...: use memcmp() instead of strncmp() where appropriate
Micro-optimization.
2013-10-14 22:00:21 +02:00
Max Kellermann
29030b54c9 util/Error: new error passing library
Replaces GLib's GError.
2013-09-04 18:14:22 +02:00
Max Kellermann
abe090ec1f *: remove remaining __cplusplus checks 2013-08-07 19:58:52 +02:00
Max Kellermann
953e3190ca encoder/lame: use ReusableBuffer instead of AllocatedArray 2013-08-07 18:53:24 +02:00
Max Kellermann
44a0e21795 PcmBuffer: move code to new class ReusableBuffer
ReusableBuffer is more generic.
2013-08-07 18:51:21 +02:00
Max Kellermann
66f678023f util/Manual: add missing include <utility> 2013-08-06 22:34:20 +02:00
Max Kellermann
3f04a4d635 encoder/lame: dynamic output buffer 2013-08-06 09:13:28 +02:00
Max Kellermann
85b77b81ca *: use gcc.h macros instead of GLib 2013-08-04 23:48:01 +02:00
Max Kellermann
28030d7edb include cleanup 2013-07-30 08:39:21 +02:00
Max Kellermann
d300e6bf21 util/Manual: work around strict-aliasing warning 2013-04-11 00:01:08 +02:00
Max Kellermann
0921180b90 string_util: convert to C++ 2013-04-09 01:08:20 +02:00
Max Kellermann
450c26c471 tokenizer: convert to C++ 2013-04-08 23:51:39 +02:00
Max Kellermann
7ec1121cc8 uri: convert to C++ 2013-04-08 23:45:31 +02:00
Max Kellermann
762c91b7f1 util/Manual: new template class 2013-01-30 23:48:34 +01:00
Max Kellermann
ba51045d9e refcount: convert to C++ 2013-01-29 23:20:19 +01:00
Max Kellermann
3e03527930 Client: move output buffer code to new class PeakBuffer 2013-01-15 10:59:28 +01:00
Max Kellermann
4fa724461e util/fifo_buffer: add method _init() 2013-01-15 10:59:28 +01:00
Max Kellermann
f9fc3a42cc fifo_buffer: move to util/ 2013-01-15 01:02:13 +01:00
Max Kellermann
0308ec564e util/list: don't use GLib 2013-01-08 16:41:36 +01:00
Max Kellermann
5b8b7d1412 util/LazyRandomEngine: lazy wrapper for std::mt19937 2013-01-07 21:27:51 +01:00
Max Kellermann
223b90d0d4 MusicBuffer: return memory to kernel when stopping playback
Use the new HugeAllocator as backend for SliceBuffer and call
HugeDiscard() when the last chunk was returned.
2013-01-04 20:48:28 +01:00
Max Kellermann
692b2cfb79 HugeAllocator: new memory allocator 2013-01-04 20:38:06 +01:00
Max Kellermann
447a86c922 SliceBuffer: lazy initialization
Avoid page faults on MPD startup.  This saves a lot of memory for an
idle MPD.
2013-01-04 20:29:47 +01:00
Max Kellermann
e3a2bd3a1e MusicBuffer: move code to template class SliceBuffer 2013-01-04 17:12:21 +01:00
Max Kellermann
8e331cfc65 gcc.h: re-add gcc_const and gcc_pure
Remove GLib dependency from some headers.
2012-08-02 19:12:18 +02:00
Max Kellermann
123ae985d5 util/list: make safe for C++ 2012-08-01 09:59:12 +02:00
Max Kellermann
95d9bb6dfc pcm_byteswap: move code to libutil 2012-03-21 18:58:19 +01:00
Max Kellermann
c1d0a8b5ce dsd2pcm: move the bit reversing code to a generic library
Instead of doing run-time initialisation, use a constant lookup table.
2012-03-21 08:44:43 +01:00
Max Kellermann
69d3c611aa util/list: allow typeof() with clang 2012-03-19 20:37:25 +01:00
Max Kellermann
a989140a07 util/list.h: import the Linux kernel's linked list library 2012-01-24 20:49:52 +01:00