Dependencies:   ChaNFSSD mbed BMP085 SHT2x

Committer:
tosihisa
Date:
Mon Feb 27 16:20:15 2012 +0000
Revision:
9:9ca3db7ed7cb
V0.89.2. GPS recv data is OK.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
tosihisa 9:9ca3db7ed7cb 1 /* mbed Microcontroller Library - FATDirHandle
tosihisa 9:9ca3db7ed7cb 2 * Copyright (c) 2008, sford
tosihisa 9:9ca3db7ed7cb 3 */
tosihisa 9:9ca3db7ed7cb 4
tosihisa 9:9ca3db7ed7cb 5 #include <stdio.h>
tosihisa 9:9ca3db7ed7cb 6 #include <stdlib.h>
tosihisa 9:9ca3db7ed7cb 7 #include <string.h>
tosihisa 9:9ca3db7ed7cb 8 #include "ff.h"
tosihisa 9:9ca3db7ed7cb 9 #include "FATDirHandle.h"
tosihisa 9:9ca3db7ed7cb 10 #include "FATFileSystem.h"
tosihisa 9:9ca3db7ed7cb 11
tosihisa 9:9ca3db7ed7cb 12 namespace mbed {
tosihisa 9:9ca3db7ed7cb 13
tosihisa 9:9ca3db7ed7cb 14 FATDirHandle::FATDirHandle(const DIR_t &the_dir) {
tosihisa 9:9ca3db7ed7cb 15 dir = the_dir;
tosihisa 9:9ca3db7ed7cb 16 }
tosihisa 9:9ca3db7ed7cb 17
tosihisa 9:9ca3db7ed7cb 18 int FATDirHandle::closedir() {
tosihisa 9:9ca3db7ed7cb 19 delete this;
tosihisa 9:9ca3db7ed7cb 20 return 0;
tosihisa 9:9ca3db7ed7cb 21 }
tosihisa 9:9ca3db7ed7cb 22
tosihisa 9:9ca3db7ed7cb 23 struct dirent *FATDirHandle::readdir() {
tosihisa 9:9ca3db7ed7cb 24 FILINFO finfo;
tosihisa 9:9ca3db7ed7cb 25 #if _USE_LFN
tosihisa 9:9ca3db7ed7cb 26 static char lfn[_MAX_LFN * (_LFN_UNICODE ? 2 : 1) + 1];
tosihisa 9:9ca3db7ed7cb 27 finfo.lfname = lfn;
tosihisa 9:9ca3db7ed7cb 28 finfo.lfsize = sizeof(lfn);
tosihisa 9:9ca3db7ed7cb 29 #endif
tosihisa 9:9ca3db7ed7cb 30 FRESULT res = f_readdir(&dir, &finfo);
tosihisa 9:9ca3db7ed7cb 31 if(res != 0 || finfo.fname[0]==0) {
tosihisa 9:9ca3db7ed7cb 32 return NULL;
tosihisa 9:9ca3db7ed7cb 33 } else {
tosihisa 9:9ca3db7ed7cb 34 char* fn;
tosihisa 9:9ca3db7ed7cb 35 int stringSize = 0;
tosihisa 9:9ca3db7ed7cb 36 #if _USE_LFN
tosihisa 9:9ca3db7ed7cb 37 fn = *finfo.lfname ? finfo.lfname : finfo.fname;
tosihisa 9:9ca3db7ed7cb 38 stringSize = finfo.lfsize;
tosihisa 9:9ca3db7ed7cb 39 #else
tosihisa 9:9ca3db7ed7cb 40 fn = fno.fname;
tosihisa 9:9ca3db7ed7cb 41 stringSize = sizeof(finfo.fname);
tosihisa 9:9ca3db7ed7cb 42 #endif
tosihisa 9:9ca3db7ed7cb 43 memcpy(cur_entry.d_name, fn, stringSize);
tosihisa 9:9ca3db7ed7cb 44 return &cur_entry;
tosihisa 9:9ca3db7ed7cb 45 }
tosihisa 9:9ca3db7ed7cb 46 }
tosihisa 9:9ca3db7ed7cb 47
tosihisa 9:9ca3db7ed7cb 48 void FATDirHandle::rewinddir() {
tosihisa 9:9ca3db7ed7cb 49 dir.index = 0;
tosihisa 9:9ca3db7ed7cb 50 }
tosihisa 9:9ca3db7ed7cb 51
tosihisa 9:9ca3db7ed7cb 52 off_t FATDirHandle::telldir() {
tosihisa 9:9ca3db7ed7cb 53 return dir.index;
tosihisa 9:9ca3db7ed7cb 54 }
tosihisa 9:9ca3db7ed7cb 55
tosihisa 9:9ca3db7ed7cb 56 void FATDirHandle::seekdir(off_t location) {
tosihisa 9:9ca3db7ed7cb 57 dir.index = location;
tosihisa 9:9ca3db7ed7cb 58 }
tosihisa 9:9ca3db7ed7cb 59
tosihisa 9:9ca3db7ed7cb 60 }
tosihisa 9:9ca3db7ed7cb 61