aboutsummaryrefslogtreecommitdiffstats
path: root/src (unfollow)
Commit message (Collapse)AuthorFilesLines
2014-01-29AudioOutput: make "plugin" a referenceMax Kellermann5-37/+37
2014-01-29AudioOutput: pass plugin to constructorMax Kellermann18-45/+68
Make it "const".
2014-01-29CommandLine: remove junk from string literalMax Kellermann1-1/+1
2014-01-28AudioOutput: add constructor and destructorMax Kellermann19-101/+27
2014-01-28ConfigTemplates: rename "AudioOutput" back to "audio_output"Max Kellermann1-1/+1
sed gone horribly wrong. D'oh!
2014-01-28output: rename source filesMax Kellermann18-21/+21
2014-01-28output: rename struct audio_output to AudioOutputMax Kellermann35-273/+274
2014-01-28OutputPlugin: rename struct audio_output_plugin to AudioOutputPluginMax Kellermann39-50/+53
2014-01-28thread/Name: implementation for Mac OS XMax Kellermann1-0/+4
pthread_setname_np() doesn't have the "thread" argument on OS X.
2014-01-28OutputAll: convert to class, move instance to class PartitionMax Kellermann24-1001/+905
Another big chunk of code for multi-player support.
2014-01-27neighbor/smbclient: add splice_after() fallback for gcc 4.6Max Kellermann1-0/+7
2014-01-27Playlist{Info,Vector}: move to db/Max Kellermann10-8/+8
2014-01-27IcyMetadataParser: more robust tag parserMax Kellermann1-21/+71
Allow semicolons and single quotes in the stream title. This is not part of any specification, but found in real life.
2014-01-26neighbor/upnp: UPnP media server discoveryMax Kellermann4-0/+175
2014-01-26db/upnp: remove sleep(2) callMax Kellermann1-3/+0
This call was unnecessary. It is a bad idea anyway to block the MPD process for some arbitrary amount of time.
2014-01-26upnp: initialize the client handle only onceMax Kellermann3-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.
2014-01-26upnp: move library initialization to Init.cxxMax Kellermann3-17/+111
Allow calling UpnpGlobalInit() multiple times.
2014-01-26upnp/discovery: use a plain UpnpClient_Handle instead of class LibUPnPMax Kellermann3-9/+7
2014-01-26upnp: add class UpnpCallbackMax Kellermann5-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.
2014-01-26CueParser: don't "move" the filenameMax Kellermann1-1/+1
This invalidated the std::string instance, and thus broke the CUE parser (commit 322b061632).
2014-01-26upnp: remove obsolete global variable "theLib"Max Kellermann1-6/+0
2014-01-26upnp/Discovery: add listener interfaceMax Kellermann2-2/+36
2014-01-26db/upnp: move generic code to lib/upnp/Max Kellermann19-79/+105
2014-01-26neighbor/Glue: fix rollback rangeMax Kellermann1-1/+1
2014-01-26db/upnp: rename variablesMax Kellermann1-21/+21
2014-01-26neighbor/Info: add constructorMax Kellermann2-6/+6
2014-01-26NeighborCommands: convert assertion to runtime checkMax Kellermann1-1/+5
2014-01-26neighbor: new subsystem to detect file servers on the local networkMax Kellermann21-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.
2014-01-26lib/smbclient/Init: return empty username/passwordMax Kellermann1-2/+2
This appears to be the right thing to do when we want anonymous login.
2014-01-25input/smbclient: move code to lib/smbclient/Init.cxxMax Kellermann3-19/+86
2014-01-24ConfigGlobal: add config_find_block()Max Kellermann6-122/+38
Merge duplicate code.
2014-01-24DespotifyUtils, Expat: move to lib/Max Kellermann11-8/+8
2014-01-24Mixer*: move to mixer/Max Kellermann33-24/+24
2014-01-24Filter*: move to filter/Max Kellermann25-40/+40
2014-01-24Database*: move to db/Max Kellermann121-106/+106
2014-01-24Sticker*: move to sticker/Max Kellermann10-7/+7
2014-01-24Win32Main: move to win32/Max Kellermann3-1/+1
2014-01-24move daemonization code to unix/Max Kellermann6-2/+2
2014-01-24Input*: move to input/Max Kellermann67-78/+78
2014-01-24Client*: move to client/Max Kellermann42-29/+29
2014-01-24Update*: move to update/Max Kellermann32-5/+5
2014-01-24Config*: move to config/Max Kellermann66-85/+85
2014-01-24Queue*: move to queue/Max Kellermann10-3/+3
2014-01-24Zeroconf*: move to zeroconf/Max Kellermann10-1/+1
2014-01-24archive/*: move to archive/plugins/Max Kellermann20-24/+24
2014-01-24decoder/*: move to decoder/plugins/Max Kellermann106-61/+61
2014-01-23output/*: move to output/plugins/Max Kellermann68-48/+48
2014-01-23playlist/*: move to playlist/plugins/Max Kellermann42-92/+143
2014-01-23Encoder*: move to src/encoderMax Kellermann27-24/+24
.. and move the plugins to src/encoder/plugins/.
2014-01-23db/upnp/Discovery: use std::list instead of std::mapMax Kellermann2-16/+33
There will only be very few items, and that does not justify the bloat of std::map.