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 |
|
Max Kellermann
|
73aec9ce63
|
StorageCommands: expose the "mount" command
|
2014-02-09 11:07:08 +01:00 |
|
Max Kellermann
|
a9fefcf600
|
Main: wrap the Storage instance in CompositeStorage
|
2014-02-09 11:07:08 +01:00 |
|
Max Kellermann
|
59ce67e2e5
|
CompositeStorage: new Storage implementation
This is the backend for the upcoming "mount" command.
|
2014-02-09 10:47:29 +01:00 |
|
Max Kellermann
|
2182209a8a
|
db/update/Walk: disable FindAncestorLoop() if device/inode==0
|
2014-02-09 10:47:29 +01:00 |
|
Max Kellermann
|
e29a8b3a9c
|
db/update/Walk: document FindAncestorLoop()
|
2014-02-09 10:46:39 +01:00 |
|
Max Kellermann
|
ace3f37af4
|
db/update/Walk: rename find_inode_ancestor() to FindAncestorLoop()
|
2014-02-09 10:46:39 +01:00 |
|
Max Kellermann
|
37b6899660
|
Main: move code to storage/Configured.cxx
|
2014-02-09 08:09:47 +01:00 |
|
Max Kellermann
|
570b12ec13
|
Idle: error out when unrecognized idle event was specified
Implements the error checks missing in commit 0bad8406
|
2014-02-09 08:07:48 +01:00 |
|
Max Kellermann
|
ac286ef734
|
OtherCommands: remove unnecessary nullptr check
|
2014-02-09 08:07:43 +01:00 |
|
Max Kellermann
|
b3663b5da2
|
storage/nfs: new storage plugin
|
2014-02-08 14:24:47 +01:00 |
|
Max Kellermann
|
d761d8b168
|
input/nfs: move nfs_domain to lib/nfs/Domain.cxx
|
2014-02-08 14:24:47 +01:00 |
|
Max Kellermann
|
fe7c6fee34
|
ArchivePlugin: pass Path to open()
|
2014-02-08 13:25:44 +01:00 |
|
Max Kellermann
|
9906daeca7
|
ArchivePlugin: rename struct archive_plugin to ArchivePlugin
|
2014-02-08 13:22:13 +01:00 |
|
Max Kellermann
|
3fdc678aae
|
Main: support arbitrary storage plugins
|
2014-02-08 00:04:29 +01:00 |
|
Max Kellermann
|
a0088ccce1
|
storage: add struct StoragePlugin and a plugin registry
|
2014-02-07 23:46:15 +01:00 |
|
Max Kellermann
|
be081929f4
|
storage/local: remove utf8 path from constructor
Build the UTF-8 version of the path automatically in the constructor.
|
2014-02-07 23:41:06 +01:00 |
|
Max Kellermann
|
b0b086d473
|
Main: move storage initialization to InitStorage()
|
2014-02-07 23:37:39 +01:00 |
|
Max Kellermann
|
6798af52b6
|
Mapper: obtain music directory from Storage
Eliminate duplicate variable.
|
2014-02-07 23:34:29 +01:00 |
|
Max Kellermann
|
4d5ebafa6d
|
Main: check the music directory
Move call from Mapper.cxx.
|
2014-02-07 23:29:20 +01:00 |
|
Max Kellermann
|
ec8873b178
|
Mapper: move check_directory() to the filesystem library
|
2014-02-07 23:25:47 +01:00 |
|
Max Kellermann
|
c45f205593
|
Main: chop separators from music directory
Move call from Mapper.cxx.
|
2014-02-07 23:13:24 +01:00 |
|
Max Kellermann
|
027b2063ba
|
Mapper: remove unused functions
|
2014-02-07 23:03:25 +01:00 |
|
Max Kellermann
|
b531c4c2fe
|
OtherCommands: use Storage::MapUTF8() instead of Mapper.cxx
|
2014-02-07 22:58:21 +01:00 |
|
Max Kellermann
|
4b010df99e
|
Main: create Storage instance in glue_mapper_init()
Don't use the obsolete Mapper library to create it.
|
2014-02-07 22:54:18 +01:00 |
|
Max Kellermann
|
5e4dd4be9c
|
Main: allow playlist directory without music directory
|
2014-02-07 22:39:17 +01:00 |
|
Max Kellermann
|
f947274626
|
InotifyUpdate: use class Storage instead of Mapper.cxx
|
2014-02-07 22:30:40 +01:00 |
|
Max Kellermann
|
f6939f71a7
|
InotifyUpdate: use the root name instead of mapper_get_music_directory_fs()
The root WatchDirectory instance already contains the music directory,
and we don't need to fetch it again.
|
2014-02-07 22:30:01 +01:00 |
|
Max Kellermann
|
25aa17ad89
|
InotifyUpdate: move functions into the WatchDirectory class
|
2014-02-07 22:24:26 +01:00 |
|
Max Kellermann
|
05ee057db5
|
InotifyUpdate: remove unnecessary #ifdefs
|
2014-02-07 22:17:27 +01:00 |
|
Max Kellermann
|
297e2747f3
|
PlaylistMapper: use class Storage instead of Mapper.cxx
|
2014-02-07 21:44:50 +01:00 |
|
Max Kellermann
|
77de233117
|
Playlist{Any,Registry,Mapper}: move functions to PlaylistStream.cxx
|
2014-02-07 21:30:49 +01:00 |
|
Max Kellermann
|
02b67edaf5
|
PlaylistSong: include cleanup
|
2014-02-07 21:30:03 +01:00 |
|
Max Kellermann
|
8549ccfd8c
|
playlist/CloseSongEnumerator: new wrapper class
Simplifies a lot of code, because we don't need to return both the
SongEnumerator and the InputStream.
|
2014-02-07 20:27:24 +01:00 |
|
Max Kellermann
|
ffd16b55a6
|
StoragePlugin: add method MapToRelativeUTF8()
Replaces map_to_relative_path() from Mapper.cxx.
|
2014-02-07 19:09:28 +01:00 |
|
Max Kellermann
|
d744c997d8
|
fs/Traits: add function Relative()
Move code from Path::RelativeFS() and make it generic.
|
2014-02-07 19:08:51 +01:00 |
|
Max Kellermann
|
6b421cc354
|
DecoderPlugin: pass Path instance to file_decode() and scan_file()
|
2014-02-07 18:52:19 +01:00 |
|
Max Kellermann
|
37ec29b225
|
Mapper: remove unused function map_song_fs()
|
2014-02-07 18:51:19 +01:00 |
|
Max Kellermann
|
ca7f6a26b5
|
DecoderThread: use only DetachedSong::GetRealURI()
Don't use the mapper - all DetachedSong instances we get have already
been mapped.
|
2014-02-07 18:50:07 +01:00 |
|
Max Kellermann
|
9b69d22d7e
|
DecoderThread: pass Path object around for local song files
|
2014-02-07 18:45:11 +01:00 |
|
Max Kellermann
|
4ab4cf8532
|
SongUpdate: pass Storage to UpdateFileInArchive()
|
2014-02-07 18:44:47 +01:00 |
|
Max Kellermann
|
3341b282b7
|
PlaylistSave: use DetachedSong::GetRealURI() in playlist_print_song()
The DetachedSong instance already knows its own absolute path, and
there is no need to ask the mapper again.
|
2014-02-07 18:42:16 +01:00 |
|
Max Kellermann
|
bb3b836dbb
|
FileCommands: support remove database files
|
2014-02-07 18:41:42 +01:00 |
|
Max Kellermann
|
1873c67540
|
FileCommands: use Storage::MapFS() instead of map_uri_fs()
|
2014-02-07 18:38:10 +01:00 |
|
Max Kellermann
|
8fd8f23a6b
|
FileCommands: move code to read_file_comments()
|
2014-02-07 18:33:43 +01:00 |
|
geneticdrift
|
f225051348
|
fixed possible format_context not closed in ffmpeg_decode
|
2014-02-07 12:07:43 +01:00 |
|
Max Kellermann
|
b2e3fdef0f
|
storage/local: hide the class declarations
Hide inside CreateLocalStorage().
|
2014-02-07 01:11:52 +01:00 |
|
Max Kellermann
|
c13810ebaa
|
Mapper: move map_song_detach() to db/DatabaseSong.cxx
Use Storage::MapUTF8() internally, don't use global variables.
|
2014-02-07 00:42:14 +01:00 |
|
Max Kellermann
|
19a982cf69
|
Mapper: convert IsInDatabase() check to assertion in map_song_detach()
|
2014-02-07 00:42:14 +01:00 |
|