Added HangmanGame class, but does not work yet
Dependencies: SDFileSystem app epson mbed msp430 pl tests
wflib.c@1:a5ec6f9dcf0d, 2017-12-04 (annotated)
- Committer:
- markpsymonds
- Date:
- Mon Dec 04 20:15:18 2017 +0000
- Revision:
- 1:a5ec6f9dcf0d
- Parent:
- 0:fa7450a43b99
Fixed most compile issues in hangman.cpp/.h.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
group-FlexBook | 0:fa7450a43b99 | 1 | /* |
group-FlexBook | 0:fa7450a43b99 | 2 | Plastic Logic EPD project on MSP430 |
group-FlexBook | 0:fa7450a43b99 | 3 | |
group-FlexBook | 0:fa7450a43b99 | 4 | Copyright (C) 2014 Plastic Logic Limited |
group-FlexBook | 0:fa7450a43b99 | 5 | |
group-FlexBook | 0:fa7450a43b99 | 6 | This program is free software: you can redistribute it and/or modify |
group-FlexBook | 0:fa7450a43b99 | 7 | it under the terms of the GNU General Public License as published by |
group-FlexBook | 0:fa7450a43b99 | 8 | the Free Software Foundation, either version 3 of the License, or |
group-FlexBook | 0:fa7450a43b99 | 9 | (at your option) any later version. |
group-FlexBook | 0:fa7450a43b99 | 10 | |
group-FlexBook | 0:fa7450a43b99 | 11 | This program is distributed in the hope that it will be useful, |
group-FlexBook | 0:fa7450a43b99 | 12 | but WITHOUT ANY WARRANTY; without even the implied warranty of |
group-FlexBook | 0:fa7450a43b99 | 13 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
group-FlexBook | 0:fa7450a43b99 | 14 | GNU General Public License for more details. |
group-FlexBook | 0:fa7450a43b99 | 15 | |
group-FlexBook | 0:fa7450a43b99 | 16 | You should have received a copy of the GNU General Public License |
group-FlexBook | 0:fa7450a43b99 | 17 | along with this program. If not, see <http://www.gnu.org/licenses/>. |
group-FlexBook | 0:fa7450a43b99 | 18 | */ |
group-FlexBook | 0:fa7450a43b99 | 19 | /* |
group-FlexBook | 0:fa7450a43b99 | 20 | * wflib.c -- Waveform library management |
group-FlexBook | 0:fa7450a43b99 | 21 | * |
group-FlexBook | 0:fa7450a43b99 | 22 | * Authors: |
group-FlexBook | 0:fa7450a43b99 | 23 | * Guillaume Tucker <guillaume.tucker@plasticlogic.com> |
group-FlexBook | 0:fa7450a43b99 | 24 | * |
group-FlexBook | 0:fa7450a43b99 | 25 | */ |
group-FlexBook | 0:fa7450a43b99 | 26 | |
group-FlexBook | 0:fa7450a43b99 | 27 | #include "wflib.h" |
group-FlexBook | 0:fa7450a43b99 | 28 | |
group-FlexBook | 0:fa7450a43b99 | 29 | #include <ChaN/ff.h> |
group-FlexBook | 0:fa7450a43b99 | 30 | #define LOG_TAG "wflib" |
group-FlexBook | 0:fa7450a43b99 | 31 | #include "utils.h" |
group-FlexBook | 0:fa7450a43b99 | 32 | |
group-FlexBook | 0:fa7450a43b99 | 33 | #define DATA_BUFFER_LENGTH 256 |
group-FlexBook | 0:fa7450a43b99 | 34 | |
group-FlexBook | 0:fa7450a43b99 | 35 | static int pl_wflib_fatfs_xfer(struct pl_wflib *wflib, pl_wflib_wr_t wr, |
group-FlexBook | 0:fa7450a43b99 | 36 | void *ctx) |
group-FlexBook | 0:fa7450a43b99 | 37 | { |
group-FlexBook | 0:fa7450a43b99 | 38 | FIL *f = wflib->priv; |
group-FlexBook | 0:fa7450a43b99 | 39 | size_t left = wflib->size; |
group-FlexBook | 0:fa7450a43b99 | 40 | |
group-FlexBook | 0:fa7450a43b99 | 41 | #ifdef VERBOSE |
group-FlexBook | 0:fa7450a43b99 | 42 | LOG("pl_wflib_fatfs_xfer()"); |
group-FlexBook | 0:fa7450a43b99 | 43 | |
group-FlexBook | 0:fa7450a43b99 | 44 | LOG("size: %lu", (unsigned long) left); |
group-FlexBook | 0:fa7450a43b99 | 45 | LOG("f: %p", f); |
group-FlexBook | 0:fa7450a43b99 | 46 | LOG("wr: %p", wr); |
group-FlexBook | 0:fa7450a43b99 | 47 | #endif |
group-FlexBook | 0:fa7450a43b99 | 48 | |
group-FlexBook | 0:fa7450a43b99 | 49 | if (f_lseek(f, 0) != FR_OK) |
group-FlexBook | 0:fa7450a43b99 | 50 | return -1; |
group-FlexBook | 0:fa7450a43b99 | 51 | |
group-FlexBook | 0:fa7450a43b99 | 52 | while (left) { |
group-FlexBook | 0:fa7450a43b99 | 53 | uint8_t data[DATA_BUFFER_LENGTH]; |
group-FlexBook | 0:fa7450a43b99 | 54 | const size_t n = min(left, sizeof(data)); |
group-FlexBook | 0:fa7450a43b99 | 55 | size_t count; |
group-FlexBook | 0:fa7450a43b99 | 56 | |
group-FlexBook | 0:fa7450a43b99 | 57 | if ((f_read(f, data, n, &count) != FR_OK) || (count != n)) { |
group-FlexBook | 0:fa7450a43b99 | 58 | LOG("Failed to read from file"); |
group-FlexBook | 0:fa7450a43b99 | 59 | return -1; |
group-FlexBook | 0:fa7450a43b99 | 60 | } |
group-FlexBook | 0:fa7450a43b99 | 61 | |
group-FlexBook | 0:fa7450a43b99 | 62 | if (wr(ctx, data, n)) |
group-FlexBook | 0:fa7450a43b99 | 63 | return -1; |
group-FlexBook | 0:fa7450a43b99 | 64 | |
group-FlexBook | 0:fa7450a43b99 | 65 | left -= n; |
group-FlexBook | 0:fa7450a43b99 | 66 | } |
group-FlexBook | 0:fa7450a43b99 | 67 | |
group-FlexBook | 0:fa7450a43b99 | 68 | return 0; |
group-FlexBook | 0:fa7450a43b99 | 69 | } |
group-FlexBook | 0:fa7450a43b99 | 70 | |
group-FlexBook | 0:fa7450a43b99 | 71 | int pl_wflib_init_fatfs(struct pl_wflib *wflib, int *f, const char *path) |
group-FlexBook | 0:fa7450a43b99 | 72 | { |
group-FlexBook | 0:fa7450a43b99 | 73 | if (f_open((FIL *) f, path, FA_READ) != FR_OK) { |
group-FlexBook | 0:fa7450a43b99 | 74 | LOG("Failed to open wflib: %s", path); |
group-FlexBook | 0:fa7450a43b99 | 75 | return -1; |
group-FlexBook | 0:fa7450a43b99 | 76 | } |
group-FlexBook | 0:fa7450a43b99 | 77 | |
group-FlexBook | 0:fa7450a43b99 | 78 | wflib->xfer = pl_wflib_fatfs_xfer; |
group-FlexBook | 0:fa7450a43b99 | 79 | wflib->size = f_size((FIL *) f); |
group-FlexBook | 0:fa7450a43b99 | 80 | wflib->priv = f; |
group-FlexBook | 0:fa7450a43b99 | 81 | |
group-FlexBook | 0:fa7450a43b99 | 82 | #ifdef VERBOSE |
group-FlexBook | 0:fa7450a43b99 | 83 | LOG("wflib xfer: %p", wflib->xfer); |
group-FlexBook | 0:fa7450a43b99 | 84 | LOG("wflib size: %lu", (unsigned long) wflib->size); |
group-FlexBook | 0:fa7450a43b99 | 85 | LOG("wflib priv: %p", wflib->priv); |
group-FlexBook | 0:fa7450a43b99 | 86 | |
group-FlexBook | 0:fa7450a43b99 | 87 | LOG("FatFS (%s)", path); |
group-FlexBook | 0:fa7450a43b99 | 88 | #endif |
group-FlexBook | 0:fa7450a43b99 | 89 | |
group-FlexBook | 0:fa7450a43b99 | 90 | return 0; |
group-FlexBook | 0:fa7450a43b99 | 91 | } |