aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* event/Loop: remove bogus "!quit" assertionMax Kellermann2014-01-041-5/+3
| | | | | | | Commit 1f11959 allowed modifying the "quit" attribute from any thread, and thus the assertion may fail spuriously. This assertion is too strict for the relaxed use of "quit". Let's remove it and move the "quit" check to before the SockedMonitor::Dispatch() call.
* event/Loop: remove unused method AddCall()Max Kellermann2014-01-042-28/+0
|
* event/Loop: non-recursive Break() implementationMax Kellermann2014-01-041-4/+2
| | | | | | Simply set the "quit" flag and wake up the thread. This works even if we're inside this thread. Setting "quit" to a new value without mutex protection is usually not safe, but good enough here.
* mixer/alsa: use DeferredMonitor to update file descriptorsMax Kellermann2014-01-041-14/+7
| | | | | EventLoop::AddCall() and EventLoop::AddIdle() are unsafe, because we can't cancel those calls.
* event/BlockingCall: always use DeferredMonitor internallyMax Kellermann2014-01-041-24/+0
| | | | | There is no advantage of using EventLoop::AddCall(), now that DeferredMonitor is thread-safe.
* event/DeferredMonitor: make fully thread-safeMax Kellermann2014-01-044-54/+77
| | | | | | | | | | | | | Instead of creating a new eventfd for each DeferredMonitor instance, reuse EventLoop's eventfd, and add a std::list to EventLoop that manages the list of pending DeferredMonitors. This std::list is protected by the same mutex as the "calls" list. The bottom line is: reduced overhead because the per-instance eventfd was eliminated, slightly added overhead due to Mutex usage (but negligible), and we're thread-safe now. This subsystem is now good enough to replace EventLoop::AddCall().
* Added application key for soundcloud pluginJames McGlashan (DarkFox)2014-01-041-1/+2
|
* Added soundcloud documentationJames McGlashan (DarkFox)2014-01-041-0/+41
|
* Added user and search paramaters for SoundCloud pluginJames McGlashan (DarkFox)2014-01-041-0/+8
|
* http -> https for SoundCloud pluginJames McGlashan (DarkFox)2014-01-022-6/+8
|
* output/httpd: change "struct" to "class"Max Kellermann2013-12-313-4/+7
|
* output/httpd: move code to methods Delay(), Play(), Cancel()Max Kellermann2013-12-312-22/+46
|
* output/httpd: move Cast() into the classMax Kellermann2013-12-312-25/+23
|
* output/httpd: add methods Init(), Finish()Max Kellermann2013-12-312-12/+29
|
* output/httpd: use reference instead of pointerMax Kellermann2013-12-313-14/+14
|
* output/httpd: make the HttpdClient base class "private"Max Kellermann2013-12-311-1/+1
|
* event/*Monitor: document as not being thread-safeMax Kellermann2013-12-314-0/+15
|
* event/Loop: document that AddCall() is thread-safeMax Kellermann2013-12-311-0/+5
|
* command: "lsinfo" and "readcomments" allowed for remote filesMax Kellermann2013-12-296-0/+68
|
* SongUpdate: read tags from songs in an archiveMax Kellermann2013-12-295-5/+131
| | | | | Add the TagStream.cxx library, similar to TagFile.cxx, and use it to load tags from song files inside archives.
* InputStream: add static method OpenReady()Max Kellermann2013-12-2911-62/+47
| | | | Merge some duplicate code.
* TagFile: rewind the stream before trying the next pluginMax Kellermann2013-12-291-1/+2
| | | | Got lost in commit c97685fe
* DecoderList: add "pure" attributeMax Kellermann2013-12-291-0/+1
|
* DecoderList: add function decoder_plugins_supports_suffix()Max Kellermann2013-12-294-54/+20
| | | | Replaces decoder_plugin_from_suffix().
* DecoderThread: use decoder_plugins_try()Max Kellermann2013-12-291-32/+44
| | | | | .. instead of decoder_plugin_from_suffix(). This reduces overhead by walking the array only once.
* UpdateContainer: pass suffix instead of DecoderPluginMax Kellermann2013-12-293-6/+18
| | | | | Instead of using the first DecoderPlugin that supports the suffix, use the first one that actually implements the "container_scan" method.
* TagFile: pass reference instead of pointerMax Kellermann2013-12-295-9/+6
|
* TagFile: use decoder_plugins_try()Max Kellermann2013-12-291-41/+54
| | | | | | .. instead of decoder_plugin_from_suffix(). This reduces overhead by walking the array only once.
* DecoderList: remove unused function decoder_plugin_from_mime_type()Max Kellermann2013-12-292-25/+0
|
* Merge branch 'v0.18.x'Max Kellermann2013-12-293-9/+18
|\
| * configure.ac: improved check for libyajl 1.0Max Kellermann2013-12-292-1/+3
| | | | | | | | | | | | | | | | If we have libyajl 2.0.1 (without a pkg-config file), our configure.ac would assume this is the libyajl 1.0 API, because the function yajl_alloc() exists in both. This commit changes the library check to the function yajl_parse_complete() which was removed in the 2.0 API. This fixes build failure with libyajl 2.0.1.
| * daemon: no initgroups() when already running as the configured userMax Kellermann2013-12-292-1/+7
| | | | | | | | | | We can assume that initgroups() would be a no-op in that case, however initgroups() is not allowed for unprivileged users anyway.
| * Daemon: fix typo in commentMax Kellermann2013-12-291-1/+1
| |
| * Daemon: simplify nested "if"Max Kellermann2013-12-291-5/+4
| |
| * Daemon: fix typo in castMax Kellermann2013-12-291-1/+1
| |
| * configure.ac: prepare for 0.18.7Max Kellermann2013-12-292-1/+3
| |
* | input/smbclient: new input pluginMax Kellermann2013-12-298-0/+274
| |
* | ls: add "pure" attributeMax Kellermann2013-12-291-0/+3
| |
* | pcm/Volume: remove unused function pcm_volume_dither()Max Kellermann2013-12-281-16/+0
| |
* | pcm/PcmMix: improved ditheringMax Kellermann2013-12-285-25/+48
| | | | | | | | Use the existing PcmDither library.
* | pcm/Volume: improved ditheringMax Kellermann2013-12-286-22/+59
| | | | | | | | | | Instead of just adding a rectangular random value before shifting back to the normal scale, use the existing PcmDither library.
* | pcm/PcmDither: inline Dither24To16() and Dither32To16()Max Kellermann2013-12-283-4/+5
| |
* | pcm/Volume: remove optimized i386 assemblyMax Kellermann2013-12-281-50/+0
| | | | | | | | | | This code is unable to dither. Until we implement that, let's remove the code for now. i386 isn't relevant anymore anyway.
* | pcm/Traits: use 32 bit integer for S8 long_typeMax Kellermann2013-12-251-1/+1
| | | | | | | | 16 bit is not enough for volume calculations.
* | pcm/Dither: add API documentationMax Kellermann2013-12-241-0/+18
| |
* | pcm/Dither: move shift from DitherConvert() to Dither()Max Kellermann2013-12-241-2/+2
| | | | | | | | All callers need this shift, so let's move it to the basic method.
* | pcm/Dither: rename DitherShift() to DitherConvert()Max Kellermann2013-12-242-11/+11
| |
* | test/*: use fprintf(stderr,...) and Log() instead of g_printerr()Max Kellermann2013-12-2412-110/+102
| | | | | | Avoid GLib.
* | test/*: remove GLib logging setupMax Kellermann2013-12-245-60/+0
| | | | | | | | Obsolete, our logging library doesn't ues GLib anymore.
* | Merge tag 'release-0.18.6'Max Kellermann2013-12-246-8/+21
|\|