summaryrefslogtreecommitdiff
path: root/include/musicfs.h
diff options
context:
space:
mode:
authorKjetil Ørbekk <orbekk@pvv.ntnu.no>2008-08-14 11:48:45 +0200
committerKjetil Ørbekk <orbekk@pvv.ntnu.no>2008-08-14 12:01:09 +0200
commitde84f0b82b5cf461a83aa4fac108856c591faf3c (patch)
treeced5c015c919404599888a2aea50edd9a59ea007 /include/musicfs.h
parent62bfd37585fb26c5bfcd9da02a0b6fd6f268b118 (diff)
- Renamed mp3fs to musicfs
Diffstat (limited to 'include/musicfs.h')
-rw-r--r--include/musicfs.h63
1 files changed, 63 insertions, 0 deletions
diff --git a/include/musicfs.h b/include/musicfs.h
new file mode 100644
index 0000000..5f92946
--- /dev/null
+++ b/include/musicfs.h
@@ -0,0 +1,63 @@
+#ifndef _MP3FS_H_
+#define _MP3FS_H_
+struct fuse_args;
+
+#define DBNAME "music.db"
+
+int mfs_run(int, char **);
+int mfs_initscan(char *);
+
+
+/*
+ * Functions traversing the underlying filesystem and do operations on the
+ * files, for instance scanning the collection.
+ */
+typedef void traverse_fn_t(char *);
+void traverse_hierarchy(char *, traverse_fn_t);
+traverse_fn_t mfs_scan;
+
+/*
+ * Data passed to mfs_lookup_list
+ */
+struct filler_data {
+ void *buf;
+ fuse_fill_dir_t filler;
+};
+
+/*
+ * Data passed to mfs_lookup_open
+ */
+struct file_data {
+ int fd;
+ int found;
+};
+
+#define LIST_DATATYPE_STRING 1
+#define LIST_DATATYPE_INT 2
+
+enum mfs_filetype { MFS_NOTFOUND, MFS_FILE, MFS_DIRECTORY };
+
+/* A lookup functions returns 0 if it's finished. */
+typedef int lookup_fn_t(void *, const char *);
+/* Lookup function listing each row. */
+lookup_fn_t mfs_lookup_list;
+/* Lookup function opening the first file match. */
+lookup_fn_t mfs_lookup_open;
+/* Lookup function stat'ing a file. */
+lookup_fn_t mfs_lookup_stat;
+
+struct lookuphandle;
+
+struct lookuphandle *mfs_lookup_start(int, void *, lookup_fn_t *, const char *);
+void mfs_lookup_insert(struct lookuphandle *, void *, int);
+void mfs_lookup_finish(struct lookuphandle *);
+
+void mfs_lookup_artist(const char *, struct filler_data *);
+void mfs_lookup_genre(const char *, struct filler_data *);
+void mfs_lookup_album(const char *, struct filler_data *);
+char *mfs_gettoken(const char *, int);
+int mfs_numtoken(const char *);
+int mfs_file_data_for_path(const char *, void *);
+
+enum mfs_filetype mfs_get_filetype(const char *);
+#endif