Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | | Daemon: fork as early as possible | Max Kellermann | 2014-01-18 | 4 | -28/+107 | |
| | | | | | | | | | | | | | | Keep the parent process around until MPD has finished initializing. This is important for libraries that are allergic to fork(), such as libupnp. | |||||
* | | PidFile: open in write-only mode | Max Kellermann | 2014-01-18 | 1 | -1/+1 | |
| | | ||||||
* | | Daemon: move code to class PidFile | Max Kellermann | 2014-01-18 | 3 | -19/+72 | |
| | | ||||||
* | | Daemon: don't use daemon(), always require fork() | Max Kellermann | 2014-01-18 | 2 | -12/+0 | |
| | | | | | | | | | | | | Prepare for more advanced daemonization code, which will not work with daemon(). Let's just require fork(). Everybody who supports daemon() also supports fork(). | |||||
* | | Main: make variables more local | Max Kellermann | 2014-01-18 | 1 | -13/+9 | |
| | | ||||||
* | | Main: eliminate variable "success" | Max Kellermann | 2014-01-18 | 1 | -10/+7 | |
| | | ||||||
* | | pcm/Volume: make DSD a no-op | Max Kellermann | 2014-01-17 | 1 | -2/+8 | |
| | | | | | | | | | | Kludge to work around DSD playback failure because the ReplayGainFilterPlugin is always in the filter chain. | |||||
* | | Mapper: add function map_song_detach() | Max Kellermann | 2014-01-17 | 7 | -5/+27 | |
| | | | | | | | | | | | | Make the DetachedSong(Song) conversion constructor private. Everybody should use map_song_detach() which will take over more responsibilities soon. | |||||
* | | QueueSave: use DatabaseDetachSong() | Max Kellermann | 2014-01-17 | 1 | -11/+3 | |
| | | ||||||
* | | DatabaseSong: new library merging duplicate code | Max Kellermann | 2014-01-17 | 6 | -35/+91 | |
| | | ||||||
* | | db/upnp/Discovery: move callbacks and data structures into class | Max Kellermann | 2014-01-17 | 3 | -72/+80 | |
| | | | | | | | | Eliminate global variables. | |||||
* | | db/upnp: split cluCallback() | Max Kellermann | 2014-01-17 | 1 | -15/+29 | |
| | | ||||||
* | | db/upnp: add local reference variables | Max Kellermann | 2014-01-17 | 1 | -11/+16 | |
| | | | | | | | | Prepare to refactor some code. | |||||
* | | db/upnp: move the LibUPnP instance to class UpnpDatabase | Max Kellermann | 2014-01-16 | 7 | -77/+49 | |
| | | | | | | | | Delete the object when closing the database. | |||||
* | | db/upnp: remove useless static Mutex | Max Kellermann | 2014-01-16 | 1 | -6/+0 | |
| | | ||||||
* | | db/upnp: move the UPnPDeviceDirectory instance to class UpnpDatabase | Max Kellermann | 2014-01-16 | 3 | -19/+8 | |
| | | | | | | | | Delete the object when closing the database. | |||||
* | | db/upnp: don't initialize attributes to nullptr | Max Kellermann | 2014-01-16 | 1 | -4/+0 | |
| | | | | | | | | Not necessary, these are not used. | |||||
* | | db/upnp: remove redundant m_root nullptr checks | Max Kellermann | 2014-01-16 | 1 | -5/+1 | |
| | | ||||||
* | | db/upnp/WorkQueue: use emplace() and std::move() | Max Kellermann | 2014-01-16 | 1 | -3/+4 | |
| | | ||||||
* | | db/upnp/WorkQueue: simplify start() | Max Kellermann | 2014-01-16 | 1 | -4/+5 | |
| | | ||||||
* | | Directory: initialize "mtime" and "have_stat" | Max Kellermann | 2014-01-15 | 1 | -1/+3 | |
| | | ||||||
* | | db/upnp/WorkQueue: fix pthread_t[] allocation size | Max Kellermann | 2014-01-15 | 1 | -1/+1 | |
| | | | | | | | | Was using the wrong variable. | |||||
* | | db/upnp/Object: remove obsolete attribute "m_title" | Max Kellermann | 2014-01-15 | 1 | -1/+0 | |
| | | ||||||
* | | DetachedSong: add method Update() | Max Kellermann | 2014-01-15 | 5 | -15/+55 | |
| | | | | | | | | | | Don't create an intermediate Song instance when all we want is a DetachedSong. | |||||
* | | DetachedSong: remove misplaced std::move() | Max Kellermann | 2014-01-15 | 1 | -1/+1 | |
| | | ||||||
* | | Merge branch 'v0.18.x' | Max Kellermann | 2014-01-15 | 2 | -1/+15 | |
|\| | ||||||
| * | decoder/ffmpeg: support libav v10_alpha1 | Max Kellermann | 2014-01-15 | 2 | -1/+13 | |
| | | ||||||
| * | decoder/ffmpeg: include cleanup | Max Kellermann | 2014-01-15 | 2 | -4/+1 | |
| | | ||||||
| * | decoder/ffmpeg: check for av_samples_get_buffer_size() errors | Max Kellermann | 2014-01-15 | 1 | -0/+3 | |
| | | | | | | | | Fixes potential nullptr dereference. | |||||
| * | util/PeakBuffer: fix nullptr dereference when peak_size==0 | Max Kellermann | 2014-01-15 | 1 | -2/+3 | |
| | | ||||||
| * | SongFilter, TagConfig: cast TAG_NUM_OF_ITEM_TYPES to integer | Max Kellermann | 2014-01-15 | 2 | -2/+2 | |
| | | | | | | | | Fixes clang warning. | |||||
| * | OutputAPI: fix typo in include guard | Max Kellermann | 2014-01-15 | 1 | -1/+1 | |
| | | ||||||
| * | configure.ac: prepare for 0.18.8 | Max Kellermann | 2014-01-15 | 2 | -1/+3 | |
| | | ||||||
* | | decoder/ffmpeg: check for av_samples_get_buffer_size() errors | Max Kellermann | 2014-01-14 | 1 | -0/+3 | |
| | | | | | | | | Fixes potential nullptr dereference. | |||||
* | | util/PeakBuffer: fix nullptr dereference when peak_size==0 | Max Kellermann | 2014-01-14 | 1 | -2/+3 | |
| | | ||||||
* | | SongFilter, TagConfig: cast TAG_NUM_OF_ITEM_TYPES to integer | Max Kellermann | 2014-01-14 | 2 | -2/+2 | |
| | | | | | | | | Fixes clang warning. | |||||
* | | input/alsa: fix memory leak | Max Kellermann | 2014-01-14 | 1 | -1/+1 | |
| | | | | | | | | Don't duplicate the MIME type when it gets passed to a std::string. | |||||
* | | decoder/sidplay: use free() instead of g_free() | Max Kellermann | 2014-01-14 | 1 | -2/+2 | |
| | | | | | | | | This pointer was allocated by libc, not by GLib. | |||||
* | | playlist/extm3u: allocate Tag instance on the stack | Max Kellermann | 2014-01-14 | 1 | -12/+7 | |
| | | | | | | | | Automate the life cycle, making the code safer. | |||||
* | | db/upnp/Object: add attribute "tag" | Max Kellermann | 2014-01-14 | 3 | -82/+25 | |
| | | | | | | | | Replaces "m_title" and "m_props". More bloat removed. | |||||
* | | db/upnp: move upnp_tags to Tags.cxx | Max Kellermann | 2014-01-14 | 4 | -11/+63 | |
| | | ||||||
* | | OutputAPI: fix typo in include guard | Max Kellermann | 2014-01-14 | 1 | -1/+1 | |
| | | ||||||
* | | db/upnp/Object: disallow copying, always move | Max Kellermann | 2014-01-14 | 4 | -8/+11 | |
| | | | | | | | | Reduce bloat. | |||||
* | | db/upnp: getTagValue() returns string pointer | Max Kellermann | 2014-01-14 | 1 | -19/+13 | |
| | | | | | | | | Reduce bloat. | |||||
* | | db/upnp/Directory: merge m_containers and m_items | Max Kellermann | 2014-01-14 | 3 | -63/+73 | |
| | | | | | | | | | | There is no use in duplicating these containers. It only means that we have to search both, duplicating the code. | |||||
* | | db/upnp: pass const reference to getTagValue() | Max Kellermann | 2014-01-14 | 1 | -1/+1 | |
| | | ||||||
* | | db/upnp: Namei() returns error when no object was found | Max Kellermann | 2014-01-14 | 1 | -2/+5 | |
| | | | | | | | | Don't fail silently. | |||||
* | | db/upnp/Directory: eliminate one std::string copy with std::move() | Max Kellermann | 2014-01-14 | 1 | -2/+2 | |
| | | ||||||
* | | db/upnp/Object: add attribute "name" | Max Kellermann | 2014-01-14 | 3 | -24/+33 | |
| | | | | | | | | Call titleToPathElt() only once for each object. | |||||
* | | db/upnp: use std::replace() in titleToPath() | Max Kellermann | 2014-01-14 | 1 | -10/+4 | |
| | |