Lines Matching refs:file_header
218 xcursor_file_header_destroy(struct xcursor_file_header *file_header) in xcursor_file_header_destroy() argument
220 free(file_header); in xcursor_file_header_destroy()
226 struct xcursor_file_header *file_header; in xcursor_file_header_create() local
230 file_header = malloc(sizeof(struct xcursor_file_header) + in xcursor_file_header_create()
232 if (!file_header) in xcursor_file_header_create()
234 file_header->magic = XCURSOR_MAGIC; in xcursor_file_header_create()
235 file_header->header = XCURSOR_FILE_HEADER_LEN; in xcursor_file_header_create()
236 file_header->version = XCURSOR_FILE_VERSION; in xcursor_file_header_create()
237 file_header->ntoc = ntoc; in xcursor_file_header_create()
238 file_header->tocs = (struct xcursor_file_toc *) (file_header + 1); in xcursor_file_header_create()
239 return file_header; in xcursor_file_header_create()
245 struct xcursor_file_header head, *file_header; in xcursor_read_file_header() local
266 file_header = xcursor_file_header_create(head.ntoc); in xcursor_read_file_header()
267 if (!file_header) in xcursor_read_file_header()
269 file_header->magic = head.magic; in xcursor_read_file_header()
270 file_header->header = head.header; in xcursor_read_file_header()
271 file_header->version = head.version; in xcursor_read_file_header()
272 file_header->ntoc = head.ntoc; in xcursor_read_file_header()
273 for (n = 0; n < file_header->ntoc; n++) { in xcursor_read_file_header()
274 if (!xcursor_read_uint(file, &file_header->tocs[n].type)) in xcursor_read_file_header()
276 if (!xcursor_read_uint(file, &file_header->tocs[n].subtype)) in xcursor_read_file_header()
278 if (!xcursor_read_uint(file, &file_header->tocs[n].position)) in xcursor_read_file_header()
281 if (n != file_header->ntoc) { in xcursor_read_file_header()
282 xcursor_file_header_destroy(file_header); in xcursor_read_file_header()
285 return file_header; in xcursor_read_file_header()
290 struct xcursor_file_header *file_header, in xcursor_seek_to_toc() argument
293 if (!file || !file_header || in xcursor_seek_to_toc()
294 fseek(file, file_header->tocs[toc].position, SEEK_SET) == EOF) in xcursor_seek_to_toc()
301 struct xcursor_file_header *file_header, in xcursor_file_read_chunk_header() argument
305 if (!file || !file_header || !chunk_header) in xcursor_file_read_chunk_header()
307 if (!xcursor_seek_to_toc(file, file_header, toc)) in xcursor_file_read_chunk_header()
318 if (chunk_header->type != file_header->tocs[toc].type || in xcursor_file_read_chunk_header()
319 chunk_header->subtype != file_header->tocs[toc].subtype) in xcursor_file_read_chunk_header()
331 xcursor_file_best_size(struct xcursor_file_header *file_header, in xcursor_file_best_size() argument
339 if (!file_header || !nsizesp) in xcursor_file_best_size()
342 for (n = 0; n < file_header->ntoc; n++) { in xcursor_file_best_size()
343 if (file_header->tocs[n].type != XCURSOR_IMAGE_TYPE) in xcursor_file_best_size()
345 this_size = file_header->tocs[n].subtype; in xcursor_file_best_size()
358 xcursor_find_image_toc(struct xcursor_file_header *file_header, in xcursor_find_image_toc() argument
364 if (!file_header) in xcursor_find_image_toc()
367 for (toc = 0; toc < file_header->ntoc; toc++) { in xcursor_find_image_toc()
368 if (file_header->tocs[toc].type != XCURSOR_IMAGE_TYPE) in xcursor_find_image_toc()
370 this_size = file_header->tocs[toc].subtype; in xcursor_find_image_toc()
377 if (toc == file_header->ntoc) in xcursor_find_image_toc()
384 struct xcursor_file_header *file_header, in xcursor_read_image() argument
393 if (!file || !file_header) in xcursor_read_image()
396 if (!xcursor_file_read_chunk_header(file, file_header, toc, &chunk_header)) in xcursor_read_image()
442 struct xcursor_file_header *file_header; in xcursor_xc_file_load_images() local
451 file_header = xcursor_read_file_header(file); in xcursor_xc_file_load_images()
452 if (!file_header) in xcursor_xc_file_load_images()
454 best_size = xcursor_file_best_size(file_header, (uint32_t) size, &nsize); in xcursor_xc_file_load_images()
456 xcursor_file_header_destroy(file_header); in xcursor_xc_file_load_images()
461 xcursor_file_header_destroy(file_header); in xcursor_xc_file_load_images()
465 toc = xcursor_find_image_toc(file_header, best_size, n); in xcursor_xc_file_load_images()
468 images->images[images->nimage] = xcursor_read_image(file, file_header, in xcursor_xc_file_load_images()
474 xcursor_file_header_destroy(file_header); in xcursor_xc_file_load_images()