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