The final(?) edition of el14jbed's ELEC2645 project

Dependencies:   N5110 SDFileSystem mbed

Jacob Markl 200852678

Committer:
horizontalwolf
Date:
Thu May 05 13:33:38 2016 +0000
Revision:
0:cba7494d5dff
Final(?) version of ELEC2645 project

Who changed what in which revision?

UserRevisionLine numberNew contents of line
horizontalwolf 0:cba7494d5dff 1 /**
horizontalwolf 0:cba7494d5dff 2 @file SDcard.h
horizontalwolf 0:cba7494d5dff 3 @brief The header file containing functions for the SDcard.
horizontalwolf 0:cba7494d5dff 4 @brief Revision 9.9.
horizontalwolf 0:cba7494d5dff 5 @author Jacob Markl
horizontalwolf 0:cba7494d5dff 6 @date May 2016
horizontalwolf 0:cba7494d5dff 7 */
horizontalwolf 0:cba7494d5dff 8
horizontalwolf 0:cba7494d5dff 9 #ifndef SDcard_H
horizontalwolf 0:cba7494d5dff 10 #define SDcard_H
horizontalwolf 0:cba7494d5dff 11
horizontalwolf 0:cba7494d5dff 12 #include "SDFileSystem.h"
horizontalwolf 0:cba7494d5dff 13 #include "Main.h"
horizontalwolf 0:cba7494d5dff 14 #include "Variables.h"
horizontalwolf 0:cba7494d5dff 15 #include "Main.h"
horizontalwolf 0:cba7494d5dff 16
horizontalwolf 0:cba7494d5dff 17 FILE *topscore;
horizontalwolf 0:cba7494d5dff 18 FILE *song;
horizontalwolf 0:cba7494d5dff 19 std::vector<float> g_musicarray;
horizontalwolf 0:cba7494d5dff 20 using namespace std;
horizontalwolf 0:cba7494d5dff 21
horizontalwolf 0:cba7494d5dff 22
horizontalwolf 0:cba7494d5dff 23 /**
horizontalwolf 0:cba7494d5dff 24 checks if the top score file exists, if it does then it closes the file and removes it
horizontalwolf 0:cba7494d5dff 25 if the file does not exist it creates a new file, writes it blank and closes it.
horizontalwolf 0:cba7494d5dff 26 */
horizontalwolf 0:cba7494d5dff 27 void clearsd()
horizontalwolf 0:cba7494d5dff 28 {
horizontalwolf 0:cba7494d5dff 29 topscore = fopen("/sd/topscore.txt", "r");
horizontalwolf 0:cba7494d5dff 30 if (topscore != NULL) {
horizontalwolf 0:cba7494d5dff 31 fclose(topscore);
horizontalwolf 0:cba7494d5dff 32 remove("/sd/topscore.txt");
horizontalwolf 0:cba7494d5dff 33 }
horizontalwolf 0:cba7494d5dff 34 topscore = fopen("/sd/topscore.txt", "w");
horizontalwolf 0:cba7494d5dff 35 fprintf(topscore, "0,0,0");
horizontalwolf 0:cba7494d5dff 36 fclose(topscore);
horizontalwolf 0:cba7494d5dff 37 }
horizontalwolf 0:cba7494d5dff 38
horizontalwolf 0:cba7494d5dff 39 /**
horizontalwolf 0:cba7494d5dff 40 writes a topscore file, fills it with the g_topscore array and closes it.
horizontalwolf 0:cba7494d5dff 41 */
horizontalwolf 0:cba7494d5dff 42 void writesd()
horizontalwolf 0:cba7494d5dff 43 {
horizontalwolf 0:cba7494d5dff 44
horizontalwolf 0:cba7494d5dff 45 topscore = fopen("/sd/topscore.txt", "w");
horizontalwolf 0:cba7494d5dff 46 if (topscore!=NULL) {
horizontalwolf 0:cba7494d5dff 47 fprintf(topscore, "%d,%d,%d",g_topscores[0],g_topscores[1],g_topscores[2]);
horizontalwolf 0:cba7494d5dff 48 fclose(topscore);
horizontalwolf 0:cba7494d5dff 49 }
horizontalwolf 0:cba7494d5dff 50
horizontalwolf 0:cba7494d5dff 51 }
horizontalwolf 0:cba7494d5dff 52 /**
horizontalwolf 0:cba7494d5dff 53 clears the g_musicarray
horizontalwolf 0:cba7494d5dff 54 reads the song stored on the sd card and stores it in the g_musicarray if the song file exists
horizontalwolf 0:cba7494d5dff 55 if the song does not exist then it stores the g_songdefault in the g_musicarray
horizontalwolf 0:cba7494d5dff 56 */
horizontalwolf 0:cba7494d5dff 57 void readsong()
horizontalwolf 0:cba7494d5dff 58 {
horizontalwolf 0:cba7494d5dff 59
horizontalwolf 0:cba7494d5dff 60 song = fopen("/sd/song.txt", "r");
horizontalwolf 0:cba7494d5dff 61 if (song==NULL) {
horizontalwolf 0:cba7494d5dff 62 song = fopen("/sd/song.txt", "r");
horizontalwolf 0:cba7494d5dff 63 }
horizontalwolf 0:cba7494d5dff 64 g_musicarray.clear();
horizontalwolf 0:cba7494d5dff 65 if (song==NULL) {
horizontalwolf 0:cba7494d5dff 66 for (int y = 0; y < (((sizeof(g_songdefault))/(sizeof(g_songdefault[0])))-1) ; y++) {
horizontalwolf 0:cba7494d5dff 67 g_musicarray.push_back(g_songdefault[y]);
horizontalwolf 0:cba7494d5dff 68 }
horizontalwolf 0:cba7494d5dff 69 } else {
horizontalwolf 0:cba7494d5dff 70 int i = 0;
horizontalwolf 0:cba7494d5dff 71 float note=0;
horizontalwolf 0:cba7494d5dff 72 while (fscanf(song, "%f,",&note) != EOF) {
horizontalwolf 0:cba7494d5dff 73 g_musicarray.push_back(note);
horizontalwolf 0:cba7494d5dff 74 i++;
horizontalwolf 0:cba7494d5dff 75 }
horizontalwolf 0:cba7494d5dff 76 fclose(song);
horizontalwolf 0:cba7494d5dff 77 }
horizontalwolf 0:cba7494d5dff 78
horizontalwolf 0:cba7494d5dff 79 }
horizontalwolf 0:cba7494d5dff 80 /**
horizontalwolf 0:cba7494d5dff 81 reads from the sd card and store the high scores in the g_topscores array
horizontalwolf 0:cba7494d5dff 82 if the file does not exist, then write a new blank file
horizontalwolf 0:cba7494d5dff 83 */
horizontalwolf 0:cba7494d5dff 84 void readsd()
horizontalwolf 0:cba7494d5dff 85 {
horizontalwolf 0:cba7494d5dff 86 int value1;
horizontalwolf 0:cba7494d5dff 87 int value2;
horizontalwolf 0:cba7494d5dff 88 int value3;
horizontalwolf 0:cba7494d5dff 89 topscore = fopen("/sd/topscore.txt", "r");
horizontalwolf 0:cba7494d5dff 90 if (topscore==NULL) {
horizontalwolf 0:cba7494d5dff 91 topscore = fopen("/sd/topscore.txt", "r");
horizontalwolf 0:cba7494d5dff 92 if (topscore==NULL) {
horizontalwolf 0:cba7494d5dff 93 writesd();
horizontalwolf 0:cba7494d5dff 94 }
horizontalwolf 0:cba7494d5dff 95 }
horizontalwolf 0:cba7494d5dff 96 if (topscore!=NULL) {
horizontalwolf 0:cba7494d5dff 97 fscanf(topscore, "%d,%d,%d",&value1,&value2,&value3);
horizontalwolf 0:cba7494d5dff 98 g_topscores[0]=value1;
horizontalwolf 0:cba7494d5dff 99 g_topscores[1]=value2;
horizontalwolf 0:cba7494d5dff 100 g_topscores[2]=value3;
horizontalwolf 0:cba7494d5dff 101 fclose(topscore);
horizontalwolf 0:cba7494d5dff 102 }
horizontalwolf 0:cba7494d5dff 103 else{
horizontalwolf 0:cba7494d5dff 104 g_topscores[0]=0;
horizontalwolf 0:cba7494d5dff 105 g_topscores[1]=0;
horizontalwolf 0:cba7494d5dff 106 g_topscores[2]=0;
horizontalwolf 0:cba7494d5dff 107 }
horizontalwolf 0:cba7494d5dff 108
horizontalwolf 0:cba7494d5dff 109 }
horizontalwolf 0:cba7494d5dff 110 #endif