8 static const char *get_temp_dir(void);
10 static char *tmpdir, *cachedir;
12 struct ass_fileops *ass_alloc_url(const char *url)
15 struct ass_fileops *fop;
18 curl_global_init(CURL_GLOBAL_ALL);
19 atexit(curl_global_cleanup);
22 if(!*ass_mod_url_cachedir) {
23 strcpy(ass_mod_url_cachedir, "assman_cache");
25 tmpdir = get_temp_dir();
26 if(!(cachedir = malloc(strlen(ass_mod_url_cachedir) + strlen(tmpdir) + 2))) {
27 fprintf(stderr, "assman: failed to allocate cachedir path buffer\n");
30 sprintf(cachedir, "%s/%s", tmpdir, ass_mod_url_cachedir);
33 if(!(fop = malloc(sizeof *fop))) {
39 fop->close = fop_close;
45 void ass_free_url(struct ass_fileops *fop)
49 static void *fop_open(const char *fname, void *udata)
54 static void fop_close(void *fp, void *udata)
58 static long fop_seek(void *fp, long offs, int whence, void *udata)
63 static long fop_read(void *fp, void *buf, long size, void *udata)
69 struct ass_fileops *ass_alloc_url(const char *url)
71 fprintf(stderr, "assman: compiled without URL asset source support\n");
75 void ass_free_url(struct ass_fileops *fop)