The final(?) edition of el14jbed's ELEC2645 project
Dependencies: N5110 SDFileSystem mbed
Jacob Markl 200852678
SDcard.h@0:cba7494d5dff, 2016-05-05 (annotated)
- 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?
User | Revision | Line number | New 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,",¬e) != 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 |