mapper: add mapper_get_music_directory()
Shortcut for map_directory_fs(db_get_root()).
This commit is contained in:
parent
df2d041483
commit
0a0b473765
@ -266,18 +266,19 @@ mpd_inotify_callback(int wd, unsigned mask,
|
||||
(mask & IN_ISDIR) != 0) {
|
||||
/* a sub directory was changed: register those in
|
||||
inotify */
|
||||
char *root = map_directory_fs(db_get_root());
|
||||
char *path_fs;
|
||||
const char *root = mapper_get_music_directory();
|
||||
const char *path_fs;
|
||||
char *allocated = NULL;
|
||||
|
||||
if (uri_fs != NULL) {
|
||||
path_fs = g_strconcat(root, "/", uri_fs, NULL);
|
||||
g_free(root);
|
||||
} else
|
||||
if (uri_fs != NULL)
|
||||
path_fs = allocated =
|
||||
g_strconcat(root, "/", uri_fs, NULL);
|
||||
else
|
||||
path_fs = root;
|
||||
|
||||
recursive_watch_subdirectories(directory, path_fs,
|
||||
watch_directory_depth(directory));
|
||||
g_free(path_fs);
|
||||
g_free(allocated);
|
||||
}
|
||||
|
||||
if ((mask & (IN_CLOSE_WRITE|IN_MOVE|IN_DELETE)) != 0 ||
|
||||
@ -303,21 +304,13 @@ mpd_inotify_callback(int wd, unsigned mask,
|
||||
void
|
||||
mpd_inotify_init(unsigned max_depth)
|
||||
{
|
||||
struct directory *root;
|
||||
char *path;
|
||||
GError *error = NULL;
|
||||
|
||||
g_debug("initializing inotify");
|
||||
|
||||
root = db_get_root();
|
||||
if (root == NULL) {
|
||||
g_debug("no music directory configured");
|
||||
return;
|
||||
}
|
||||
|
||||
path = map_directory_fs(root);
|
||||
const char *path = mapper_get_music_directory();
|
||||
if (path == NULL) {
|
||||
g_warning("mapper has failed");
|
||||
g_debug("no music directory configured");
|
||||
return;
|
||||
}
|
||||
|
||||
@ -326,13 +319,12 @@ mpd_inotify_init(unsigned max_depth)
|
||||
if (inotify_source == NULL) {
|
||||
g_warning("%s", error->message);
|
||||
g_error_free(error);
|
||||
g_free(path);
|
||||
return;
|
||||
}
|
||||
|
||||
inotify_max_depth = max_depth;
|
||||
|
||||
inotify_root.name = path;
|
||||
inotify_root.name = g_strdup(path);
|
||||
inotify_root.descriptor = mpd_inotify_source_add(inotify_source, path,
|
||||
IN_MASK, &error);
|
||||
if (inotify_root.descriptor < 0) {
|
||||
@ -340,7 +332,6 @@ mpd_inotify_init(unsigned max_depth)
|
||||
g_error_free(error);
|
||||
mpd_inotify_source_free(inotify_source);
|
||||
inotify_source = NULL;
|
||||
g_free(path);
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -117,10 +117,10 @@ void mapper_finish(void)
|
||||
g_free(playlist_dir);
|
||||
}
|
||||
|
||||
bool
|
||||
mapper_has_music_directory(void)
|
||||
const char *
|
||||
mapper_get_music_directory(void)
|
||||
{
|
||||
return music_dir != NULL;
|
||||
return music_dir;
|
||||
}
|
||||
|
||||
const char *
|
||||
|
11
src/mapper.h
11
src/mapper.h
@ -36,12 +36,19 @@ void mapper_init(const char *_music_dir, const char *_playlist_dir);
|
||||
|
||||
void mapper_finish(void);
|
||||
|
||||
G_GNUC_CONST
|
||||
const char *
|
||||
mapper_get_music_directory(void);
|
||||
|
||||
/**
|
||||
* Returns true if a music directory was configured.
|
||||
*/
|
||||
G_GNUC_CONST
|
||||
bool
|
||||
mapper_has_music_directory(void);
|
||||
static inline bool
|
||||
mapper_has_music_directory(void)
|
||||
{
|
||||
return mapper_get_music_directory() != NULL;
|
||||
}
|
||||
|
||||
/**
|
||||
* If the specified absolute path points inside the music directory,
|
||||
|
@ -115,7 +115,7 @@ playlist_check_translate_song(struct song *song, const char *base_uri,
|
||||
|
||||
if (g_path_is_absolute(uri)) {
|
||||
/* XXX fs_charset vs utf8? */
|
||||
char *prefix = map_directory_fs(db_get_root());
|
||||
const char *prefix = mapper_get_music_directory();
|
||||
|
||||
if (prefix != NULL && g_str_has_prefix(uri, prefix) &&
|
||||
uri[strlen(prefix)] == '/')
|
||||
@ -123,13 +123,11 @@ playlist_check_translate_song(struct song *song, const char *base_uri,
|
||||
else if (!secure) {
|
||||
/* local files must be relative to the music
|
||||
directory when "secure" is enabled */
|
||||
g_free(prefix);
|
||||
song_free(song);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
base_uri = NULL;
|
||||
g_free(prefix);
|
||||
}
|
||||
|
||||
if (base_uri != NULL)
|
||||
|
Loading…
Reference in New Issue
Block a user