MDX-20用の改造

Dependencies:   FatFileSystemCpp

Revision:
6:d407fe3e0c97
Parent:
5:0ee37dbafd9a
Child:
7:a6b950d25e29
--- a/usbMemory.cpp	Sat Dec 03 10:54:57 2016 +0000
+++ b/usbMemory.cpp	Sat Dec 03 13:21:35 2016 +0000
@@ -30,9 +30,44 @@
 void usbMemoryInitialize(void)
 {
     msc.disk_initialize();
-    }
+}
+
+/** File check
+ * @para fileNumber : This number get filename 0,1:first 2: second ...
+ * @para *fileName  : get filename
+ * @para *fileNumberMax : .prn file number
+ * @return
+ *  false: non file true: file exists
+ */
+int32_t fileDetect(int32_t fileNumber, char *fileName, int32_t *fileNumberMax)
+{
+    uint32_t numMax = 0;
+    int32_t ans = false;
+
+    DIR *d;
+    struct dirent *p;
+
+    d = opendir("/" FSNAME);
 
-int32_t fileDetect(char *fileName, uint32_t *numberLine)
+    // directory check
+    if ( d != NULL ) {
+        while ( (p = readdir(d)) != NULL ) {
+            if(NULL != strstr(p->d_name, ".prn")) {
+                numMax++;
+                if(numMax == fileNumber) {
+                    strcpy(fileName, p->d_name);
+                }
+                DEBUG_PRINT("detect = %s\n",fileName);
+                ans = true;
+            }
+        }
+        *fileNumberMax = numMax;
+    }
+    return ans;
+}
+
+
+int32_t fileSelect( char *fileName, uint32_t *numberLine)
 {
     uint32_t numMax = 0;
     int32_t ans = false;
@@ -66,14 +101,14 @@
                 fclose(fp);
 
             } else {
-                // Don't file open 
+                // Don't file open
                 // nothing
             }
         } else {
             // nothing Directory
         }
     }
-        return ans;
+    return ans;
 
 }
 
@@ -81,29 +116,28 @@
 {
 //    static FILE *fp;
     int32_t ans = false;
-    #define bufferNumber 100
+#define bufferNumber 100
     char buffer[bufferNumber];
-    
-                sprintf(buffer,"/msc/%s",fileName);
+
+    sprintf(buffer,"/msc/%s",fileName);
+
+    fp = fopen( buffer, "r");
+    if ( fp != NULL ) {
+        for(uint32_t i = 0; i < numberLine; i++) {
+            fgets(buffer, sizeof(buffer), fp);
+        }
 
-            fp = fopen( buffer, "r");
-            if ( fp != NULL ) {
-                for(uint32_t i = 0; i < numberLine; i++){
-                fgets(buffer, sizeof(buffer), fp);
-                }
-                                    
-                if(NULL != fgets(data, dataNumber, fp)){
-                    DEBUG_PRINT("line = %s\r\n", data);
-                fclose(fp);
-                ans = true;
-                }
-                else{
-                    // nothing
-                    }
-            } else {
-                // Don't file open 
-                // nothing
-            }
+        if(NULL != fgets(data, dataNumber, fp)) {
+            DEBUG_PRINT("line = %s\r\n", data);
+            fclose(fp);
+            ans = true;
+        } else {
+            // nothing
+        }
+    } else {
+        // Don't file open
+        // nothing
+    }
 
     return ans;
 }