Commit Graph

8353 Commits

Author SHA1 Message Date
Max Kellermann ee4c3ff1b8 db/upnp/WorkQueue: remove IsOK() check from put()
Not necessary, not worth the check.
2014-01-14 11:46:18 +01:00
Max Kellermann 60486bcc46 db/upnp/WorkQueue: remove redundant n_workers_exited check from IsOK() 2014-01-14 11:43:18 +01:00
Max Kellermann 79eed5182e db/upnp/WorkQueue: include cleanup 2014-01-14 11:41:28 +01:00
Max Kellermann 5de0f3f36a db/upnp/WorkQueue: remove unnecessary "waiting" attributes 2014-01-14 11:38:48 +01:00
Max Kellermann 9f316e11bd db/upnp/WorkQueue: remove unused method waitIdle()
Contrary to setTerminateAndWait()'s documentation, the method does
wait for worker threads to exit via pthread_join().
2014-01-14 11:31:49 +01:00
Max Kellermann c6d8f6da70 db/upnp/WorkQueue: use array instead of std::list
Reduce bloat further.
2014-01-14 11:23:13 +01:00
Max Kellermann 73fd98b82e db/upnp/WorkQueue: use std::list instead of std::unordered_map
Reduce bloat.
2014-01-14 11:11:08 +01:00
Max Kellermann 6cb725391d db/upnp/WorkQueue: rename attributes 2014-01-14 11:07:06 +01:00
Max Kellermann c13facdaca db/upnp/WorkQueue: pass reference to take() 2014-01-14 11:07:00 +01:00
Max Kellermann e259474362 db/upnp/WorkQueue: remove unused method qsize() 2014-01-14 11:06:55 +01:00
Max Kellermann 7740855a78 db/upnp/WorkQueue: remove unused "szp" parameter from take() 2014-01-14 11:06:43 +01:00
Max Kellermann d605170f9f db/upnp/WorkQueue: remove unused statistics 2014-01-14 10:51:33 +01:00
Max Kellermann 4734af747b OutputThread: use real-time priority 2014-01-14 09:59:04 +01:00
Max Kellermann 5d17731b73 UpdateGlue: let the update thread run at "idle" priority
The update thread should not affect the rest of the system, therefore
set "idle" priority, and let it only run when nobody else is using the
resources.
2014-01-14 09:09:52 +01:00
Max Kellermann 07a7fde825 Merge branch 'shine' of git://github.com/ekroth/mpd 2014-01-13 22:54:15 +01:00
Max Kellermann 049abef2d4 input/despotify: change name to "despotify"
The name "spt" didn't make much sense for this plugin.
2014-01-13 22:35:30 +01:00
Max Kellermann 7c60b50a39 CommandLine: print list of database plugins 2014-01-13 22:31:55 +01:00
Max Kellermann 4f83c60296 copyright year 2014 2014-01-13 22:31:55 +01:00
Andrée Ekroth cd5817b67e encoder/shine: fix segfault workaround
Initializing and closing the Shine library without
writing any data results in a segmentation fault.
The current workaround writes zeroes if there was
no actual data.
2014-01-13 22:28:29 +01:00
Max Kellermann a4d580a6f8 db/upnp: add fallback for emplace()
The method emplace() was added in gcc 4.8.  This commit restores
compatibility with gcc 4.7.
2014-01-13 22:24:48 +01:00
Max Kellermann ca43e634b5 db/upnp: use std::function for the libupnp callback
Replaces the bloated std::map.
2014-01-13 22:24:02 +01:00
Max Kellermann 85324f80fe db/upnp: fix "upnp:class" parser
"upnp:class" is an element, not an attribute of element "item".  This
fixes a regression from commit 65ebfb16
2014-01-13 22:23:00 +01:00
Andrée Ekroth 56a7fcf189 encoder/shine: remove unnecessary buffer
Now writes to the de-interleaved buffers directly,
instead of writing to an intermediate fifo buffer.

Fix indentation and 80 char width lines.
2014-01-13 17:55:12 +01:00
Andrée Ekroth ea771c17c5 Shine encoding plugin
This encoding plugin features a fixed-point mp3 encoder,
with faster encoding on architectures without a FPU.

Right now the encoder is limited to stereo and 16 bit depth.
The bitrate and sample rate can be modified in audio_output.

audio_output {
        type            "httpd"
        name            "My shine stream"
        encoder         "shine"
        port            "8000"
        format          "44100:16:2"
        bitrate         "320"  # default: 128
}
2014-01-13 11:14:19 +01:00
Max Kellermann 65ebfb16c9 db/upnp/Directory: parse item_class in StartElement
Don't add to the std::map.
2014-01-11 01:40:21 +01:00
Max Kellermann 44a65fc5de db/upnp/Object: add attribute "url"
Don't store in the std::map.
2014-01-11 01:36:08 +01:00
Max Kellermann f031eb1ef2 db/upnp/Directory: parse duration
Don't put all <res/> attributes to the attributes map; parse the
"duration" attribute as soon as we receive it, and store it in an
integer attribute.  This reduces bloat.
2014-01-11 01:31:13 +01:00
Max Kellermann b50d79542c db/upnp: move stringToTokens() to Util.cxx 2014-01-11 01:30:05 +01:00
Max Kellermann 8351543c0f db/upnp: move lazy Open() call to new class LazyDatabase
Generic approach for the workaround.
2014-01-11 01:25:22 +01:00
Max Kellermann 8add78ed5e db/upnp/discovery: convert std::strings to const char *
Reduce bloat.
2014-01-11 01:21:54 +01:00
Max Kellermann 4b3a3d6faa db/upnp: remove unnecessary Mutex 2014-01-11 01:16:35 +01:00
Max Kellermann 71d012fa61 db/proxy: forward "idle" events
Send "idle" to the other MPD whenever there's nothing else to do and
forward incoming "idle database" events to all our MPD clients.
2014-01-11 01:11:19 +01:00
Max Kellermann 114df1f137 DatabasePlugin: add interface DatabaseListener
Allow database plugins to announce that they have been modified.
2014-01-11 01:01:54 +01:00
Max Kellermann 00adf7ff17 db/proxy: move code to Disconnect() 2014-01-11 00:46:33 +01:00
Max Kellermann 3f0415fa24 UpdateGlue: move stats_invalidate() call to Instance::DatabaseModified() 2014-01-11 00:46:33 +01:00
Max Kellermann 348d0c944e Stats: lazy initialization
Ask the DatabasePlugin for stats when the first client requests them,
not at startup.
2014-01-10 23:42:46 +01:00
Max Kellermann e9ba5fcaf3 db/upnp: remove unused method setMaxContentLength() 2014-01-10 23:04:50 +01:00
Max Kellermann 48097745f6 db/upnp: remove "upnplog" option
We have removed all libupnp logging calls, and we don't need to debug
libupnp.
2014-01-10 23:00:27 +01:00
Max Kellermann 1091ca969f db/upnp: remove unused macro PLOGINF() 2014-01-10 23:00:18 +01:00
Max Kellermann 09d62cc630 db/upnp: remove unused method errAsString() 2014-01-10 23:00:10 +01:00
Max Kellermann a2ead993e6 db/upnp/Device: remove unused attribute "m_tabs" 2014-01-10 23:00:03 +01:00
Max Kellermann b330aa8dd5 db/upnp: remove unnecessary empty string checks from CharacterData() 2014-01-10 22:59:46 +01:00
Max Kellermann 1b8053a618 db/upnp/Directory: simplify checkobjok() 2014-01-10 22:59:28 +01:00
Max Kellermann 70e5ab3fde db/upnp/Directory: don't log unknown items 2014-01-10 22:59:16 +01:00
Max Kellermann f4490f6918 db/upnp/Directory: eliminate the "attributes" std::map
Look up attributes in the "atts" array.  Reduce bloat.
2014-01-10 22:59:01 +01:00
Max Kellermann dadd987bf4 db/upnp/Directory: move "res" attributes to array
Reduce bloat.
2014-01-10 22:58:37 +01:00
Max Kellermann a1ced29279 db/upnp: use nullptr-terminated array
Reduce bloat.
2014-01-10 22:58:23 +01:00
Max Kellermann 791d6c1336 db/upnp/Directory: eliminate struct StackEl, use std::string
Reduces bloat.
2014-01-10 22:57:57 +01:00
Max Kellermann 10abb07960 db/upnp/Directory: make "attributes" a local variable
We only need it inside StartElement().  Reduces bloat.
2014-01-10 22:57:46 +01:00
Max Kellermann 040a5ddad5 db/upnp/Directory: move "res" tag handler to StartElement()
No need to handle this in EndElement() - in StartElement(), we already
have all we need.
2014-01-10 22:57:22 +01:00