aboutsummaryrefslogtreecommitdiffstats
path: root/src/input (follow)
Commit message (Collapse)AuthorAgeFilesLines
* input/AlsaInputPlugin.cxx: use I/O thread to poll for available dataSteven O'Brien2014-01-061-55/+289
| | | | [mk: modified to use MultiSocketMonitor instead of SocketMonitor]
* event/SocketMonitor: don't close the socket automaticallyMax Kellermann2014-01-061-2/+0
| | | | | | 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.
* input/smbclient: new input pluginMax Kellermann2013-12-292-0/+228
|
* Merge tag 'release-0.18.6'Max Kellermann2013-12-241-1/+1
|\
| * input/cdio: fix typo in #include pathMax Kellermann2013-12-171-1/+1
| | | | | | | | Broken by commit 3b0fea5f
* | input/alsa: fix build with gcc 4.6Max Kellermann2013-12-211-12/+12
| |
* | add draft ALSA input pluginSteven O'Brien2013-12-192-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 itMax Kellermann2013-12-141-1/+1
| |
* | input/despotify: convert to classMax Kellermann2013-12-141-45/+73
| |
* | Merge branch 'v0.18.x'Max Kellermann2013-12-141-0/+5
|\|
| * input/cdio_paranoia: support libcdio-paranoia 0.90Gaetan Bisson2013-11-271-0/+5
| |
* | fs/Traits: split PathTraits type into PathTraitsFS and PathTraitsUTF8Denis Krjuchkov2013-12-052-2/+2
| |
* | input/curl: use class TagBuilderMax Kellermann2013-12-031-4/+10
| |
* | Util/StringUtil: add StringStartsWith()Max Kellermann2013-11-284-17/+16
| | | | | | | | Replaces GLib's g_str_has_prefix().
* | include cleanup using iwyuMax Kellermann2013-11-285-8/+0
|/
* input/curl: work around stream resume bug (fixed in libcurl 7.32.0)Max Kellermann2013-11-231-0/+17
|
* input/curl: add global variable "curl_version"Max Kellermann2013-11-231-0/+7
|
* input/curl: dump version numberMax Kellermann2013-11-231-0/+8
|
* input/cdio_paranoia: add setting "default_byte_order"Max Kellermann2013-11-071-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 epollMax Kellermann2013-11-071-1/+9
| | | | Fixes a crash bug. See code comment.
* input/curl: fix bug with redirected streamsMax Kellermann2013-11-061-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 CurlMultiMax Kellermann2013-11-061-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 requestsMax Kellermann2013-11-061-13/+0
| | | | Unused.
* input/curl: don't abort all requests on curl_multi_perform() errorMax Kellermann2013-11-061-40/+7
| | | | Eliminate some complicated code that's not worth the trouble.
* input/curl: use CURLOPT_PRIVATEMax Kellermann2013-11-061-5/+7
| | | | Replaces the loop in input_curl_find_request().
* *: update copyright year to 2013Max Kellermann2013-10-302-2/+2
|
* *: use nullptr instead of NULLMax Kellermann2013-10-283-14/+14
|
* input_stream: rename struct to InputStreamMax Kellermann2013-10-239-59/+59
|
* InputInternal: remove obsolete libraryMax Kellermann2013-10-237-7/+0
|
* input/curl: don't use GLib's typedef "gushort"Max Kellermann2013-10-211-1/+2
|
* util/NumberParser: utilities for parsing numbers from ASCII stringsMax Kellermann2013-10-211-3/+3
|
* Util/ASCII: add function StringEqualsCaseASCII()Max Kellermann2013-10-201-7/+8
| | | | Replaces GLib's g_ascii_strcasecmp().
* *: use nullptr instead of NULLMax Kellermann2013-10-191-34/+34
|
* input/cdio: use class AllocatedPathMax Kellermann2013-10-191-10/+9
|
* input/curl: use std::string for meta_nameMax Kellermann2013-10-191-9/+5
| | | | Automatic memory management.
* decoder/gme,input/curl,...: use static buffers instead of g_strdup_printf()Max Kellermann2013-10-191-9/+7
|
* Util/CharUtil: new library replacing g_ascii_isX()Max Kellermann2013-10-191-2/+3
|
* input/curl: use MultiSocketMonitor constants instead of GLibMax Kellermann2013-10-181-3/+6
|
* fs/Path: move definitions to struct PathTraitsMax Kellermann2013-10-172-4/+4
|
* InputStream: use int64_t instead of goffsetMax Kellermann2013-10-175-10/+17
| | | | Decouple some more from GLib.
* input_plugin: rename struct to "InputPlugin"Max Kellermann2013-10-1715-19/+17
|
* ArchiveLookup: return const stringsMax Kellermann2013-10-171-2/+2
|
* system/ByteOrder: new library for byte ordering / endianessMax Kellermann2013-10-161-2/+3
| | | | Replacing GLib macros.
* Archive*: move archive_domain to ArchiveDomain.cxxMax Kellermann2013-10-151-3/+1
| | | | Merge duplicate symbol.
* input/*: don't allocate attribute "mime"Max Kellermann2013-10-154-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 Kellermann2013-10-142-2/+4
|
* Mapper, ...: use memcmp() instead of strncmp() where appropriateMax Kellermann2013-10-141-2/+2
| | | | Micro-optimization.
* Log: new logging library APIMax Kellermann2013-10-028-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_pauseArtem Savkov2013-09-261-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.aMax Kellermann2013-09-053-3/+3
|