aboutsummaryrefslogtreecommitdiffstats
path: root/src/output (unfollow)
Commit message (Collapse)AuthorFilesLines
2014-01-07util/Alloc: new library replacing GLib's g_malloc()Max Kellermann1-1/+1
2014-01-06event/SocketMonitor: don't close the socket automaticallyMax Kellermann1-0/+3
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 Kellermann1-1/+2
2014-01-05output/httpd: move the clients.clear() call to the IOThreadMax Kellermann1-1/+3
This call is not thread-safe.
2014-01-05output/httpd: import GetEventLoop()Max Kellermann2-3/+5
2014-01-04output/httpd: move Bind()/Unbind() to the IOThreadMax Kellermann1-4/+8
Fixes more thread-safety bugs.
2014-01-04output/httpd: move all broadcast operations to the IOThreadMax Kellermann2-11/+76
Add a Page queue to class HttpdOutput, and use DeferredMonitor to flush this queue inside the IOThread. This fixes a thread-safety issue: much of EventLoop is not thread-safe, and the httpd plugin ignored that problem.
2014-01-04output/httpd: use the IOThreadMax Kellermann1-2/+2
Do all I/O in the IOThread and not in the main thread. This solves an upcoming deadlock problem.
2014-01-04output/httpd: move queue size check to HttpdClient::PushPage()Max Kellermann3-18/+6
Don't let the server care for client problems.
2014-01-04output/httpd: wrap the std::list in std::queueMax Kellermann2-6/+16
2014-01-04output/httpd: merge duplicate code to ClearQueue()Max Kellermann2-5/+15
2014-01-04output/httpd: keep track of queue sizeMax Kellermann2-13/+14
Don't iterate the std::list each time.
2013-12-31output/httpd: change "struct" to "class"Max Kellermann3-4/+7
2013-12-31output/httpd: move code to methods Delay(), Play(), Cancel()Max Kellermann2-22/+46
2013-12-31output/httpd: move Cast() into the classMax Kellermann2-25/+23
2013-12-31output/httpd: add methods Init(), Finish()Max Kellermann2-12/+29
2013-12-31output/httpd: use reference instead of pointerMax Kellermann3-14/+14
2013-12-31output/httpd: make the HttpdClient base class "private"Max Kellermann1-1/+1
2013-12-19output/osx: fix typoMax Kellermann1-1/+1
2013-12-19output/osx: use DynamicFifoBuffer instead of struct fifo_bufferMax Kellermann1-26/+21
2013-12-14output/alsa: use new[] instead of g_malloc()Max Kellermann1-6/+5
2013-12-10output/osx: fix build failureLukas Stabe1-3/+3
2013-12-04system/Resolver: sockaddr_to_string() returns std::string()Max Kellermann1-8/+3
No GLib memory allocation.
2013-12-02output/openal: check __APPLE__ instead of HAVE_OSXLukas Stabe1-1/+1
On OSX, the configure-flag --enable-osx is used to enable the unsupported osx output. It sets the HAVE_OSX preprocessor define. src/output/OpenALOutputPlugin.cxx uses this define to determine wether it is building on OSX, and imports different headers (which have nothing to do with the osx output) depending on wether or not it is set.
2013-11-28include cleanup using iwyuMax Kellermann4-10/+1
2013-11-26HttpdOutputPlugin.cxx: fix null pointer dereferenceDenis Krjuchkov1-1/+2
2013-11-11output/httpd: don't use incomplete template argument with libc++Max Kellermann1-0/+5
2013-11-04output/alsa: avoid endless loop in Raspberry Pi workaroundMax Kellermann1-1/+17
See code comment.
2013-11-04Log: add level "DEFAULT"Max Kellermann1-1/+1
Map LogLevel::INFO to G_LOG_LEVEL_INFO, and LogLevel::DEFAULT to G_LOG_LEVEL_MESSAGE. Now client connect/disconnect message are only logged on log_level "secure".
2013-10-30*: update copyright year to 2013Max Kellermann2-2/+2
2013-10-28*: use nullptr instead of NULLMax Kellermann2-18/+18
2013-10-26output/httpd: accept icy-metadata with and without spaceOddegamra1-1/+2
Some, or most, Win32 audio players will pass "icy-metadata:1" to streaming servers. MPD expects a space between ":" and "1" at this point, and thus does not send any stream metadata. This applies to foobar2k and Winamp, for example. According to forums.radiotoolbox.com/viewtopic.php?t=74 not having a space there is expected behavior, so maybe MPD could accept both forms to determine if metadata should be sent or not.
2013-10-25output/httpd: support HEAD requestsMax Kellermann2-5/+29
2013-10-25output/httpd: remove bogus assertionMax Kellermann1-1/+0
2013-10-21Util/ASCII: add StringEqualsCaseASCII() overload with lengthMax Kellermann1-3/+3
Replaces GLib's g_ascii_strncasecmp().
2013-10-20TagType: rename enum tag_type to TagTypeMax Kellermann2-2/+2
2013-10-19util/FormatString: new library to replace g_strdup_printf()Max Kellermann1-4/+2
2013-10-17fs/Path: rename to AllocatedPathMax Kellermann1-3/+4
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-16system/ByteOrder: new library for byte ordering / endianessMax Kellermann2-7/+5
Replacing GLib macros.
2013-10-15output/roar: use const_cast instead of g_strdup()Max Kellermann1-9/+3
2013-10-15output/roar: use std::stringMax Kellermann1-12/+10
2013-10-15output/roar: move code into the RoarOutput classMax Kellermann2-96/+137
2013-10-15output/pipe: use std::stringMax Kellermann1-8/+6
2013-10-15event/BufferedSocket: pass writable pointer to OnSocketInput()Max Kellermann2-8/+6
Remove the const_cast from HttpdClient.cxx, and avoid one allocation in ClientRead.cxx.
2013-10-15Util/Macros: replacement for GLib's G_N_ELEMENTS()Max Kellermann2-10/+12
2013-10-15output/winmm: use delete instead of g_free()Max Kellermann1-2/+2
2013-10-15gcc.h: rename to Compiler.hMax Kellermann2-2/+2
2013-10-14Mapper, ...: use memcmp() instead of strncmp() where appropriateMax Kellermann1-2/+2
Micro-optimization.
2013-10-02output/httpd: don't include glib.h in headerMax Kellermann3-4/+6
2013-10-02Log: new logging library APIMax Kellermann16-124/+131
Prepare to migrate away from GLib. Currently, we're still using GLib as a backend.