nimphea/nimphea_filereader

Source   Edit  

FileReader

Wrapper for libDaisy's FileReader utility. Provides an abstraction for reading files from FatFS.

Usage: This utility wraps a FatFS FIL object and provides read/seek methods. Note that per/sdmmc already wraps FatFS f_read etc directly. This wrapper is provided for completeness with libDaisy API.

Example:

import nimphea_filereader
import nimphea/per/sdmmc

var file: FIL
if f_open(addr file, "test.txt", FA_READ) == FR_OK:
  var reader = newFileReader(addr file)
  var buffer: array[64, uint8]
  let bytesRead = reader.read(addr buffer, buffer.len)
  discard f_close(addr file)

Types

FileReader {.importcpp: "daisy::FileReader", header: "util/FileReader.h".} = object
Source   Edit  

Procs

proc newFileReader(f: ptr FIL): FileReader {.importcpp: "daisy::FileReader(@)",
    constructor, ...raises: [], tags: [], forbids: [].}
Create a FileReader from an open FatFS file handle Source   Edit  
proc position(this: FileReader): uint32 {.importcpp: "#.position()", ...raises: [],
    tags: [], forbids: [].}
Get current position. Source   Edit  
proc read(this: var FileReader; dst: pointer; bytes: csize_t): csize_t {.
    importcpp: "#.read(@)", ...raises: [], tags: [], forbids: [].}
Read bytes from file. Returns actual bytes read. Source   Edit  
proc seek(this: var FileReader; pos: uint32): bool {.importcpp: "#.seek(@)",
    ...raises: [], tags: [], forbids: [].}
Seek to absolute position. Returns true on success. Source   Edit  
proc size(this: FileReader): uint32 {.importcpp: "#.size()", ...raises: [],
                                      tags: [], forbids: [].}
Get total file size. Source   Edit