istereo2

annotate src/android/assman.c @ 7:a3c4fcc9f8f3

- started a goatkit UI theme - font rendering with drawtext and shaders - asset manager (only used by drawtext for now, will replace respath eventually)
author John Tsiombikas <nuclear@member.fsf.org>
date Thu, 24 Sep 2015 06:49:25 +0300
parents
children 7d795dade0bc
rev   line source
nuclear@7 1 #include <fcntl.h>
nuclear@7 2 #include <android/asset_manager.h>
nuclear@7 3 #include "assman.h"
nuclear@7 4 #include "native_glue.h"
nuclear@7 5 #include "amain.h"
nuclear@7 6
nuclear@7 7 ass_file *ass_fopen(const char *fname, const char *mode)
nuclear@7 8 {
nuclear@7 9 AAsset *ass;
nuclear@7 10 unsigned int flags = 0;
nuclear@7 11 char prev = 0;
nuclear@7 12
nuclear@7 13 while(*mode) {
nuclear@7 14 switch(*mode) {
nuclear@7 15 case 'r':
nuclear@7 16 flags |= O_RDONLY;
nuclear@7 17 break;
nuclear@7 18
nuclear@7 19 case 'w':
nuclear@7 20 flags |= O_WRONLY;
nuclear@7 21 break;
nuclear@7 22
nuclear@7 23 case 'a':
nuclear@7 24 flags |= O_APPEND;
nuclear@7 25 break;
nuclear@7 26
nuclear@7 27 case '+':
nuclear@7 28 if(prev == 'w' || prev == 'a') {
nuclear@7 29 flags |= O_CREAT;
nuclear@7 30 }
nuclear@7 31 break;
nuclear@7 32
nuclear@7 33 default:
nuclear@7 34 break;
nuclear@7 35 }
nuclear@7 36 prev = *mode++;
nuclear@7 37 }
nuclear@7 38
nuclear@7 39 if(!(ass = AAssetManager_open(app->activity->assetManager, fname, flags))) {
nuclear@7 40 return 0;
nuclear@7 41 }
nuclear@7 42 return (ass_file*)ass;
nuclear@7 43 }
nuclear@7 44
nuclear@7 45 void ass_fclose(ass_file *fp)
nuclear@7 46 {
nuclear@7 47 AAsset_close((AAsset*)fp);
nuclear@7 48 }
nuclear@7 49
nuclear@7 50 long ass_fseek(ass_file *fp, long offs, int whence)
nuclear@7 51 {
nuclear@7 52 return AAsset_seek((AAsset*)fp, offs, whence);
nuclear@7 53 }
nuclear@7 54
nuclear@7 55 long ass_ftell(ass_file *fp)
nuclear@7 56 {
nuclear@7 57 return AAsset_seek((AAsset*)fp, 0, SEEK_SET);
nuclear@7 58 }
nuclear@7 59
nuclear@7 60 size_t ass_fread(void *buf, size_t size, size_t count, ass_file *fp)
nuclear@7 61 {
nuclear@7 62 return AAsset_read((AAsset*)fp, buf, size * count) / size;
nuclear@7 63 }