Added HangmanGame class, but does not work yet

Dependencies:   SDFileSystem app epson mbed msp430 pl tests

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?

UserRevisionLine numberNew 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 }