fork from va009039/USBLocalFileSystem

Dependencies:   USBDevice

Dependents:   11u35_usbLocalFilesystem

Fork of USBLocalFileSystem by Norimasa Okamoto

USBLocalFileSystem.cpp

Committer:
va009039
Date:
2014-05-04
Revision:
1:00c9eb8af5c2
Parent:
0:39eb4d5b97df
Child:
2:97c314eae8b8

File content as of revision 1:00c9eb8af5c2:

#include "USBLocalFileSystem.h"
#include "RamDisk.h"
#include "SDStorage.h"

USBLocalFileSystem::USBLocalFileSystem(const char* name)
{
    RamDisk* storage = new RamDisk;
    init(storage, name);
}

USBLocalFileSystem::USBLocalFileSystem(PinName mosi, PinName miso, PinName sclk, PinName cs, const char* name)
{
    SDStorage* storage = new SDStorage(mosi, miso, sclk, cs);
    storage->storage_initialize();
    init(storage, name);
}

USBLocalFileSystem::USBLocalFileSystem(StorageInterface* storage, const char* name)
{
    init(storage, name);
}

void USBLocalFileSystem::init(StorageInterface* storage, const char* name)
{
    _name = name;
    _storage = storage;
    _usb = new USBStorage2(_storage);
    _local = new LocalStorage(_storage);    
}

void USBLocalFileSystem::attachEvent(void (*ptr)())
{
    if (ptr && _storage) {
         _storage->attachEvent(ptr);
     }
}

void USBLocalFileSystem::remount()
{
    if (_local) {
        delete _local;
    }    
    _local = new LocalStorage(_storage); 
}


int USBLocalFileSystem::readable()
{
    return _usb->readable();
}

int USBLocalFileSystem::writeable()
{
    return _usb->writeable();
}

int USBLocalFileSystem::getc()
{
    return _usb->getc();
}

void USBLocalFileSystem::putc(int c)
{
    _usb->putc(c);
}