Max Kellermann
96afa8bd2b
command: add command "listfiles"
...
Lists files and directories. Supports storage plugins.
2014-03-01 06:25:57 +01:00
Max Kellermann
20cdab5546
DatabasePrint: move code to PrintDirectoryURI()
2014-02-28 08:21:34 +01:00
Max Kellermann
6765234b60
DatabasePrint: add API documentation
2014-02-28 08:17:25 +01:00
Max Kellermann
4c27898ce7
{Other,Database}Commands: contract declaration and assignment
2014-02-28 07:12:04 +01:00
Max Kellermann
d34ae0850c
AllCommands: "findadd" requires the "add" permission
2014-02-27 23:08:22 +01:00
Max Kellermann
e9a85aa4e4
db/simple: mount points
...
A SimpleDatabase instance can now "mount" other Database instances at
certain locations. This is used to use a new SimpleDatabase instance
for each storage mount (issued with the "mount" protocol command).
Each such instance has its own database file, stored in the directory
that is specified with the "cache_directory" option.
2014-02-27 20:49:13 +01:00
Max Kellermann
2a16fc74fd
CompositeStorage: add method GetMount()
2014-02-27 20:49:13 +01:00
Max Kellermann
f65254680a
db/update/Queue: use std::list instead of std::queue
...
The problem with std::queue is that it doesn't give us enough control.
The method Clear() is a kludge already, but soon, we'll need
filtering.
2014-02-27 20:49:13 +01:00
Max Kellermann
d64edb6896
db/simple: GetRoot() returns reference
2014-02-27 19:29:10 +01:00
Max Kellermann
3f9ad8e104
db/update/Service: allocate UpdateWalk dynamically
2014-02-27 18:04:24 +01:00
Max Kellermann
1c772ef699
Playlist: use the Error library to return errors
2014-02-27 17:27:23 +01:00
Max Kellermann
809b89b5af
Playlist*: move to queue/
2014-02-27 17:12:42 +01:00
Max Kellermann
681e012fb5
db/update: cancel the update on shutdown
2014-02-27 16:58:35 +01:00
Max Kellermann
3be36643a1
db/UpdateGlue: rename to Service.cxx
2014-02-27 16:14:10 +01:00
Max Kellermann
21e19ef69f
db/simple/Directory: eliminate method LookupSong()
...
Move to SimpleDatabase::GetSong() to give that method more control.
2014-02-26 20:10:31 +01:00
Max Kellermann
69a42fc901
db/simple/Directory: LookupDirectory() return remaining URI
...
Code can now be reused in LookupSong().
2014-02-26 19:50:46 +01:00
Max Kellermann
525789cd36
db/simple/Directory: make variables more local
2014-02-26 19:50:36 +01:00
Max Kellermann
367d660c08
db/Directory: add DEVICE_* documentation
2014-02-26 10:00:38 +01:00
Max Kellermann
4d73e4d605
db/simple: create dedicated directory
2014-02-26 09:17:41 +01:00
Max Kellermann
d86cc5bf42
db/Song: update API documentation for SimpleDatabasePlugin
2014-02-25 22:16:20 +01:00
Max Kellermann
5f262da09d
db/simple: remove unused method LookupDirectory()
2014-02-25 20:13:40 +01:00
Max Kellermann
82985a9488
db/simple: make internal methods "private"
2014-02-25 19:48:01 +01:00
Max Kellermann
afcdb65f80
db/simple: add comment
2014-02-25 18:17:54 +01:00
Max Kellermann
6b66e86f40
db/simple: move Create() up
2014-02-25 18:17:39 +01:00
Max Kellermann
cb145d290e
DirectorySave: save the flags "DEVICE_INARCHIVE" and "DEVICE_CONTAINER"
...
Helps avoid unnecessary archive scans during database update on a
fresh MPD process.
2014-02-25 18:16:19 +01:00
Max Kellermann
167803d2a1
DatabaseSave: increase DB_FORMAT version
2014-02-25 18:16:06 +01:00
Max Kellermann
58a981d2f6
DatabaseSave: add constant OLDEST_DB_FORMAT
2014-02-25 18:15:55 +01:00
Max Kellermann
8963cd1fab
DirectorySave: move code to ParseLine()
2014-02-25 18:15:43 +01:00
Max Kellermann
6526de024a
output/pulse: remove bogus g_free() call
2014-02-24 21:23:49 +01:00
Max Kellermann
55cd5a9a78
DirectorySave: save the mtime only if it is known
2014-02-24 21:17:06 +01:00
Max Kellermann
3f4c283203
icu/Collate: pass UErrorCode* to ucol_strcollUTF8()
...
Fixes crash after database update.
2014-02-24 21:05:44 +01:00
Max Kellermann
1e63e7c08b
icu/Collate: initialize the error code before ucol_open()
...
Fixes initialization failure.
2014-02-24 21:04:23 +01:00
Max Kellermann
33fc3af775
SongSort, ...: use libicu instead of GLib's g_utf8_*()
2014-02-24 20:39:37 +01:00
Max Kellermann
6d9739165e
output/httpd/client: eliminate GLib
2014-02-24 20:39:37 +01:00
Max Kellermann
7c5396ffb9
output/{shout,win32}: include cleanup
2014-02-24 20:34:09 +01:00
Max Kellermann
8319398957
output/openal: use usleep() instead of g_usleep()
2014-02-24 20:33:15 +01:00
Max Kellermann
a1509876de
output/pulse: use setenv() instead of g_setenv()
...
There is no advantage in using g_setenv().
2014-02-24 20:31:38 +01:00
Max Kellermann
0f2cf51f43
output/pulse: remove bogus g_free() call
2014-02-24 20:29:29 +01:00
Max Kellermann
e99ff4fdbc
decoder/gme: use free() instead of g_free()
2014-02-24 20:19:34 +01:00
Max Kellermann
25431f32a2
DecoderPlugin: free the container_scan() return value with delete[]
2014-02-24 20:19:34 +01:00
Max Kellermann
6ba1fe7568
UriUtil: support ftp:// URLs in uri_remove_auth()
2014-02-24 19:59:53 +01:00
Max Kellermann
bfae92e307
Main: use INT_MAX instead of G_MAXUINT
2014-02-24 18:57:03 +01:00
Max Kellermann
8fe004e98e
fs/Charset: use "UTF-8" instead of "utf-8" as the default value
...
The upper-case name seems to be the canonical one.
2014-02-23 22:03:40 +01:00
Max Kellermann
09e5f17b5d
Directory: use PathTraitsUTF8::Build() instead of g_strconcat()
2014-02-23 22:02:39 +01:00
Max Kellermann
db20e29af6
Directory: pass std::string&& to constructor
2014-02-23 22:02:02 +01:00
Max Kellermann
240a697f6c
encoder/opus: use xalloc() instead of g_malloc()
2014-02-22 13:40:11 +01:00
Max Kellermann
5a0dc808fd
decoder/opus: use new[] instead of g_malloc()
2014-02-22 13:37:36 +01:00
Max Kellermann
4dcf0b8ae0
first Android release
...
Finally, MPD runs on Android. For some small value of "runs". Very
much work left, too much to describe.
2014-02-22 01:39:08 +01:00
Max Kellermann
9574d11dc8
output/sles: new output plugin for Android
2014-02-22 00:18:46 +01:00
Max Kellermann
3d4689756c
Main: disable command-line parser and signal handlers on Android
2014-02-22 00:18:46 +01:00
Max Kellermann
90114514a9
LogBackend: use __android_log_print() on Android
2014-02-22 00:18:46 +01:00
Max Kellermann
7757e59e78
input/curl: include cleanup
2014-02-22 00:18:29 +01:00
Max Kellermann
b7a7953757
db/Directory: use "unsigned" for inode and device
...
This is what we get from the storage plugin via FileInfo. Fixes a
compiler warning on Mac OS X where dev_t appears to be signed.
2014-02-21 10:48:43 +01:00
Max Kellermann
30a82076ba
PlayerListener: new interface to replace GlobalEvents access
2014-02-21 10:22:35 +01:00
Max Kellermann
008723c62f
ConfigGlobal: eliminate function config_get_next_param()
2014-02-20 00:04:23 +01:00
Max Kellermann
04ba433ca6
Main: initialize Partition before Listener
...
Fixes nullptr dereference (regression by commit df5f9f4a
).
2014-02-20 00:04:23 +01:00
Max Kellermann
d884272ba8
Listen: eliminate local variable
2014-02-19 23:50:47 +01:00
Max Kellermann
e609c88334
Listen: reduce overhead for builds without systemd
2014-02-19 23:49:34 +01:00
Max Kellermann
e92a41fa3a
db/upnp: move plugin source to upnp directory
2014-02-19 23:46:00 +01:00
Max Kellermann
df5f9f4a15
Listen: add Partition reference
2014-02-19 23:43:36 +01:00
Max Kellermann
150443b014
DatabasePlugin: add FLAG_REQUIRE_STORAGE
...
Ignore the storage configuration if FLAG_REQUIRE_STORAGE is not set in
the DatabasePlugin.
2014-02-19 23:24:17 +01:00
Max Kellermann
9e36af7916
DatabasePlugin: add attribute "flags"
2014-02-19 23:24:15 +01:00
Max Kellermann
85b8675e7a
db/Interface: add attribute "plugin"
...
The new method IsPlugin() replaces the "is_simple" flag.
2014-02-19 23:17:21 +01:00
Max Kellermann
ae594ad92c
DatabasePlugin: split header
2014-02-19 22:54:52 +01:00
Max Kellermann
8d6fedf817
Mixer: add class MixerListener
...
Use a listener interface instead of GlobalEvents.
2014-02-19 21:40:14 +01:00
Max Kellermann
f4f8fa7c94
output/Init: pass AudioOutput references
2014-02-19 21:38:48 +01:00
Max Kellermann
fb5fbb8088
util/Tokenizer: relicense to BSD-2
2014-02-19 10:41:48 +01:00
Max Kellermann
e624171ba1
StickerCommands: include cleanup
2014-02-19 09:53:22 +01:00
Max Kellermann
0bbfb28992
output/httpd: move to dedicated directory
2014-02-19 09:22:08 +01:00
Max Kellermann
ee7bd695fd
Timer: move to output/
2014-02-19 09:22:08 +01:00
Max Kellermann
1cc17bfe7a
cue/CueParser: move to playlist/
2014-02-19 08:56:58 +01:00
Max Kellermann
e8789d7cb9
system/FatalError: remove GError support
2014-02-18 23:05:40 +01:00
Max Kellermann
0053cd0d0d
Main: disable inotify check without database
...
Fix build failure.
2014-02-18 21:47:01 +01:00
Max Kellermann
c32477a223
Merge branch 'v0.18.x'
2014-02-18 21:46:41 +01:00
Max Kellermann
5e1e92626c
event/SignalMonitor: unblock signals after fork
...
Fixes hanging child process in the "pipe" output plugin.
2014-02-18 19:13:50 +01:00
Max Kellermann
a0c25941a8
Thread/Util: use __NR_ioprio_set instead of SYS_ioprio_set
...
Bionic doesn't have the SYS_* macros.
2014-02-18 10:44:18 +01:00
Max Kellermann
5eb468bce0
Thread/Util: make SCHED_RESET_ON_FORK optional
...
Use it if it exists, but don't insist if the C library is poor
(e.g. Bionic/Android).
2014-02-18 10:43:24 +01:00
Max Kellermann
9b7f492c65
thread/Posix{Mutex,Cond}: disable "constexpr" on Android
...
Bionic's pthread declarations are non-literal.
2014-02-18 09:54:35 +01:00
Max Kellermann
6eda79d02d
system/EPollFD: add epoll_create1() fallback for Android
2014-02-18 09:54:35 +01:00
Max Kellermann
e10a8d95f6
PlaylistRegistry: disable the "pls" plugin without GLib
2014-02-18 09:18:42 +01:00
Max Kellermann
97f2be348c
LogInit: disable SetLogCharset() without GLib
2014-02-18 09:18:42 +01:00
Max Kellermann
2b21312b36
util/StringUtil: add StringEndsWith()
...
Replaces g_str_has_suffix().
2014-02-18 09:18:42 +01:00
Max Kellermann
3a818b6d45
SongFilter: disable g_utf8_casefold() without GLib
...
Temporary hack for the experimental no-GLib build.
2014-02-18 09:18:42 +01:00
Max Kellermann
1709ab6810
fs/TextFile: use custom allocation instead of GString
2014-02-17 23:04:10 +01:00
Max Kellermann
ce925ba56f
fs/Charset: disable if GLib is disabled
2014-02-17 22:48:26 +01:00
Max Kellermann
4ad14f6a2c
TagId3: use xstrdup() instead of g_strdup()
2014-02-17 22:42:54 +01:00
Max Kellermann
579e48edbb
util/StringUtil: add function Strip()
...
Replaces g_strstrip().
2014-02-17 22:37:43 +01:00
Max Kellermann
6a08f2281a
TagString: disable UTF-8 validation if GLib is disabled
2014-02-17 22:33:10 +01:00
Max Kellermann
91729437a0
Main: initialize Database before Storage
2014-02-17 22:14:00 +01:00
Max Kellermann
3af7af0b8f
Main: move code to InitDatabaseAndStorage()
2014-02-17 22:13:53 +01:00
Max Kellermann
1ddd00433e
db/Configured: disallow both "db_file" and "database"
...
This is misconfiguration, and MPD should abort.
2014-02-17 22:13:53 +01:00
Max Kellermann
de160bb2d1
Main: move code to db/Configured.cxx
2014-02-17 22:13:53 +01:00
Max Kellermann
ff62b6742b
Main: check if database exists before attempting to close it
...
Fixes nullptr dereference.
2014-02-17 22:13:53 +01:00
Max Kellermann
6da0af94df
db/DatabaseSimple: remove obsolete header
2014-02-17 20:44:03 +01:00
Max Kellermann
df9667a497
StorageCommands: add command "unmount"
2014-02-12 23:48:08 +01:00
Max Kellermann
e3e2ad4ae5
CompositeStorage: fix tree walk in Directory::Unmount()
2014-02-12 23:48:08 +01:00
Max Kellermann
ace4ba3171
StorageCommands: emit IDLE_MOUNT on successful "mount"
...
Add the new idle event to Idle.hxx/Idle.cxx.
2014-02-12 23:06:47 +01:00
Max Kellermann
0935ae330a
StorageCommands: add command "listmounts"
2014-02-12 21:47:59 +01:00
Max Kellermann
d05ae4b444
util/HugeAllocator: relicense to BSD-2
2014-02-10 13:32:50 +01:00
Max Kellermann
73b0610d89
PlaylistSong: copy the "real" URI
...
Playback with some decoder plugins was broken because the Queue's
DetachedSong instances did not have the "real" URI (the mapped path).
2014-02-10 11:00:49 +01:00