USBMSD SD card Hello World for Mbed platforms

Dependencies:   mbed USBMSD_SD USBDevice

Committer:
samux
Date:
Mon Nov 14 12:08:32 2011 +0000
Revision:
7:6494da2a5c60
will try to use ChaNFSSD

Who changed what in which revision?

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