diff options
author | Jon Bergli Heier <snakebite@jvnv.net> | 2010-08-17 23:57:38 +0200 |
---|---|---|
committer | Jon Bergli Heier <snakebite@jvnv.net> | 2010-08-17 23:57:38 +0200 |
commit | 052f74f4db45219d731e7af6dcb9beb5eec2344c (patch) | |
tree | 4197dcc66ac26f6be5364d8c5fda09dfb4b791b7 | |
parent | 1cbd3896bab58f2ccfb17c0fe36062e3748724da (diff) |
Use relative paths when interacting with the music_* functions.
-rw-r--r-- | commands.c | 4 | ||||
-rw-r--r-- | music.c | 12 | ||||
-rw-r--r-- | music.h | 4 |
3 files changed, 15 insertions, 5 deletions
@@ -160,9 +160,11 @@ static void commands_get_mp3(GSocketConnection *connection, const gchar *cmd) { goto commands_get_mp3_free_path; } + gchar *full_path = music_get_full_path(path); GOutputStream *os = g_io_stream_get_output_stream((GIOStream*)connection); - GFile *file = g_file_new_for_path(path); + GFile *file = g_file_new_for_path(full_path); GFileInputStream *is = g_file_read(file, NULL, &error); + g_free(full_path); if(is == NULL) { g_warning(error->message); @@ -87,7 +87,13 @@ static struct directory *music_find_dir_rec(struct directory *root, const gchar } struct directory *music_find_dir(const gchar *path) { - return music_find_dir_rec(music_root, path); + gchar *real_path = g_build_filename(music_root->path, path, NULL); + + struct directory *dir = music_find_dir_rec(music_root, real_path); + + g_free(real_path); + + return dir; } struct file *music_find_file(const gchar *path) { @@ -138,3 +144,7 @@ void music_free() { music_do_free(music_root); music_root = NULL; } + +gchar *music_get_full_path(const gchar *path) { + return g_build_filename(music_root->path, path, NULL); +} @@ -1,9 +1,6 @@ #ifndef _MUSIC_H_ #define _MUSIC_H_ -/* for size_t */ -#include <stddef.h> - #include <glib.h> struct file { @@ -25,5 +22,6 @@ gboolean music_scan_root(); struct directory *music_find_dir(const gchar *path); struct file *music_find_file(const gchar *path); void music_free(); +gchar *music_get_full_path(const gchar *path); #endif |