summaryrefslogtreecommitdiffstats
path: root/track.c
diff options
context:
space:
mode:
Diffstat (limited to 'track.c')
-rw-r--r--track.c37
1 files changed, 37 insertions, 0 deletions
diff --git a/track.c b/track.c
new file mode 100644
index 0000000..3312daf
--- /dev/null
+++ b/track.c
@@ -0,0 +1,37 @@
+#include "track.h"
+
+#include <string.h>
+
+
+struct track *
+track_init(const char *dir, const char *file)
+{
+ struct track *track;
+
+ track = malloc(sizeof(struct track));
+
+ ASSERT(track != NULL);
+ track->fname = strdup(file);
+ ASSERT(track->fname != NULL);
+ track->fpath = aprintf("%s/%s", dir, file);
+ ASSERT(track->fpath != NULL);
+ track->name = sanitized(track->fname);
+ ASSERT(track->name != NULL);
+
+ // TODO track_load_info(track)
+ track->artist = NULL;
+ track->duration = 0;
+ track->link = LINK_EMPTY;
+
+ track->tags = LIST_HEAD;
+
+ return track;
+}
+
+void
+track_free(struct track *t)
+{
+ free(t->fname);
+ free(t->fpath);
+ free(t->name);
+}