Commit Graph

612 Commits

Author SHA1 Message Date
Max Kellermann
c4403c523f AudioOutput: add constructor and destructor 2014-01-28 12:37:58 +01:00
Max Kellermann
68b79f97f3 output: rename source files 2014-01-28 11:42:54 +01:00
Max Kellermann
815d72065c output: rename struct audio_output to AudioOutput 2014-01-28 11:34:09 +01:00
Max Kellermann
e0dc721324 OutputPlugin: rename struct audio_output_plugin to AudioOutputPlugin 2014-01-28 11:33:15 +01:00
Max Kellermann
f5a923b9d1 OutputAll: convert to class, move instance to class Partition
Another big chunk of code for multi-player support.
2014-01-28 09:20:53 +01:00
Max Kellermann
68eda78704 Mixer*: move to mixer/ 2014-01-24 16:44:32 +01:00
Max Kellermann
7c52a1c04b Filter*: move to filter/ 2014-01-24 16:43:57 +01:00
Max Kellermann
e199c33c6e Client*: move to client/ 2014-01-24 00:26:53 +01:00
Max Kellermann
197b503f3e Config*: move to config/ 2014-01-24 00:20:01 +01:00
Max Kellermann
ea5b901bcc output/*: move to output/plugins/ 2014-01-23 23:49:50 +01:00
Max Kellermann
655ad34414 Encoder*: move to src/encoder
.. and move the plugins to src/encoder/plugins/.
2014-01-23 23:09:14 +01:00
Max Kellermann
4f83c60296 copyright year 2014 2014-01-13 22:31:55 +01:00
Max Kellermann
27ca0db7a6 util/Alloc: new library replacing GLib's g_malloc() 2014-01-07 23:35:18 +01:00
Max Kellermann
793962c5b8 event/SocketMonitor: don't close the socket automatically
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-06 18:26:55 +01:00
Max Kellermann
0d20130d07 util/Cast: new utility library 2014-01-06 18:21:45 +01:00
Max Kellermann
4ddfc6e9a2 output/httpd: move the clients.clear() call to the IOThread
This call is not thread-safe.
2014-01-05 02:13:35 +01:00
Max Kellermann
dcbc05a9cd output/httpd: import GetEventLoop() 2014-01-05 02:13:21 +01:00
Max Kellermann
bfe7533546 output/httpd: move Bind()/Unbind() to the IOThread
Fixes more thread-safety bugs.
2014-01-04 19:29:51 +01:00
Max Kellermann
c9da3363a0 output/httpd: move all broadcast operations to the IOThread
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-04 18:22:55 +01:00
Max Kellermann
9bd4ed3e60 output/httpd: use the IOThread
Do all I/O in the IOThread and not in the main thread.  This solves an
upcoming deadlock problem.
2014-01-04 18:21:40 +01:00
Max Kellermann
68fcc19565 output/httpd: move queue size check to HttpdClient::PushPage()
Don't let the server care for client problems.
2014-01-04 17:42:03 +01:00
Max Kellermann
8e4efd071e output/httpd: wrap the std::list in std::queue 2014-01-04 17:12:59 +01:00
Max Kellermann
f2ad9f6fad output/httpd: merge duplicate code to ClearQueue() 2014-01-04 17:11:22 +01:00
Max Kellermann
968c5eb767 output/httpd: keep track of queue size
Don't iterate the std::list each time.
2014-01-04 17:06:05 +01:00
Max Kellermann
d477a9222e output/httpd: change "struct" to "class" 2013-12-31 17:04:40 +01:00
Max Kellermann
69a9d29190 output/httpd: move code to methods Delay(), Play(), Cancel() 2013-12-31 17:01:08 +01:00
Max Kellermann
e2425592b6 output/httpd: move Cast() into the class 2013-12-31 16:59:24 +01:00
Max Kellermann
964b2661d8 output/httpd: add methods Init(), Finish() 2013-12-31 16:55:26 +01:00
Max Kellermann
8b65b524d5 output/httpd: use reference instead of pointer 2013-12-31 16:32:33 +01:00
Max Kellermann
f1ac2cd336 output/httpd: make the HttpdClient base class "private" 2013-12-31 16:24:51 +01:00
Max Kellermann
45ad7696fe output/osx: fix typo 2013-12-19 12:46:21 +01:00
Max Kellermann
0e84d71559 output/osx: use DynamicFifoBuffer instead of struct fifo_buffer 2013-12-19 12:16:29 +01:00
Max Kellermann
65b8e52d80 output/alsa: use new[] instead of g_malloc() 2013-12-14 22:17:19 +01:00
Max Kellermann
c7b1038a9d Merge branch 'v0.18.x' 2013-12-14 12:37:16 +01:00
Lukas Stabe
695ca29274 output/osx: fix build failure 2013-12-10 19:19:31 +01:00
Max Kellermann
e1901e97c2 system/Resolver: sockaddr_to_string() returns std::string()
No GLib memory allocation.
2013-12-04 08:43:55 +01:00
Lukas Stabe
0ea5f4ac3a output/openal: check __APPLE__ instead of HAVE_OSX
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-12-02 13:08:52 +01:00
Max Kellermann
f90abe9530 include cleanup using iwyu 2013-11-28 11:50:54 +01:00
Denis Krjuchkov
22fb49fa90 HttpdOutputPlugin.cxx: fix null pointer dereference 2013-11-26 18:13:23 +06:00
Max Kellermann
188673b746 output/httpd: don't use incomplete template argument with libc++ 2013-11-11 08:31:50 +01:00
Max Kellermann
62baec1841 output/alsa: avoid endless loop in Raspberry Pi workaround
See code comment.
2013-11-04 23:40:34 +01:00
Max Kellermann
ecf12a60e8 Log: add level "DEFAULT"
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-11-04 22:27:49 +01:00
Max Kellermann
8555b65c50 *: update copyright year to 2013 2013-10-30 23:37:06 +01:00
Max Kellermann
20597b3632 *: use nullptr instead of NULL 2013-10-28 23:58:17 +01:00
Oddegamra
5f13c1cd9c output/httpd: accept icy-metadata with and without space
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-26 16:32:00 +02:00
Max Kellermann
e17da71a70 output/httpd: support HEAD requests 2013-10-25 00:32:48 +02:00
Max Kellermann
610bef9ff5 output/httpd: remove bogus assertion 2013-10-25 00:26:02 +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
a78b2d84ed TagType: rename enum tag_type to TagType 2013-10-20 13:32:59 +02:00
Max Kellermann
5dc4cbdf82 util/FormatString: new library to replace g_strdup_printf() 2013-10-19 17:24:21 +02:00