Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | input/smbclient: new input plugin | Max Kellermann | 2013-12-29 | 2 | -0/+228 |
| | |||||
* | Merge tag 'release-0.18.6' | Max Kellermann | 2013-12-24 | 1 | -1/+1 |
|\ | |||||
| * | input/cdio: fix typo in #include path | Max Kellermann | 2013-12-17 | 1 | -1/+1 |
| | | | | | | | | Broken by commit 3b0fea5f | ||||
* | | input/alsa: fix build with gcc 4.6 | Max Kellermann | 2013-12-21 | 1 | -12/+12 |
| | | |||||
* | | add draft ALSA input plugin | Steven O'Brien | 2013-12-19 | 2 | -0/+234 |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I've created an elementary input plugin that plays sound from the soundcard, so you can use MPD to listen to anything connected to the line-in jack, or to Video4Linux FM radio cards that send audio through the soundcard. There has been a small number of posts here in the past requesting line-in input, so here is a first, simplistic stab at it. The patch adds a new sheme, alsa://, which causes mpd to play data read directly from a souncdard. It defaults to hw:0,0, but you can pass any ALSA device name in the URI. So, using mpc for example: mpc add alsa:// mpc play will play from device hw:0,0. To use a diffferent device: mpc add alsa://hw:1,0 | ||||
* | | input/despotify: don't log "eof" flag after setting it | Max Kellermann | 2013-12-14 | 1 | -1/+1 |
| | | |||||
* | | input/despotify: convert to class | Max Kellermann | 2013-12-14 | 1 | -45/+73 |
| | | |||||
* | | Merge branch 'v0.18.x' | Max Kellermann | 2013-12-14 | 1 | -0/+5 |
|\| | |||||
| * | input/cdio_paranoia: support libcdio-paranoia 0.90 | Gaetan Bisson | 2013-11-27 | 1 | -0/+5 |
| | | |||||
* | | fs/Traits: split PathTraits type into PathTraitsFS and PathTraitsUTF8 | Denis Krjuchkov | 2013-12-05 | 2 | -2/+2 |
| | | |||||
* | | input/curl: use class TagBuilder | Max Kellermann | 2013-12-03 | 1 | -4/+10 |
| | | |||||
* | | Util/StringUtil: add StringStartsWith() | Max Kellermann | 2013-11-28 | 4 | -17/+16 |
| | | | | | | | | Replaces GLib's g_str_has_prefix(). | ||||
* | | include cleanup using iwyu | Max Kellermann | 2013-11-28 | 5 | -8/+0 |
|/ | |||||
* | input/curl: work around stream resume bug (fixed in libcurl 7.32.0) | Max Kellermann | 2013-11-23 | 1 | -0/+17 |
| | |||||
* | input/curl: add global variable "curl_version" | Max Kellermann | 2013-11-23 | 1 | -0/+7 |
| | |||||
* | input/curl: dump version number | Max Kellermann | 2013-11-23 | 1 | -0/+8 |
| | |||||
* | input/cdio_paranoia: add setting "default_byte_order" | Max Kellermann | 2013-11-07 | 1 | -2/+26 |
| | | | | | | Allows big-endian users to configure the fallback byte order to little-endian. Without this setting, MPD assumes native byte order if the CD drive can't decide. | ||||
* | input/curl: unregister removed sockets from epoll | Max Kellermann | 2013-11-07 | 1 | -1/+9 |
| | | | | Fixes a crash bug. See code comment. | ||||
* | input/curl: fix bug with redirected streams | Max Kellermann | 2013-11-06 | 1 | -110/+138 |
| | | | | | | | | | | | Migrate from the old curl_multi_perform() API to the newer curl_multi_socket_action() API (since CURL 7.16). This allows working around a bug with HTTP redirections with epoll: when CURL closes a socket and the new one happens to have the same file number, MPD did not have a chance to remove the old one from epoll and subsequently attempted to use EPOLL_CTL_MOD, which was not allowed by epoll, because it's a new socket now. | ||||
* | input/curl: move code into class CurlMulti | Max Kellermann | 2013-11-06 | 1 | -43/+66 |
| | | | | | Move all global variables there, and keep just one global variable: the pointer to the CurlMulti instance. Prepares for the next commit. | ||||
* | input/curl: remove the global list of requests | Max Kellermann | 2013-11-06 | 1 | -13/+0 |
| | | | | Unused. | ||||
* | input/curl: don't abort all requests on curl_multi_perform() error | Max Kellermann | 2013-11-06 | 1 | -40/+7 |
| | | | | Eliminate some complicated code that's not worth the trouble. | ||||
* | input/curl: use CURLOPT_PRIVATE | Max Kellermann | 2013-11-06 | 1 | -5/+7 |
| | | | | Replaces the loop in input_curl_find_request(). | ||||
* | *: update copyright year to 2013 | Max Kellermann | 2013-10-30 | 2 | -2/+2 |
| | |||||
* | *: use nullptr instead of NULL | Max Kellermann | 2013-10-28 | 3 | -14/+14 |
| | |||||
* | input_stream: rename struct to InputStream | Max Kellermann | 2013-10-23 | 9 | -59/+59 |
| | |||||
* | InputInternal: remove obsolete library | Max Kellermann | 2013-10-23 | 7 | -7/+0 |
| | |||||
* | input/curl: don't use GLib's typedef "gushort" | Max Kellermann | 2013-10-21 | 1 | -1/+2 |
| | |||||
* | util/NumberParser: utilities for parsing numbers from ASCII strings | Max Kellermann | 2013-10-21 | 1 | -3/+3 |
| | |||||
* | Util/ASCII: add function StringEqualsCaseASCII() | Max Kellermann | 2013-10-20 | 1 | -7/+8 |
| | | | | Replaces GLib's g_ascii_strcasecmp(). | ||||
* | *: use nullptr instead of NULL | Max Kellermann | 2013-10-19 | 1 | -34/+34 |
| | |||||
* | input/cdio: use class AllocatedPath | Max Kellermann | 2013-10-19 | 1 | -10/+9 |
| | |||||
* | input/curl: use std::string for meta_name | Max Kellermann | 2013-10-19 | 1 | -9/+5 |
| | | | | Automatic memory management. | ||||
* | decoder/gme,input/curl,...: use static buffers instead of g_strdup_printf() | Max Kellermann | 2013-10-19 | 1 | -9/+7 |
| | |||||
* | Util/CharUtil: new library replacing g_ascii_isX() | Max Kellermann | 2013-10-19 | 1 | -2/+3 |
| | |||||
* | input/curl: use MultiSocketMonitor constants instead of GLib | Max Kellermann | 2013-10-18 | 1 | -3/+6 |
| | |||||
* | fs/Path: move definitions to struct PathTraits | Max Kellermann | 2013-10-17 | 2 | -4/+4 |
| | |||||
* | InputStream: use int64_t instead of goffset | Max Kellermann | 2013-10-17 | 5 | -10/+17 |
| | | | | Decouple some more from GLib. | ||||
* | input_plugin: rename struct to "InputPlugin" | Max Kellermann | 2013-10-17 | 15 | -19/+17 |
| | |||||
* | ArchiveLookup: return const strings | Max Kellermann | 2013-10-17 | 1 | -2/+2 |
| | |||||
* | system/ByteOrder: new library for byte ordering / endianess | Max Kellermann | 2013-10-16 | 1 | -2/+3 |
| | | | | Replacing GLib macros. | ||||
* | Archive*: move archive_domain to ArchiveDomain.cxx | Max Kellermann | 2013-10-15 | 1 | -3/+1 |
| | | | | Merge duplicate symbol. | ||||
* | input/*: don't allocate attribute "mime" | Max Kellermann | 2013-10-15 | 4 | -6/+6 |
| | | | | | This was a memory leak, because "mime" was a std::string which created another copy and discarded the allocated buffer. | ||||
* | fs/Path: add method IsAbsolute() | Max Kellermann | 2013-10-14 | 2 | -2/+4 |
| | |||||
* | Mapper, ...: use memcmp() instead of strncmp() where appropriate | Max Kellermann | 2013-10-14 | 1 | -2/+2 |
| | | | | Micro-optimization. | ||||
* | Log: new logging library API | Max Kellermann | 2013-10-02 | 8 | -30/+30 |
| | | | | | Prepare to migrate away from GLib. Currently, we're still using GLib as a backend. | ||||
* | input/curl: fix EventLoop stall after curl_easy_pause | Artem Savkov | 2013-09-26 | 1 | -0/+1 |
| | | | | | | | | When playing finite http streams, e.g. something from soundcloud, eventloop stalls after pausing writefunc. TimeoutMonitor is cancelled by the time resume happens, so when enough data is consumed writefunc is called only once. Calling InvalidateSockets() from input_curl_resume() seems to fix the issue. | ||||
* | Tag, ...: move to libtag.a | Max Kellermann | 2013-09-05 | 3 | -3/+3 |
| | |||||
* | input/curl: enable https | Ales Guzik | 2013-09-05 | 1 | -1/+2 |
| | |||||
* | conf.h: remove obsolete header | Max Kellermann | 2013-09-05 | 1 | -1/+2 |
| | | | | | Use only ConfigData.hxx in plugin sources to reduce header dependencies. |