istereo2

annotate src/android/assman.c @ 23:7d795dade0bc

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