Max Kellermann
|
08296cd66d
|
Update*: move to update/
|
2014-01-24 00:24:43 +01:00 |
|
Max Kellermann
|
197b503f3e
|
Config*: move to config/
|
2014-01-24 00:20:01 +01:00 |
|
Max Kellermann
|
129eb178eb
|
Queue*: move to queue/
|
2014-01-24 00:17:50 +01:00 |
|
Max Kellermann
|
6b70f5e490
|
Zeroconf*: move to zeroconf/
|
2014-01-24 00:14:54 +01:00 |
|
Max Kellermann
|
4aa6d39fd8
|
archive/*: move to archive/plugins/
|
2014-01-24 00:09:37 +01:00 |
|
Max Kellermann
|
51adaf2c47
|
decoder/*: move to decoder/plugins/
|
2014-01-24 00:02:24 +01:00 |
|
Max Kellermann
|
ea5b901bcc
|
output/*: move to output/plugins/
|
2014-01-23 23:49:50 +01:00 |
|
Max Kellermann
|
f1f19841bd
|
playlist/*: move to playlist/plugins/
|
2014-01-23 23:30:12 +01:00 |
|
Max Kellermann
|
655ad34414
|
Encoder*: move to src/encoder
.. and move the plugins to src/encoder/plugins/.
|
2014-01-23 23:09:14 +01:00 |
|
Max Kellermann
|
b8e382b011
|
db/upnp/Discovery: use std::list instead of std::map
There will only be very few items, and that does not justify the bloat
of std::map.
|
2014-01-23 22:35:22 +01:00 |
|
Max Kellermann
|
c9af358e4b
|
db/upnp/Discovery: move code to LockAdd(), LockRemove()
|
2014-01-23 22:35:22 +01:00 |
|
Max Kellermann
|
3afcfe3330
|
db/upnp/Discovery: un-inline the destructor
|
2014-01-23 22:35:22 +01:00 |
|
Max Kellermann
|
53a13e8bc6
|
DetachedSong: un-inline the destructor
Reduce bloat.
|
2014-01-23 21:22:52 +01:00 |
|
Max Kellermann
|
f3f5e2e162
|
db/upnp: un-inline a few destructors
Reduce bloat.
|
2014-01-23 21:17:40 +01:00 |
|
Max Kellermann
|
ec41d849bb
|
thread/Name: set thread names
For debugging.
|
2014-01-23 10:07:14 +01:00 |
|
Max Kellermann
|
1d547fe273
|
thread/Util: set the SCHED_RESET_ON_FORK flag in SetThreadRealtime()
|
2014-01-23 09:14:09 +01:00 |
|
Max Kellermann
|
b52d8fbebe
|
db/upnp: strict vpath checks for the "root" directory
|
2014-01-23 00:40:39 +01:00 |
|
Max Kellermann
|
b61a2c722c
|
db/upnp: move code to VisitObject()
|
2014-01-23 00:28:27 +01:00 |
|
Max Kellermann
|
c455d2c1de
|
db/upnp: merge two PathTraitsUTF8::Build() calls
|
2014-01-23 00:25:08 +01:00 |
|
Max Kellermann
|
77070f5ab9
|
db/upnp: move code to VisitItem()
|
2014-01-23 00:17:38 +01:00 |
|
Max Kellermann
|
8d5f7160ac
|
db/upnp: fix subdirectory paths in "listallinfo"
Add missing server name prefix.
|
2014-01-23 00:07:35 +01:00 |
|
Max Kellermann
|
b167ce2913
|
base_uri
|
2014-01-23 00:06:17 +01:00 |
|
Max Kellermann
|
3ac15ca8d1
|
db/upnp: pass char* to visitSong()
Don't use std::string, reduce bloat.
|
2014-01-23 00:06:03 +01:00 |
|
Max Kellermann
|
f703d4fc3e
|
db/upnp: call VisitDirectory on servers, even in recursive mode
|
2014-01-22 23:52:08 +01:00 |
|
Max Kellermann
|
77c461fed7
|
db/upnp: make several methods "const"
|
2014-01-22 23:50:33 +01:00 |
|
Max Kellermann
|
a89c21b06a
|
db/upnp: inline Configure()
|
2014-01-22 23:30:53 +01:00 |
|
Max Kellermann
|
b74aa6b14c
|
db/upnp: don't duplicate song data for VisitSong
Not necessary because we control the LightSong's life cycle.
|
2014-01-22 23:28:23 +01:00 |
|
Max Kellermann
|
0c4a791111
|
db/upnp: emplace/move in csvToStrings()
|
2014-01-22 23:21:23 +01:00 |
|
Max Kellermann
|
1feedd4d9c
|
db/upnp: require an empty token list in csvToStrings()
|
2014-01-22 23:21:14 +01:00 |
|
Max Kellermann
|
0ec1808956
|
db/proxy: simplify csvToStrings()
|
2014-01-22 23:17:42 +01:00 |
|
Max Kellermann
|
546e7cafa4
|
db/proxy: merge redundant string::push_back() calls
|
2014-01-22 23:13:24 +01:00 |
|
Max Kellermann
|
d9926a1c21
|
db/upnp: use PathTraitsUTF8::Build()
|
2014-01-22 23:10:00 +01:00 |
|
Max Kellermann
|
e50969e31c
|
db/proxy: fix for libmpdclient < 2.9
|
2014-01-22 23:09:36 +01:00 |
|
Max Kellermann
|
a6d9998e1d
|
db/proxy: copy "Last-Modified" from remote directories
|
2014-01-22 23:07:21 +01:00 |
|
Max Kellermann
|
a42f9e4ee3
|
LightDirectory: new struct replacing Directory in the DB API
|
2014-01-22 23:01:32 +01:00 |
|
Max Kellermann
|
f16db6cd80
|
DatabasePrint: don't print zero mtime
Zero means "unknown".
|
2014-01-22 23:01:32 +01:00 |
|
Max Kellermann
|
4943606f4a
|
db/upnp: append characters instead of single-character strings
|
2014-01-22 21:55:58 +01:00 |
|
Max Kellermann
|
87629dda81
|
db/upnp: use string::push_back() instead of string::append()
|
2014-01-22 21:55:08 +01:00 |
|
Max Kellermann
|
71928b473e
|
db/upnp/Discovery: unlock mutex before deleting DiscoveredTask
|
2014-01-22 21:48:33 +01:00 |
|
Max Kellermann
|
a0bee9fa0a
|
db/upnp/Discovery: eliminate two strlen() calls
|
2014-01-22 21:47:34 +01:00 |
|
Max Kellermann
|
0defd927f3
|
db/upnp: use std::list instead of std::set for SearchCapabilities
Reduce bloat. We never used the set lookup.
|
2014-01-22 21:41:05 +01:00 |
|
Max Kellermann
|
6c41e8f63f
|
db/upnp: check offset<total at end of loop
|
2014-01-22 21:37:21 +01:00 |
|
Max Kellermann
|
fa67a4e956
|
db/upnp: break when zero objects have been returned
|
2014-01-22 21:37:19 +01:00 |
|
Max Kellermann
|
bf9352fb26
|
db/upnp: free responses manually
|
2014-01-22 21:33:54 +01:00 |
|
Max Kellermann
|
7573d4e1ba
|
db/upnp: break when count==0
Make this non-fatal. Just stop reading more objects.
|
2014-01-22 21:33:19 +01:00 |
|
Max Kellermann
|
bfb483898f
|
db/upnp: use ParseUnsigned() instead of atoi()
|
2014-01-22 21:11:04 +01:00 |
|
Max Kellermann
|
f363788d76
|
db/upnp: pass unsigned integers to readDirSlice()
|
2014-01-22 20:57:10 +01:00 |
|
Max Kellermann
|
714056f157
|
db/upnp: inline ContentDirectoryService::readDirSlice()
|
2014-01-22 20:42:36 +01:00 |
|
Max Kellermann
|
1abc96fa27
|
db/upnp: remove special case for "*"
Passing this to csvToStrings() will do the same.
|
2014-01-22 20:37:17 +01:00 |
|
Max Kellermann
|
0fa98479ad
|
db/upnp: obtain char* from ixmlwrap::getFirstElementValue()
Fixes crash when there's no SearchCaps element.
|
2014-01-22 20:26:33 +01:00 |
|
Max Kellermann
|
02f2171010
|
db/upnp/Util: pass char* to csvToStrings()
|
2014-01-22 20:24:55 +01:00 |
|
Max Kellermann
|
a5e7d0a90f
|
db/upnp: require an empty input capability set
|
2014-01-22 20:21:01 +01:00 |
|
Max Kellermann
|
9fb5134f64
|
db/upnp/Util: handle absolute URI paths properly in caturl()
Fixes problems with some UPnP servers.
|
2014-01-22 19:38:07 +01:00 |
|
Max Kellermann
|
9aeb23dfe9
|
db/upnp/Util: use string::back(), string::front()
|
2014-01-22 19:38:02 +01:00 |
|
Max Kellermann
|
e59d8c9378
|
db/upnp/Device: clear the "value" pointer on unknown element
Avoid appending to an obsolete string object.
|
2014-01-22 19:38:02 +01:00 |
|
Max Kellermann
|
0616667688
|
Main: glue_mapper_init() returns true if GetUserMusicDir() fails
Not a fatal error. Fixes assertion failure.
|
2014-01-22 16:28:19 +01:00 |
|
Max Kellermann
|
9747cc9e58
|
db/upnp/Device: replace std::vector with a std::string pointer
|
2014-01-22 09:55:51 +01:00 |
|
Max Kellermann
|
7b44dea4b1
|
db/upnp/Device: remove unused UPnPService attributes
|
2014-01-22 09:51:26 +01:00 |
|
Max Kellermann
|
18aea922e9
|
db/upnp/Directory: "emplace" items into the vector
|
2014-01-22 09:43:49 +01:00 |
|
Max Kellermann
|
7d194aceb6
|
db/upnp/Device: emplace/move the UPnPService into the vector
Reduce overhead.
|
2014-01-22 09:42:46 +01:00 |
|
Max Kellermann
|
2722b8a3df
|
db/upnp/Util: "emplace" items into the list
Reduce overhead.
|
2014-01-22 09:40:38 +01:00 |
|
Max Kellermann
|
fd754ff8f8
|
db/upnp/Directory: replace std::vector with a simple enum
Reduce bloat.
|
2014-01-22 09:32:11 +01:00 |
|
Max Kellermann
|
b7738e7af3
|
db/upnp/Directory: join all CDATA nodes for tag values
Expat can call CharacterData() multiple times if the CDATA contains
entity references. We need to collect all of them in one large
string.
|
2014-01-22 08:44:35 +01:00 |
|
Max Kellermann
|
99bebabac9
|
db/upnp/Directory: make "m_dir" private
|
2014-01-22 08:44:20 +01:00 |
|
Max Kellermann
|
0ed48b364a
|
db/upnp: merge duplicate branches in Namei()
|
2014-01-21 23:42:02 +01:00 |
|
Max Kellermann
|
b38b8b9c18
|
db/upnp: simplify Namei()
|
2014-01-21 23:37:27 +01:00 |
|
Max Kellermann
|
5434856136
|
db/upnp: use std::list instead of std::vector
Reduce overhead.
|
2014-01-21 23:33:28 +01:00 |
|
Max Kellermann
|
aa1eb2f40d
|
db/upnp: use iterator in Namei()
|
2014-01-21 23:32:42 +01:00 |
|
Max Kellermann
|
7260d7883c
|
db/upnp: move "objid" declaration down
Don't allocate the object when it's not needed.
|
2014-01-21 23:10:30 +01:00 |
|
Max Kellermann
|
154250f551
|
db/upnp: eliminate redundant Namei() parameter "oobjid"
The caller should better obtain the object id from the returned
UPnPDirObject instance.
|
2014-01-21 23:07:33 +01:00 |
|
Max Kellermann
|
3e4fb92cfb
|
db/upnp: remove redundant objid.empty() check from VisitServer()
If Namei() succeeds, the object id is guaranteed to be set.
|
2014-01-21 23:07:06 +01:00 |
|
Max Kellermann
|
0da713e278
|
db/upnp: use std::move() to extract server name
Reduce runtime overhead.
|
2014-01-21 22:57:54 +01:00 |
|
Max Kellermann
|
94cb1545b3
|
db/upnp: use vector::front() instead of [0]
|
2014-01-21 22:57:16 +01:00 |
|
Max Kellermann
|
411527a240
|
db/upnp: don't use stringToTokens() in ParseDuration()
Reduce bloat.
|
2014-01-21 22:52:12 +01:00 |
|
Max Kellermann
|
7777057d35
|
db/upnp: don't construct redundant empty vector<string> in Visit()
We know already that vpath is empty, let's use this instance.
|
2014-01-21 22:47:57 +01:00 |
|
Max Kellermann
|
dc5ef9ad01
|
db/upnp: simplify GetSong()
|
2014-01-21 22:43:04 +01:00 |
|
Max Kellermann
|
7471f65d95
|
LightSong: add attribute "real_uri"
The UPnP database plugin can now show relative song URIs for remote
songs.
|
2014-01-21 21:08:11 +01:00 |
|
Max Kellermann
|
5d4b450c52
|
DetachedSong: add attribute "real_uri"
Prepare for UPnP songs that retain there database identity.
|
2014-01-21 21:06:56 +01:00 |
|
Max Kellermann
|
483b1f51c9
|
DetachedSong: remove parameter names from "defaulted" constructors
Suppresses gcc warnings.
|
2014-01-21 21:06:56 +01:00 |
|
Max Kellermann
|
ecac7a629e
|
db/upnp: fix empty song URI
Fall back to UPnPDirObject::url if there is no override.
|
2014-01-21 21:02:21 +01:00 |
|
Max Kellermann
|
21209ff46b
|
DetachedSong: use "default" copy/move constructors
Remove unnecessary explicit code.
|
2014-01-21 20:38:13 +01:00 |
|
Chase Geigle
|
716bdc36fd
|
pcm/SoxrResampler: Add configurable quality levels
|
2014-01-21 20:35:26 +01:00 |
|
Max Kellermann
|
4f120f3714
|
PlaylistSong: modify the given song object in-place
Reduce bloat.
|
2014-01-21 00:28:37 +01:00 |
|
Max Kellermann
|
c727c86245
|
PlaylistSong: remove redundant "secure" check
This has been verified already in the caller.
|
2014-01-21 00:28:32 +01:00 |
|
Max Kellermann
|
82b4ec22be
|
PlaylistSong: recurse after applying base_uri
Allows applying map_to_relative_path() with base_uri.
|
2014-01-20 23:47:43 +01:00 |
|
Max Kellermann
|
501f1e6de0
|
PlaylistSong: remove the IsInDatabase() check
No caller passes a database song to this function, but if he does,
this check doesn't make sense.
|
2014-01-20 23:32:03 +01:00 |
|
Max Kellermann
|
414d5b648c
|
PlaylistSong: don't map relative URI to absolute path
This didn't make sense.
|
2014-01-20 23:31:08 +01:00 |
|
Max Kellermann
|
a237e7f860
|
CommandLine: show the current git tag and commit id
|
2014-01-20 23:31:08 +01:00 |
|
Max Kellermann
|
07a3bef25c
|
PlaylistSong: pass reference variables internally
|
2014-01-20 19:57:26 +01:00 |
|
Max Kellermann
|
2f51285349
|
Merge branch 'v0.18.x'
|
2014-01-20 09:05:36 +01:00 |
|
Max Kellermann
|
ab9c9068d4
|
Queue: rename struct queue to Queue
Works around a build failure on Solaris because annoyingly, Solaris
reserves the name "queue". This rename was pending anyway.
|
2014-01-20 08:57:46 +01:00 |
|
Max Kellermann
|
6b4d7d7315
|
Queue: make the constructor "explicit"
|
2014-01-20 08:57:41 +01:00 |
|
Max Kellermann
|
64465c1318
|
Song: make the "parent" attribute mandatory
The Song class is only used for database songs now. A Song without a
Directory is not possible anymore.
|
2014-01-19 23:16:09 +01:00 |
|
Max Kellermann
|
a506adea41
|
Directory: use Song::Export()
|
2014-01-19 23:16:08 +01:00 |
|
Max Kellermann
|
f5ae1ce00b
|
LightSong: new class to be used by DatabasePlugin callbacks
Detach the Song class completely from the public API, only to be used
by SimpleDatabase and the update thread.
|
2014-01-19 17:04:51 +01:00 |
|
Max Kellermann
|
738d6f1040
|
db/proxy: simplify error handling in GetSong()
Check mpd_response_finish() before using mpd_song. Don't skip this
check even if the mpd_song is non-nullptr.
|
2014-01-19 11:37:42 +01:00 |
|
Max Kellermann
|
ba372197fb
|
db/simple: make borrowed_song_count "mutable"
Simpler to use than const_cast.
|
2014-01-19 11:23:02 +01:00 |
|
Max Kellermann
|
bde27ccec3
|
Tag: pack attributes tighter
This saves another 3% memory.
|
2014-01-19 03:11:01 +01:00 |
|
Max Kellermann
|
d2cf74027c
|
Song: embed the Tag object statically into class Song
Reduces overhead because we need to manage only one memory allocation.
According to valgrind/massif, we save 7%.
|
2014-01-19 02:58:55 +01:00 |
|
Max Kellermann
|
bc966577ff
|
Song: use the VarSize library
|
2014-01-18 19:24:55 +01:00 |
|