3dphotoshoot
annotate src/android/assman.c @ 21:4ca4e3c5a754
port to C++ completed, shader programs now use the SdrProg class
author | John Tsiombikas <nuclear@member.fsf.org> |
---|---|
date | Thu, 11 Jun 2015 04:56:33 +0300 |
parents | aef7f51f6397 |
children |
rev | line source |
---|---|
nuclear@16 | 1 #include <fcntl.h> |
nuclear@15 | 2 #include <android/asset_manager.h> |
nuclear@16 | 3 #include "assman.h" |
nuclear@16 | 4 #include "native_glue.h" |
nuclear@16 | 5 #include "amain.h" |
nuclear@15 | 6 |
nuclear@17 | 7 ass_file *ass_fopen(const char *fname, const char *mode) |
nuclear@15 | 8 { |
nuclear@16 | 9 AAsset *ass; |
nuclear@17 | 10 unsigned int flags = 0; |
nuclear@17 | 11 char prev = 0; |
nuclear@16 | 12 |
nuclear@17 | 13 while(*mode) { |
nuclear@17 | 14 switch(*mode) { |
nuclear@17 | 15 case 'r': |
nuclear@17 | 16 flags |= O_RDONLY; |
nuclear@17 | 17 break; |
nuclear@17 | 18 |
nuclear@17 | 19 case 'w': |
nuclear@17 | 20 flags |= O_WRONLY; |
nuclear@17 | 21 break; |
nuclear@17 | 22 |
nuclear@17 | 23 case 'a': |
nuclear@17 | 24 flags |= O_APPEND; |
nuclear@17 | 25 break; |
nuclear@17 | 26 |
nuclear@17 | 27 case '+': |
nuclear@17 | 28 if(prev == 'w' || prev == 'a') { |
nuclear@17 | 29 flags |= O_CREAT; |
nuclear@17 | 30 } |
nuclear@17 | 31 break; |
nuclear@17 | 32 |
nuclear@17 | 33 default: |
nuclear@17 | 34 break; |
nuclear@17 | 35 } |
nuclear@17 | 36 prev = *mode++; |
nuclear@17 | 37 } |
nuclear@17 | 38 |
nuclear@17 | 39 if(!(ass = AAssetManager_open(app->activity->assetManager, fname, flags))) { |
nuclear@16 | 40 return 0; |
nuclear@16 | 41 } |
nuclear@16 | 42 return (ass_file*)ass; |
nuclear@15 | 43 } |
nuclear@16 | 44 |
nuclear@16 | 45 void ass_fclose(ass_file *fp) |
nuclear@16 | 46 { |
nuclear@16 | 47 AAsset_close((AAsset*)fp); |
nuclear@16 | 48 } |
nuclear@16 | 49 |
nuclear@16 | 50 long ass_fseek(ass_file *fp, long offs, int whence) |
nuclear@16 | 51 { |
nuclear@16 | 52 return AAsset_seek((AAsset*)fp, offs, whence); |
nuclear@16 | 53 } |
nuclear@16 | 54 |
nuclear@21 | 55 long ass_ftell(ass_file *fp) |
nuclear@21 | 56 { |
nuclear@21 | 57 return AAsset_seek((AAsset*)fp, 0, SEEK_SET); |
nuclear@21 | 58 } |
nuclear@21 | 59 |
nuclear@16 | 60 size_t ass_fread(void *buf, size_t size, size_t count, ass_file *fp) |
nuclear@16 | 61 { |
nuclear@16 | 62 return AAsset_read((AAsset*)fp, buf, size * count) / size; |
nuclear@16 | 63 } |