aboutsummaryrefslogtreecommitdiffstats
path: root/src (follow)
Commit message (Collapse)AuthorAgeFilesLines
...
* output: rename source filesMax Kellermann2014-01-2818-21/+21
|
* output: rename struct audio_output to AudioOutputMax Kellermann2014-01-2835-273/+274
|
* OutputPlugin: rename struct audio_output_plugin to AudioOutputPluginMax Kellermann2014-01-2839-50/+53
|
* thread/Name: implementation for Mac OS XMax Kellermann2014-01-281-0/+4
| | | | pthread_setname_np() doesn't have the "thread" argument on OS X.
* OutputAll: convert to class, move instance to class PartitionMax Kellermann2014-01-2824-1001/+905
| | | | Another big chunk of code for multi-player support.
* neighbor/smbclient: add splice_after() fallback for gcc 4.6Max Kellermann2014-01-271-0/+7
|
* Playlist{Info,Vector}: move to db/Max Kellermann2014-01-2710-8/+8
|
* Merge branch 'v0.18.x'Max Kellermann2014-01-271-21/+70
|\
| * IcyMetadataParser: more robust tag parserMax Kellermann2014-01-271-21/+71
| | | | | | | | | | Allow semicolons and single quotes in the stream title. This is not part of any specification, but found in real life.
* | neighbor/upnp: UPnP media server discoveryMax Kellermann2014-01-264-0/+175
| |
* | db/upnp: remove sleep(2) callMax Kellermann2014-01-261-3/+0
| | | | | | | | | | This call was unnecessary. It is a bad idea anyway to block the MPD process for some arbitrary amount of time.
* | upnp: initialize the client handle only onceMax Kellermann2014-01-263-69/+72
| | | | | | | | | | | | Eliminate class LibUPnP and move the code to ClientInit.cxx. Its initialization function can be called multiple times, but UpnpRegisterClient() is called at most once.
* | upnp: move library initialization to Init.cxxMax Kellermann2014-01-263-17/+111
| | | | | | | | Allow calling UpnpGlobalInit() multiple times.
* | upnp/discovery: use a plain UpnpClient_Handle instead of class LibUPnPMax Kellermann2014-01-263-9/+7
| |
* | upnp: add class UpnpCallbackMax Kellermann2014-01-265-26/+64
| | | | | | | | | | | | | | Each Upnp*Async() call passes a new cookie pointer, and the cookie passed to UpnpRegisterClient() appears to be ignored. Using this interface is a more elegant approach than having one single "handler" function.
* | CueParser: don't "move" the filenameMax Kellermann2014-01-261-1/+1
| | | | | | | | | | This invalidated the std::string instance, and thus broke the CUE parser (commit 322b061632).
* | upnp: remove obsolete global variable "theLib"Max Kellermann2014-01-261-6/+0
| |
* | upnp/Discovery: add listener interfaceMax Kellermann2014-01-262-2/+36
| |
* | db/upnp: move generic code to lib/upnp/Max Kellermann2014-01-2619-79/+105
| |
* | neighbor/Glue: fix rollback rangeMax Kellermann2014-01-261-1/+1
| |
* | db/upnp: rename variablesMax Kellermann2014-01-261-21/+21
| |
* | neighbor/Info: add constructorMax Kellermann2014-01-262-6/+6
| |
* | NeighborCommands: convert assertion to runtime checkMax Kellermann2014-01-261-1/+5
| |
* | neighbor: new subsystem to detect file servers on the local networkMax Kellermann2014-01-2621-2/+939
| | | | | | | | | | | | | | | | | | | | | | | | | | This commit adds the NeighborPlugin API which can be used to detect nearby file servers that can be used by input plugins. This list of servers is exported using the new "listneighbors" command. The idle even "neighbor" notifies interested clients when a new neighbor is found or an existing one is lost. There's a lot missing currently: protocol&user documentation, and a way to "mount" remote servers into the music database. Obviously, some code from the UPnP database plugin can be moved to a neighbor plugin.
* | lib/smbclient/Init: return empty username/passwordMax Kellermann2014-01-261-2/+2
| | | | | | | | This appears to be the right thing to do when we want anonymous login.
* | input/smbclient: move code to lib/smbclient/Init.cxxMax Kellermann2014-01-253-19/+86
| |
* | ConfigGlobal: add config_find_block()Max Kellermann2014-01-246-122/+38
| | | | | | Merge duplicate code.
* | DespotifyUtils, Expat: move to lib/Max Kellermann2014-01-2411-8/+8
| |
* | Mixer*: move to mixer/Max Kellermann2014-01-2433-24/+24
| |
* | Filter*: move to filter/Max Kellermann2014-01-2425-40/+40
| |
* | Database*: move to db/Max Kellermann2014-01-24121-106/+106
| |
* | Sticker*: move to sticker/Max Kellermann2014-01-2410-7/+7
| |
* | Win32Main: move to win32/Max Kellermann2014-01-243-1/+1
| |
* | move daemonization code to unix/Max Kellermann2014-01-246-2/+2
| |
* | Input*: move to input/Max Kellermann2014-01-2467-78/+78
| |
* | Client*: move to client/Max Kellermann2014-01-2442-29/+29
| |
* | Update*: move to update/Max Kellermann2014-01-2432-5/+5
| |
* | Config*: move to config/Max Kellermann2014-01-2466-85/+85
| |
* | Queue*: move to queue/Max Kellermann2014-01-2410-3/+3
| |
* | Zeroconf*: move to zeroconf/Max Kellermann2014-01-2410-1/+1
| |
* | archive/*: move to archive/plugins/Max Kellermann2014-01-2420-24/+24
| |
* | decoder/*: move to decoder/plugins/Max Kellermann2014-01-24106-61/+61
| |
* | output/*: move to output/plugins/Max Kellermann2014-01-2368-48/+48
| |
* | playlist/*: move to playlist/plugins/Max Kellermann2014-01-2342-92/+143
| |
* | Encoder*: move to src/encoderMax Kellermann2014-01-2327-24/+24
| | | | | | | | .. and move the plugins to src/encoder/plugins/.
* | db/upnp/Discovery: use std::list instead of std::mapMax Kellermann2014-01-232-16/+33
| | | | | | | | | | There will only be very few items, and that does not justify the bloat of std::map.
* | db/upnp/Discovery: move code to LockAdd(), LockRemove()Max Kellermann2014-01-232-9/+21
| |
* | db/upnp/Discovery: un-inline the destructorMax Kellermann2014-01-232-0/+6
| |
* | DetachedSong: un-inline the destructorMax Kellermann2014-01-232-0/+7
| | | | | | | | Reduce bloat.
* | db/upnp: un-inline a few destructorsMax Kellermann2014-01-238-0/+49
| | | | | | | | Reduce bloat.