diff options
Diffstat (limited to 'src/track.c')
| -rw-r--r-- | src/track.c | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/src/track.c b/src/track.c new file mode 100644 index 0000000..f7aa2a9 --- /dev/null +++ b/src/track.c @@ -0,0 +1,34 @@ +#include "track.h" + +#include <wchar.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 = calloc(strlen(track->fname) + 1, sizeof(wchar_t)); + mbstowcs(track->name, track->fname, strlen(track->fname) + 1); + + 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); +} |
