summaryrefslogtreecommitdiffstats
path: root/src/track.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/track.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/track.c')
-rw-r--r--src/track.c16
1 files changed, 12 insertions, 4 deletions
diff --git a/src/track.c b/src/track.c
index f7aa2a9..31d70b4 100644
--- a/src/track.c
+++ b/src/track.c
@@ -2,24 +2,32 @@
#include <wchar.h>
#include <string.h>
+#include <sys/stat.h>
struct track *
-track_init(const char *dir, const char *file)
+track_init(const char *dir, const char *fname)
{
struct track *track;
+ struct stat info;
track = malloc(sizeof(struct track));
ASSERT(track != NULL);
- track->fname = strdup(file);
+ track->fname = strdup(fname);
ASSERT(track->fname != NULL);
- track->fpath = aprintf("%s/%s", dir, file);
+ track->fpath = aprintf("%s/%s", dir, fname);
ASSERT(track->fpath != NULL);
track->name = calloc(strlen(track->fname) + 1, sizeof(wchar_t));
+ ASSERT(track->name != NULL);
mbstowcs(track->name, track->fname, strlen(track->fname) + 1);
- track->link = LINK_EMPTY;
+ if (!stat(track->fpath, &info)) {
+ track->fid = info.st_ino;
+ } else {
+ track->fid = -1;
+ }
+
track->tags = LIST_HEAD;
return track;