Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | Merge branch 'v0.18.x' | Max Kellermann | 2014-01-27 | 1 | -21/+70 | |
|\ | ||||||
| * | IcyMetadataParser: more robust tag parser | Max Kellermann | 2014-01-27 | 1 | -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 discovery | Max Kellermann | 2014-01-26 | 4 | -0/+175 | |
| | | ||||||
* | | db/upnp: remove sleep(2) call | Max Kellermann | 2014-01-26 | 1 | -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 once | Max Kellermann | 2014-01-26 | 3 | -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.cxx | Max Kellermann | 2014-01-26 | 3 | -17/+111 | |
| | | | | | | | | Allow calling UpnpGlobalInit() multiple times. | |||||
* | | upnp/discovery: use a plain UpnpClient_Handle instead of class LibUPnP | Max Kellermann | 2014-01-26 | 3 | -9/+7 | |
| | | ||||||
* | | upnp: add class UpnpCallback | Max Kellermann | 2014-01-26 | 5 | -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 filename | Max Kellermann | 2014-01-26 | 1 | -1/+1 | |
| | | | | | | | | | | This invalidated the std::string instance, and thus broke the CUE parser (commit 322b061632). | |||||
* | | upnp: remove obsolete global variable "theLib" | Max Kellermann | 2014-01-26 | 1 | -6/+0 | |
| | | ||||||
* | | upnp/Discovery: add listener interface | Max Kellermann | 2014-01-26 | 2 | -2/+36 | |
| | | ||||||
* | | db/upnp: move generic code to lib/upnp/ | Max Kellermann | 2014-01-26 | 19 | -79/+105 | |
| | | ||||||
* | | neighbor/Glue: fix rollback range | Max Kellermann | 2014-01-26 | 1 | -1/+1 | |
| | | ||||||
* | | db/upnp: rename variables | Max Kellermann | 2014-01-26 | 1 | -21/+21 | |
| | | ||||||
* | | neighbor/Info: add constructor | Max Kellermann | 2014-01-26 | 2 | -6/+6 | |
| | | ||||||
* | | NeighborCommands: convert assertion to runtime check | Max Kellermann | 2014-01-26 | 1 | -1/+5 | |
| | | ||||||
* | | neighbor: new subsystem to detect file servers on the local network | Max Kellermann | 2014-01-26 | 21 | -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/password | Max Kellermann | 2014-01-26 | 1 | -2/+2 | |
| | | | | | | | | This appears to be the right thing to do when we want anonymous login. | |||||
* | | input/smbclient: move code to lib/smbclient/Init.cxx | Max Kellermann | 2014-01-25 | 3 | -19/+86 | |
| | | ||||||
* | | ConfigGlobal: add config_find_block() | Max Kellermann | 2014-01-24 | 6 | -122/+38 | |
| | | | | | | Merge duplicate code. | |||||
* | | DespotifyUtils, Expat: move to lib/ | Max Kellermann | 2014-01-24 | 11 | -8/+8 | |
| | | ||||||
* | | Mixer*: move to mixer/ | Max Kellermann | 2014-01-24 | 33 | -24/+24 | |
| | | ||||||
* | | Filter*: move to filter/ | Max Kellermann | 2014-01-24 | 25 | -40/+40 | |
| | | ||||||
* | | Database*: move to db/ | Max Kellermann | 2014-01-24 | 121 | -106/+106 | |
| | | ||||||
* | | Sticker*: move to sticker/ | Max Kellermann | 2014-01-24 | 10 | -7/+7 | |
| | | ||||||
* | | Win32Main: move to win32/ | Max Kellermann | 2014-01-24 | 3 | -1/+1 | |
| | | ||||||
* | | move daemonization code to unix/ | Max Kellermann | 2014-01-24 | 6 | -2/+2 | |
| | | ||||||
* | | Input*: move to input/ | Max Kellermann | 2014-01-24 | 67 | -78/+78 | |
| | | ||||||
* | | Client*: move to client/ | Max Kellermann | 2014-01-24 | 42 | -29/+29 | |
| | | ||||||
* | | Update*: move to update/ | Max Kellermann | 2014-01-24 | 32 | -5/+5 | |
| | | ||||||
* | | Config*: move to config/ | Max Kellermann | 2014-01-24 | 66 | -85/+85 | |
| | | ||||||
* | | Queue*: move to queue/ | Max Kellermann | 2014-01-24 | 10 | -3/+3 | |
| | | ||||||
* | | Zeroconf*: move to zeroconf/ | Max Kellermann | 2014-01-24 | 10 | -1/+1 | |
| | | ||||||
* | | archive/*: move to archive/plugins/ | Max Kellermann | 2014-01-24 | 20 | -24/+24 | |
| | | ||||||
* | | decoder/*: move to decoder/plugins/ | Max Kellermann | 2014-01-24 | 106 | -61/+61 | |
| | | ||||||
* | | output/*: move to output/plugins/ | Max Kellermann | 2014-01-23 | 68 | -48/+48 | |
| | | ||||||
* | | playlist/*: move to playlist/plugins/ | Max Kellermann | 2014-01-23 | 42 | -92/+143 | |
| | | ||||||
* | | Encoder*: move to src/encoder | Max Kellermann | 2014-01-23 | 27 | -24/+24 | |
| | | | | | | | | .. and move the plugins to src/encoder/plugins/. | |||||
* | | db/upnp/Discovery: use std::list instead of std::map | Max Kellermann | 2014-01-23 | 2 | -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 Kellermann | 2014-01-23 | 2 | -9/+21 | |
| | | ||||||
* | | db/upnp/Discovery: un-inline the destructor | Max Kellermann | 2014-01-23 | 2 | -0/+6 | |
| | | ||||||
* | | DetachedSong: un-inline the destructor | Max Kellermann | 2014-01-23 | 2 | -0/+7 | |
| | | | | | | | | Reduce bloat. | |||||
* | | db/upnp: un-inline a few destructors | Max Kellermann | 2014-01-23 | 8 | -0/+49 | |
| | | | | | | | | Reduce bloat. | |||||
* | | thread/Name: set thread names | Max Kellermann | 2014-01-23 | 5 | -0/+71 | |
| | | | | | | | | For debugging. | |||||
* | | thread/Util: set the SCHED_RESET_ON_FORK flag in SetThreadRealtime() | Max Kellermann | 2014-01-23 | 1 | -1/+1 | |
| | | ||||||
* | | db/upnp: strict vpath checks for the "root" directory | Max Kellermann | 2014-01-23 | 1 | -0/+20 | |
| | | ||||||
* | | db/upnp: move code to VisitObject() | Max Kellermann | 2014-01-23 | 1 | -22/+33 | |
| | | ||||||
* | | db/upnp: merge two PathTraitsUTF8::Build() calls | Max Kellermann | 2014-01-23 | 1 | -16/+4 | |
| | | ||||||
* | | db/upnp: move code to VisitItem() | Max Kellermann | 2014-01-23 | 1 | -61/+56 | |
| | | ||||||
* | | db/upnp: fix subdirectory paths in "listallinfo" | Max Kellermann | 2014-01-23 | 1 | -3/+3 | |
| | | | | | | | | Add missing server name prefix. |