Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | fs/DirectoryReader: GetEntry() returns Path, not AllocatedPath | Max Kellermann | 2014-01-30 | 1 | -3/+3 |
| | | | | Reduce overhead, don't duplicate the string. | ||||
* | update/Walk: declare std::string at assignment | Max Kellermann | 2014-01-30 | 1 | -4/+2 |
| | | | | Reduce overhead. | ||||
* | PlaylistFile: narrow LoadPlaylistFileInfo() API to accept Path | Max Kellermann | 2014-01-30 | 1 | -2/+2 |
| | |||||
* | fs/AllocatedPath: add Build() overlays with Path arguments | Max Kellermann | 2014-01-30 | 1 | -0/+10 |
| | |||||
* | db: add compile-time option to disable database | Max Kellermann | 2014-01-30 | 23 | -17/+222 |
| | |||||
* | OtherCommands: merge duplicate code from handle_update(), handle_rescan() | Max Kellermann | 2014-01-30 | 1 | -31/+10 |
| | |||||
* | db/update: convert to OO API | Max Kellermann | 2014-01-30 | 28 | -511/+505 |
| | | | | | Move global variables into the new classes. That may allow multiple update threads for multiple databases one day. | ||||
* | Main, OutputThread: increase kernel timer slack (Linux) | Max Kellermann | 2014-01-30 | 3 | -0/+61 |
| | | | | | Allows the kernel to combine timer wakeups with other processes, reducing power usage. | ||||
* | ExcludeList: move to db/update/ | Max Kellermann | 2014-01-30 | 2 | -0/+0 |
| | |||||
* | InotifyUpdate: pass EventLoop to mpd_inotify_init() | Max Kellermann | 2014-01-29 | 3 | -7/+10 |
| | |||||
* | Listen: pass EventLoop to listen_global_init() | Max Kellermann | 2014-01-29 | 3 | -8/+7 |
| | | | | Don't use global variables. | ||||
* | db/Directory: move isRootDirectory() to Uri.hxx | Max Kellermann | 2014-01-29 | 5 | -7/+32 |
| | | | | Decouple command/OtherCommands.cxx from the "simple" database plugin. | ||||
* | sticker: don't use classes Directory and Song | Max Kellermann | 2014-01-29 | 3 | -22/+21 |
| | | | | | Don't depend on the "simple" database plugin. This fixes an assertion failure / crash and allows using stickers with other plugins. | ||||
* | OutputThread: move more functions into the AudioOutput class | Max Kellermann | 2014-01-29 | 2 | -240/+271 |
| | |||||
* | output: rename "chunk" to "current_chunk" | Max Kellermann | 2014-01-29 | 4 | -28/+30 |
| | |||||
* | output: move functions into the AudioOutput struct | Max Kellermann | 2014-01-29 | 23 | -328/+281 |
| | |||||
* | AudioOutput: make "plugin" a reference | Max Kellermann | 2014-01-29 | 5 | -37/+37 |
| | |||||
* | AudioOutput: pass plugin to constructor | Max Kellermann | 2014-01-29 | 18 | -45/+68 |
| | | | | Make it "const". | ||||
* | CommandLine: remove junk from string literal | Max Kellermann | 2014-01-29 | 1 | -1/+1 |
| | |||||
* | AudioOutput: add constructor and destructor | Max Kellermann | 2014-01-28 | 19 | -101/+27 |
| | |||||
* | ConfigTemplates: rename "AudioOutput" back to "audio_output" | Max Kellermann | 2014-01-28 | 1 | -1/+1 |
| | | | | sed gone horribly wrong. D'oh! | ||||
* | output: rename source files | Max Kellermann | 2014-01-28 | 18 | -21/+21 |
| | |||||
* | output: rename struct audio_output to AudioOutput | Max Kellermann | 2014-01-28 | 35 | -273/+274 |
| | |||||
* | OutputPlugin: rename struct audio_output_plugin to AudioOutputPlugin | Max Kellermann | 2014-01-28 | 39 | -50/+53 |
| | |||||
* | thread/Name: implementation for Mac OS X | Max Kellermann | 2014-01-28 | 1 | -0/+4 |
| | | | | pthread_setname_np() doesn't have the "thread" argument on OS X. | ||||
* | OutputAll: convert to class, move instance to class Partition | Max Kellermann | 2014-01-28 | 24 | -1001/+905 |
| | | | | Another big chunk of code for multi-player support. | ||||
* | neighbor/smbclient: add splice_after() fallback for gcc 4.6 | Max Kellermann | 2014-01-27 | 1 | -0/+7 |
| | |||||
* | Playlist{Info,Vector}: move to db/ | Max Kellermann | 2014-01-27 | 10 | -8/+8 |
| | |||||
* | 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 |
| | |