Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | db/upnp: don't hold mutex while downloading device description | Max Kellermann | 2014-01-18 | 1 | -1/+1 |
| | | | | Must not perform blocking I/O while holding a mutex. | ||||
* | db/upnp: don't use WorkQueue for _ADVERTISEMENT_BYEBYE | Max Kellermann | 2014-01-18 | 2 | -36/+30 |
| | | | | Remove the ContentDirectoryDescriptor right away. Reduces bloat. | ||||
* | db/upnp: include cleanup | Max Kellermann | 2014-01-18 | 1 | -1/+0 |
| | |||||
* | db/upnp: don't use LazyDatabase | Max Kellermann | 2014-01-18 | 1 | -2/+1 |
| | | | | Now that MPD forks early, this workaround is obsolete. | ||||
* | 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 | 2 | -19/+71 |
| | |||||
* | Daemon: don't use daemon(), always require fork() | Max Kellermann | 2014-01-18 | 1 | -11/+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 | 5 | -35/+90 |
| | |||||
* | 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 | 1 | -1/+11 |
|\ | |||||
| * | decoder/ffmpeg: support libav v10_alpha1 | Max Kellermann | 2014-01-15 | 1 | -1/+11 |
| | | |||||
| * | 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 |
| | | |||||
* | | 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 | 3 | -11/+62 |
| | | |||||
* | | 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. |