Max Kellermann
72af3c0489
decoder_plugin: rename struct to DecoderPlugin
2013-10-21 20:31:34 +02:00
Max Kellermann
65e54f6ed1
decoder/modplug: use WritableBuffer instead of GByteArray
...
Eliminate the temporary buffer, do I/O right into the WritableBuffer.
2013-10-21 20:22:53 +02:00
Max Kellermann
10196496f3
decoder/modplug: move code to LoadModPlugFile()
2013-10-21 20:19:27 +02:00
Max Kellermann
86f08862e4
playlist/EmbeddedCue: use std::string for the "cuesheet" attribute
2013-10-21 10:53:31 +02:00
Max Kellermann
83c726a34f
GetBaseUTF8
2013-10-21 10:50:22 +02:00
Max Kellermann
a0415f73d4
archive/bz2: remove unused function bz2_quark()
2013-10-21 10:50:22 +02:00
Max Kellermann
93068f10ec
fs/AllocatedPath: don't include glib.h
2013-10-21 10:27:14 +02:00
Max Kellermann
7142c81c05
DirectorySave: use Directory::GetName()
2013-10-21 10:04:59 +02:00
Max Kellermann
c0421a57da
input/curl: don't use GLib's typedef "gushort"
2013-10-21 09:54:21 +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
2bbff77e48
OutputControl: convert anonymous enum to constexpr
2013-10-20 13:53:01 +02:00
Max Kellermann
3315c67f0f
Inotify: convert anonymous enum to constexpr
2013-10-20 13:51:55 +02:00
Max Kellermann
b879bcb1eb
UpdateWalk: convert anonymous enum to constexpr
2013-10-20 13:50:34 +02:00
Max Kellermann
ae99135c8d
Main: convert anonymous enum to constexpr
2013-10-20 13:47:32 +02:00
Max Kellermann
1defb38a6f
DatabaseSave: convert anonymous enum to constexpr
2013-10-20 13:46:13 +02:00
Max Kellermann
56bc9e12ee
ClientInternal: convert anonymous enum to constexpr
2013-10-20 13:45:47 +02:00
Max Kellermann
116ebe0494
Idle: convert anonymous enum to constexpr
2013-10-20 13:45:21 +02:00
Max Kellermann
5ec843dcc8
*Commands: move to src/command/
2013-10-20 13:41:04 +02:00
Max Kellermann
a78b2d84ed
TagType: rename enum tag_type to TagType
2013-10-20 13:32:59 +02:00
Max Kellermann
cf4d80fc65
command: convert command_return to to a strictly-typed enum
2013-10-20 13:10:54 +02:00
Max Kellermann
8118bc93a8
FatalError: remove unused GError overload
2013-10-20 13:10:09 +02:00
Max Kellermann
c772bc45c6
PlaylistError: convert playlist_result to a strictly-typed enum
2013-10-20 13:06:40 +02:00
Max Kellermann
c1e7be3b8e
decoder/sidplay: add header file
2013-10-20 13:05:50 +02:00
Max Kellermann
17ecc56e83
decoder/sidplay: update file name
2013-10-20 13:03:58 +02:00
Max Kellermann
75ba961e97
Client: move message functions into the class
2013-10-19 19:44:45 +02:00
Max Kellermann
c2d5ce0ca2
Client: move trivial functions into the Client class
2013-10-19 19:39:40 +02:00
Max Kellermann
32645b80c4
ClientInternal: move class Client to Client.hxx
...
Publish the Client API, preparing to move more code into the Client
class.
2013-10-19 19:35:37 +02:00
Max Kellermann
ff626ac763
*: use references instead of pointers
2013-10-19 18:48:38 +02:00
Max Kellermann
59f8144c50
*: use nullptr instead of NULL
2013-10-19 18:19:03 +02:00
Max Kellermann
5a7c931293
input/cdio: use class AllocatedPath
2013-10-19 17:48:46 +02:00
Max Kellermann
1373d40fea
decoder/mpg123: use const_cast instead of g_strdup()
2013-10-19 17:46:00 +02:00
Max Kellermann
3274bb54ad
event/ServerSocket: pass AllocatedPath to AddPath()
2013-10-19 17:40:56 +02:00
Max Kellermann
7db124068f
ConfigPath: use std::string
2013-10-19 17:32:49 +02:00
Max Kellermann
39e2ffe212
decoder/mikmod: use const_cast instead of g_strdup()
2013-10-19 17:30:56 +02:00
Max Kellermann
0a213ddf03
input/curl: use std::string for meta_name
...
Automatic memory management.
2013-10-19 17:24:21 +02:00
Max Kellermann
5dc4cbdf82
util/FormatString: new library to replace g_strdup_printf()
2013-10-19 17:24:21 +02:00
Max Kellermann
1434e5a22e
decoder/gme,input/curl,...: use static buffers instead of g_strdup_printf()
2013-10-19 17:15:17 +02:00
Max Kellermann
9acc1e1e97
Permission: use std::find instead of g_strsplit()
2013-10-19 16:47:56 +02:00
Max Kellermann
daa47546c7
Permission: move code to ParsePermission() and a table
2013-10-19 16:47:41 +02:00
Max Kellermann
c5194d0a8f
Permission: convert PERMISSION_* from macro to constexpr
2013-10-19 16:47:23 +02:00
Max Kellermann
7ece8ff85c
Permission: remove nullptr check
...
Both callers pass non-nullptr.
2013-10-19 16:40:40 +02:00
Max Kellermann
a4effeb3f9
Permission: convert PERMISSION_PASSWORD_CHAR from macro to constexpr
2013-10-19 16:39:45 +02:00
Max Kellermann
d3f28a1d7f
FilterConfig: use std::find instead of g_strsplit_set()
2013-10-19 16:34:11 +02:00
Max Kellermann
03cddd0acf
FilterConfig: return bool
2013-10-19 16:29:56 +02:00
Max Kellermann
04a737e04c
FilterConfig: move code to filter_chain_append_new()
2013-10-19 16:26:51 +02:00
Max Kellermann
966c54bef5
FilterConfig: eliminate duplicate API documentation
2013-10-19 16:23:40 +02:00
Max Kellermann
efcd9dfc35
ConfigData: use strtoul() in GetUnsignedValue()
...
Lifts the artificial 31 bit limit in i386 where
sizeof(long)==sizeof(int).
2013-10-19 16:12:52 +02:00
Sebastian Thorarensen
db44a6e948
decoder/modplug: Add "loop_count" parameter
...
The "loop_count" configuration parameter allows the user to set how
many times a module with backward loops shall loop. "0" (the default)
means a module is not allowed to use backward loops at all. "-1"
enables inifinite looping.
2013-10-19 16:12:17 +02:00
Sebastian Thorarensen
d6553fc6a7
ConfigData: Add support for signed integers
...
Now config_param::GetBlockValue() can be used to get signed integers
from the configuration.
2013-10-19 16:11:33 +02:00
Ben Boeckel
fc9014f7ec
PlayerThread: Only drop 0 length packets without tags
...
Fixes a regression from 752dfb3d95
which
caused the current chunk to be flushed as soon as new replaygain
information was found. If this occurs on a tag chunk, it has no data
(length 0) and is then skipped before pushing it to all of the outputs.
This change allows 0-length chunks through if they contain a tag and
they are now appearing in mplayer and mpv properly.
2013-10-19 15:45:11 +02:00
Max Kellermann
b39ab76118
Util/CharUtil: new library replacing g_ascii_isX()
2013-10-19 15:36:47 +02:00
Max Kellermann
90777f78c9
playlist/(Ext)M3u: use strchug_fast()
2013-10-19 15:36:47 +02:00
Max Kellermann
8e063829c4
encoder/{opus,vorbis}: new serial generator replacing g_random_int()
2013-10-19 14:43:24 +02:00
Max Kellermann
139c6be370
encoder/wave: include cleanup
2013-10-19 02:05:44 +02:00
Sebastian Thorarensen
b6ac249c3c
decoder/mikmod: Add loop configuration parameter
...
This patch allows the user to configure the mikmod decoder plugin to loop
modules. It adds a configuration parameter to the mikmod decoder called
"loop" which can be "no" (the old behaviour, default) or "yes" to allow
modules to use backward loops.
2013-10-18 14:23:24 +02:00
Max Kellermann
5e103b5fb7
filter/route: merge the two loops, one-pass parsing
2013-10-18 12:24:49 +02:00
Max Kellermann
de5be62da5
filter/route: allocate "sources" statically
...
Worst-case allocation using MAX_CHANNELS.
2013-10-18 12:24:47 +02:00
Max Kellermann
b5f608d026
filter/route: use int8_t instead of signed char
2013-10-18 12:24: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
b105093dcd
ZeroconfAvahi: convert avahiRunning to a "bool"
2013-10-18 10:50:14 +02:00
Max Kellermann
d1c401fe7a
ZeroconfAvahi: integrate into the EventLoop
...
Finally fixes the regression by commit c1f4f1fd
.
2013-10-18 09:16:55 +02:00
Max Kellermann
43863a70c8
SignalMonitor: add SignalMonitorGetEventLoop()
...
Eliminate the global variable "shutdown_loop".
2013-10-18 08:44:40 +02:00
Max Kellermann
bd5a70c712
input/curl: use MultiSocketMonitor constants instead of GLib
2013-10-18 08:30:44 +02:00
Max Kellermann
bcfc62a3f2
PlaylistEdit, QueueSave: free the Song object after Append()
...
Fix for a major memory leak.
2013-10-18 01:12:47 +02:00
Max Kellermann
abfbd55305
fs/Path: rename to AllocatedPath
...
The new class Path only holds a string pointer without being
responsible for allocation/deallocation. The FileSystem.hxx library
accepts Path arguments instead of AllocatedPath, to avoid forcing
callers to allocate another string object.
2013-10-17 23:43:46 +02:00
Max Kellermann
b3611524f4
fs/Path: move definitions to struct PathTraits
2013-10-17 23:23:25 +02:00
Max Kellermann
a63613dba0
fs/Path: include clenaup
2013-10-17 23:20:26 +02:00
Max Kellermann
7fec2b02d4
fs/Charset: GetFSCharset() returns "utf-8" by default
...
If fs_charset is empty, i.e. we're using the default "utf-8",
GetFSCharset() should return exactly that instead of an empty
std::string.
2013-10-17 22:47:09 +02:00
Max Kellermann
608a98c873
fs/Charset: default filesystem charset is UTF-8
...
Implement a fast path for UTF-8 which leaves fs_charset empty, and
don't assign a value to fs_charset if there's no configuration.
2013-10-17 22:42:22 +02:00
Max Kellermann
f951e5356b
fs/Charset: don't allow nullptr arguments
2013-10-17 22:39:06 +02:00
Max Kellermann
080ee87e07
fs/Path: move configuration code to Config.cxx
2013-10-17 22:29:03 +02:00
Max Kellermann
fa60b9ae94
fs/Path: move path_domain to Domain.hxx
2013-10-17 22:20:53 +02:00
Max Kellermann
0d33ae52c6
fs/Path: make fs_charset static
2013-10-17 22:10:27 +02:00
Max Kellermann
77e4b28092
fs/Path: include cleanup
2013-10-17 22:08:57 +02:00
Max Kellermann
4817437d31
fs/Limits: convert macro to "constexpr"
2013-10-17 22:08:56 +02:00
Max Kellermann
354b5a9365
fs/Path: move MPD_PATH_MAX to Limits.hxx
2013-10-17 22:00:01 +02:00
Max Kellermann
58502b38d3
*: use std::numeric_limits
2013-10-17 21:53:19 +02:00
Max Kellermann
d44880dfa9
UpdateGlue: handle update id management
...
Add UpdateQueueItem::id to keep track of the id in every item.
Replaces thhe hack in update_queue_push().
2013-10-17 21:45:53 +02:00
Max Kellermann
0c63632cc2
UpdateGlue: pass UpdateQueueItem around
...
Fixes a few kludges and avoids GLib allocation.
2013-10-17 21:45:42 +02:00
Max Kellermann
b93523c0b1
UpdateGlue: never pass null to update_enqueue()
2013-10-17 21:45:41 +02:00
Max Kellermann
7ef40de98b
UpdateQueue: use std::string and std::queue
2013-10-17 21:13:40 +02:00
Max Kellermann
196ec25682
Mapper: use std::string
2013-10-17 19:54:58 +02:00
Max Kellermann
c85af12d45
StickerDatabase: return std::string
2013-10-17 19:39:23 +02:00
Max Kellermann
e452d1f5b4
StickerDatabase: add pure/const attributes
2013-10-17 19:39:22 +02:00
Max Kellermann
ffea268d2e
PlayerControl: GetError() returns an Error, not a char*
2013-10-17 19:34:59 +02:00
Max Kellermann
8e676db633
Thread/Thread: replacement library for GThread
2013-10-17 19:29:47 +02:00
Max Kellermann
f6d74012b7
util/Error: add method SetLastError()
2013-10-17 19:29:38 +02:00
Max Kellermann
32dfc11c23
Main: use ThreadId instead of GThread*
2013-10-17 19:28:34 +02:00
Max Kellermann
05de2e998c
InputStream: use int64_t instead of goffset
...
Decouple some more from GLib.
2013-10-17 10:45:10 +02:00
Max Kellermann
24780d99e6
input_plugin: rename struct to "InputPlugin"
2013-10-17 10:20:57 +02:00
Max Kellermann
7c1cf61728
thread/{Cond,Mutex}: use "class" instead of "typedef"
...
Allows forward-declaration.
2013-10-17 10:06:31 +02:00
Max Kellermann
eb10d08671
CueParser: use std::string
2013-10-17 01:34:10 +02:00
Max Kellermann
abb0549e4b
InotifyUpdate: use class Path
2013-10-17 01:16:46 +02:00
Max Kellermann
5327ea13ac
PlaylistSave: eliminate the last g_warning() call
2013-10-17 01:15:54 +02:00
Max Kellermann
be8ceae6e6
Song: GetURI() returns std::string
2013-10-17 01:01:15 +02:00
Max Kellermann
67ae033de7
ArchiveLookup: in-place editing, avoid string copy
2013-10-17 00:54:20 +02:00
Max Kellermann
161f7ced96
ArchiveLookup: declare local variables later
2013-10-17 00:48:58 +02:00
Max Kellermann
72bc11b180
ArchiveLookup: don't reset out arguments
...
If we return false, their values are undefined.
2013-10-17 00:46:26 +02:00
Max Kellermann
15c2538532
ArchiveLookup: move code to FindSlash()
2013-10-17 00:44:57 +02:00
Max Kellermann
fd9dd9343b
ArchiveLookup: move code to FindSuffix()
2013-10-17 00:38:26 +02:00
Max Kellermann
1b8a1d4140
ArchiveLookup: return const strings
2013-10-17 00:36:52 +02:00
Max Kellermann
e132d10aec
ArchiveLookup: move API documentation to header
2013-10-17 00:36:35 +02:00
Max Kellermann
d6967db761
decoder/wildmidi: remove suport for libwildmidi 0.2.2 or older
2013-10-16 23:57:26 +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
f32fbd9ed1
pcm_pack: convert to C++
2013-10-16 22:07:43 +02:00
Max Kellermann
e3511d0ee0
encoder/wave: use delete to dispose the WaveEncoder object
2013-10-16 22:07:32 +02:00
Max Kellermann
fa13a6616f
Archive*: move archive_domain to ArchiveDomain.cxx
...
Merge duplicate symbol.
2013-10-15 23:24:54 +02:00
Max Kellermann
d4c2f91182
ConfigData: remove unused method DupBlockString()
2013-10-15 23:19:44 +02:00
Max Kellermann
084fd8df63
playlist/soundcloud: use std::string
2013-10-15 23:17:53 +02:00
Max Kellermann
328131b7aa
output/roar: use const_cast instead of g_strdup()
2013-10-15 23:14:34 +02:00
Max Kellermann
85003429af
output/roar: use std::string
2013-10-15 23:11:32 +02:00
Max Kellermann
6db77dcf75
output/roar: move code into the RoarOutput class
2013-10-15 22:58:38 +02:00
Max Kellermann
1cde86823d
output/pipe: use std::string
2013-10-15 22:52:04 +02:00
Max Kellermann
dbd88e6aef
Client, ...: remove unnecessary glib.h include
2013-10-15 22:51:09 +02:00
Max Kellermann
45418583e9
ApeTag: use std::string for temporary allocation
2013-10-15 22:50:02 +02:00
Max Kellermann
77a1133723
PlaylistRegistry: use std::string for temporary allocation
2013-10-15 22:49:51 +02:00
Max Kellermann
25c208d81d
input/*: don't allocate attribute "mime"
...
This was a memory leak, because "mime" was a std::string which created
another copy and discarded the allocated buffer.
2013-10-15 22:49:23 +02:00
Max Kellermann
67f87db511
UpdateArchive: use std::string for temporary string
2013-10-15 22:49:12 +02:00
Max Kellermann
7de96275dd
ConfigData: use std::string for config_param::value
2013-10-15 22:49:01 +02:00
Max Kellermann
e13d0bf656
Permission: use std::string for temporary password allocation
...
As a side effect, this fixes a memory leak.
2013-10-15 22:48:09 +02:00
Max Kellermann
8ed9f7effa
Mapper: remove obsolete variable music_dir_fs_length
2013-10-15 22:48:01 +02:00
Max Kellermann
12ab556477
event/BufferedSocket: pass writable pointer to OnSocketInput()
...
Remove the const_cast from HttpdClient.cxx, and avoid one allocation
in ClientRead.cxx.
2013-10-15 22:47:46 +02:00
Max Kellermann
509f8dab89
Util/Macros: replacement for GLib's G_N_ELEMENTS()
2013-10-15 22:47:39 +02:00
Max Kellermann
77429b6dd3
output/winmm: use delete instead of g_free()
2013-10-15 22:47:25 +02:00
Max Kellermann
84d20d9e43
util/FifoBuffer: C++ version of the fifo_buffer library
2013-10-15 10:28:52 +02:00
Max Kellermann
0c13703da3
system/clock: convert to C++
2013-10-15 09:38:12 +02:00
Max Kellermann
b97b7a7493
require GLib 2.28
...
The header glib_compat.h is now obsolete and can be removed.
2013-10-15 09:35:25 +02:00
Max Kellermann
be2951b45f
gcc.h: rename to Compiler.h
2013-10-15 09:21:59 +02:00
Max Kellermann
1dd1a705b5
gcc.h: major update
...
Copy the according file from another project (i.e. XCSoar). This will
allow copying more code more easily.
2013-10-15 09:13:22 +02:00
Max Kellermann
e4e80ff0cb
*: use WIN32 instead of G_OS_WIN32
2013-10-15 08:33:44 +02:00
Max Kellermann
9508ea982b
fs/Path: add method IsAbsolute()
2013-10-14 22:38:29 +02:00
Max Kellermann
47d655ea7f
fs/Path: add separator constants/functions
2013-10-14 22:26:23 +02:00
Max Kellermann
62271bf6ce
PlaylistFile: always check for absolute paths within music_directory
...
Try map_fs_to_utf8() first, and fall back to Path::ToUTF8() for
absolute paths.
2013-10-14 22:21:22 +02:00
Max Kellermann
0b27ac2f5c
fs/Path: add method RelativeFS()
...
Move code from map_fs_to_utf8().
2013-10-14 22:09:02 +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
b915e43391
fs/Path: add method data()
2013-10-14 21:57:43 +02:00
Max Kellermann
c96b295700
PlaylistFile: fix memory leak
...
Consistently use std::string in LoadPlaylistFile().
2013-10-14 21:53:08 +02:00
Max Kellermann
9067da2df8
Mapper: map_fs_to_utf8() returns std::string
...
Avoid the conversion to an allocated char*, let the caller decide.
2013-10-14 21:43:41 +02:00
Max Kellermann
8cf2f52f7a
Merge tag 'release-0.17.6'
2013-10-14 21:40:56 +02:00
Florian Schlichting
d9c662d51f
decoder/modplug: fix include directory
2013-10-14 21:12:47 +02:00
Max Kellermann
ad631d563b
stored_playlist: use fs_charset_to_utf8() for URLs
2013-10-14 21:11:20 +02:00
Max Kellermann
7cbaf11dda
load_file
2013-10-14 21:00:46 +02:00
Max Kellermann
3be63549c0
stored_playlist: add "file://" prefix to absolute paths
...
Prepare to fix loading arbitrary song files from stored playlists.
2013-10-14 20:52:49 +02:00
Max Kellermann
17c6db6c33
replay_gain_*.h: rename to *.hxx
2013-10-02 12:22:12 +02:00
Max Kellermann
86316b1828
output/httpd: don't include glib.h in header
2013-10-02 12:20:36 +02:00
Max Kellermann
efc3a69dbf
Stats: don't include glib.h in header
...
Use forward declaration instead.
2013-10-02 12:16:52 +02:00