summaryrefslogtreecommitdiff
path: root/video.c
diff options
context:
space:
mode:
Diffstat (limited to 'video.c')
-rw-r--r--video.c49
1 files changed, 49 insertions, 0 deletions
diff --git a/video.c b/video.c
new file mode 100644
index 0000000..1091175
--- /dev/null
+++ b/video.c
@@ -0,0 +1,49 @@
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include "video.h"
+
+Video createVideo(char *title, char *author, char *id, char *description, time_t duration)
+{
+ Video video;
+
+ if (title != NULL && strlen(title) > 0)
+ {
+ video.title = (char *) calloc(TITLE + 1, sizeof(char));
+ strcpy(video.title, title);
+ }
+
+ if (author != NULL && strlen(author) > 0)
+ {
+ video.author = (char *) calloc(AUTHOR + 1, sizeof(char));
+ strcpy(video.author, author);
+ }
+
+ if (id != NULL && strlen(id) > 0)
+ {
+ video.id = (char *) calloc(VIDEOID + 1, sizeof(char));
+ strcpy(video.id, id);
+ }
+
+ if (description != NULL && strlen(description) > 0)
+ {
+ video.description = (char *) calloc(DESCRIPTION + 1, sizeof(char));
+ strcpy(video.description, description);
+ }
+ else
+ {
+ video.description = (char *) calloc(1, sizeof(char));
+ }
+
+ video.duration = duration;
+
+ return video;
+}
+
+void freeVideo(Video *v)
+{
+ free(v->title);
+ free(v->author);
+ free(v->id);
+ free(v->description);
+}