summaryrefslogtreecommitdiffstats
path: root/src/tag.c
diff options
context:
space:
mode:
authorLouis Burda <quent.burda@gmail.com>2021-12-29 01:46:08 +0100
committerLouis Burda <quent.burda@gmail.com>2021-12-29 01:46:08 +0100
commit7902429e5d69bb6aa57c6f1411b163d3e037e0e1 (patch)
tree4e09953714eacf615da8cacb65bdc34d26ed7262 /src/tag.c
parentfb0a1cabe8d61d3305d9d14acc4754a1b6151b8c (diff)
downloadtmus-7902429e5d69bb6aa57c6f1411b163d3e037e0e1.tar.gz
tmus-7902429e5d69bb6aa57c6f1411b163d3e037e0e1.zip
More refactoring, moved track manipulation into player
Planning on creating a modular player_backend component
Diffstat (limited to 'src/tag.c')
-rw-r--r--src/tag.c34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/tag.c b/src/tag.c
index 452d099..9ffbfc0 100644
--- a/src/tag.c
+++ b/src/tag.c
@@ -1,4 +1,38 @@
#include "tag.h"
#include "link.h"
+#include "ref.h"
+#include <string.h>
+struct tag *
+tag_init(const char *path, const char *fname)
+{
+ struct tag *tag;
+
+ tag = malloc(sizeof(struct tag));
+ ASSERT(tag != NULL);
+
+ tag->fname = strdup(fname);
+ ASSERT(tag->fname != NULL);
+
+ tag->fpath = aprintf("%s/%s", path, fname);
+ ASSERT(tag->fpath != NULL);
+
+ tag->name = sanitized(tag->fname);
+ ASSERT(tag->name != NULL);
+
+ tag->link = LINK_EMPTY;
+
+ tag->tracks = LIST_HEAD;
+
+ return tag;
+}
+
+void
+tag_free(struct tag *tag)
+{
+ free(tag->fname);
+ free(tag->fpath);
+ free(tag->name);
+ refs_free(&tag->tracks);
+}