aboutsummaryrefslogtreecommitdiffstats
path: root/src (unfollow)
Commit message (Collapse)AuthorFilesLines
2014-01-09Directory: remove method Free()Max Kellermann4-13/+5
2014-01-09db/proxy: allocate Directory instance on the stackMax Kellermann1-7/+3
2014-01-09Directory: convert to fixed-size structMax Kellermann2-56/+15
Using a variable-size struct with embedded string is not worth the trouble here. There are not so many Directory objects.
2014-01-09Timer: remove unused method Synchronize()Max Kellermann2-15/+0
2014-01-09playlist/{asx,rss,xspf}: use Expat instead of GLib to parse XMLMax Kellermann6-258/+201
2014-01-09playlist/asx: make variables more localMax Kellermann1-7/+6
2014-01-09DetachedSong: fork of struct SongMax Kellermann66-745/+773
From now on, struct Song will be used by the database only, and DetachedSong will be used by everybody else. DetachedSong is easier to use, but Song has lower overhead.
2014-01-08SongUpdate: move code to handle_lsinfo()Max Kellermann5-20/+30
Don't create a temporary Song object in handle_lsinfo(). Instead, print all tags while parsing the remote file.
2014-01-08SongSave: make variables more localMax Kellermann1-5/+4
2014-01-08decoder/faad: fix memory leakMax Kellermann1-0/+2
2014-01-08playlist/pls: don't free stack bufferMax Kellermann1-1/+0
2014-01-08playlist/pls: make variables more localMax Kellermann1-17/+9
2014-01-08playlist/pls: convert "while" loop to "for" loopMax Kellermann1-2/+1
2014-01-08playlist/pls: simplify error handlerMax Kellermann1-11/+4
Don't pass a GError** to g_key_file_get_X(). We don't need to dispose something we didn't request in the first place.
2014-01-08DespotifyUtils: return Tag, not pointerMax Kellermann4-12/+12
2014-01-08DespotifyUtils: pass const ds_track referenceMax Kellermann4-17/+17
2014-01-08tag/TagBuilder: overload Commit() returning a Tag objectMax Kellermann7-12/+24
2014-01-08tag/TagBuilder: rename Commit() to CommitNew()Max Kellermann20-23/+23
2014-01-08input/AlsaInputPlugin: remove unnecessary alsa s/w param setting to fix high ↵Steven O'Brien1-9/+0
CPU load issue
2014-01-08SongSticker: use Song referencesMax Kellermann4-31/+26
2014-01-08PlayerThread: use Song referencesMax Kellermann1-15/+13
2014-01-08DecoderThread: use Song referencesMax Kellermann1-10/+10
2014-01-07util/Alloc: new library replacing GLib's g_malloc()Max Kellermann19-57/+208
2014-01-07DecoderBuffer: use NewVarSize()Max Kellermann1-13/+10
2014-01-07tag/TagPool: use NewVarSize() to allocate TagPoolSlotMax Kellermann1-21/+27
2014-01-07tag/TagPool: rename struct slot to TagPoolSlotMax Kellermann1-14/+13
2014-01-07tag/TagPool: use gcc_packed instead of mpd_packedMax Kellermann1-1/+1
By accident, this declared a global variable instead of adding the "packed" attribute.
2014-01-07Directory: make some code generic, move to VarSize.hxxMax Kellermann3-10/+93
2014-01-07Directory: use g_malloc() instead of g_malloc0()Max Kellermann1-3/+4
Explicit attribute initialization.
2014-01-07playlist/soundcloud: parse URI without copying itMax Kellermann1-19/+11
2014-01-07playlist/soundcloud: change scheme check to assertionMax Kellermann1-18/+2
The MPD core takes care for checking the scheme.
2014-01-07playlist/soundcloud: eliminate nullptr checks before g_free()Max Kellermann1-8/+4
2014-01-07pcm/Utils: remove unused function pcm_end_pointer()Max Kellermann1-12/+0
2014-01-07pcm/Volume: use number of samples instead of end pointerMax Kellermann1-25/+19
2014-01-06pcm/Format: change parameters/return values to ConstBufferMax Kellermann3-259/+160
2014-01-06pcm/Format: use number of samples instead of end pointerMax Kellermann1-44/+34
2014-01-06DecoderBuffer: _read() returns ConstBuffer objectMax Kellermann3-68/+55
2014-01-06DecoderBuffer: add "pure" attributesMax Kellermann1-0/+4
2014-01-06DecoderBuffer: add method _clear()Max Kellermann3-8/+12
2014-01-06decoder/faad: make variables more localMax Kellermann1-47/+31
2014-01-06decoder/faad: eliminate local variable "ret"Max Kellermann1-5/+2
2014-01-06event/Loop: cancel the WakeFD monitor in destructorMax Kellermann1-0/+4
2014-01-06input/AlsaInputPlugin.cxx: use I/O thread to poll for available dataSteven O'Brien1-55/+289
[mk: modified to use MultiSocketMonitor instead of SocketMonitor]
2014-01-06event/MultiSocketMonitor: add method ClearSocketList()Max Kellermann3-1/+17
2014-01-06event/SocketMonitor: don't close the socket automaticallyMax Kellermann12-21/+20
Users now have to call Close() explicitly. This simplifies using the class, as most users have automatic socket management already, and Steal() had to be used often.
2014-01-06util/Cast: new utility libraryMax Kellermann3-2/+62
2014-01-06event/IdleMonitor: cancel in destructor only if activeMax Kellermann1-1/+6
Debug-mode workaround for bogus assertion failure.
2014-01-06event/MultiSocketMonitor: API documentationMax Kellermann1-0/+10
2014-01-05event/Loop: try to avoid the WakeFD when adding DeferredMonitorMax Kellermann2-2/+24
Add a flag that indicates whether the EventLoop is currently "busy". As long as that flag is set, it does not need to be woken up - we can simply add the DeferredMonitor to the list, and it will be caught by EventLoop very soon. This eliminates nearly all of the DeferredMonitor overhead when compared to IdleMonitor, rendering IdleMonitor mostly obsolete.
2014-01-05event/Loop: combine multiple WakeFD::Write() callsMax Kellermann1-1/+6
Reduce DeferredMonitor overhead.