| 
						
						
							
								
							
						
						
					 | 
					 | 
					@ -49,7 +49,7 @@ char *createFilename(char *buffer, const dir_t &p) //buffer>12characters
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					}
 | 
					 | 
					 | 
					 | 
					}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					void  CardReader::lsDive(const char *prepend,SdFile parent)
 | 
					 | 
					 | 
					 | 
					void CardReader::lsDive(const char *prepend, SdFile parent, const char * const match/*=NULL*/)
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					{
 | 
					 | 
					 | 
					 | 
					{
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  dir_t p;
 | 
					 | 
					 | 
					 | 
					  dir_t p;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  uint8_t cnt=0;
 | 
					 | 
					 | 
					 | 
					  uint8_t cnt=0;
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -89,16 +89,12 @@ void  CardReader::lsDive(const char *prepend,SdFile parent)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    }
 | 
					 | 
					 | 
					 | 
					    }
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    else
 | 
					 | 
					 | 
					 | 
					    else
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    {
 | 
					 | 
					 | 
					 | 
					    {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      if (p.name[0] == DIR_NAME_FREE) break;
 | 
					 | 
					 | 
					 | 
					      char pn0 = p.name[0];
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      if (p.name[0] == DIR_NAME_DELETED || p.name[0] == '.'|| p.name[0] == '_') continue;
 | 
					 | 
					 | 
					 | 
					      if (pn0 == DIR_NAME_FREE) break;
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					      if (pn0 == DIR_NAME_DELETED || pn0 == '.'|| pn0 == '_') continue;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      if (longFilename[0] != '\0' &&
 | 
					 | 
					 | 
					 | 
					      if (longFilename[0] != '\0' &&
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					          (longFilename[0] == '.' || longFilename[0] == '_')) continue;
 | 
					 | 
					 | 
					 | 
					          (longFilename[0] == '.' || longFilename[0] == '_')) continue;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      if ( p.name[0] == '.')
 | 
					 | 
					 | 
					 | 
					      
 | 
				
			
			
				
				
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      {
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        if ( p.name[1] != '.')
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        continue;
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      }
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					 | 
				
			
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      if (!DIR_IS_FILE_OR_SUBDIR(&p)) continue;
 | 
					 | 
					 | 
					 | 
					      if (!DIR_IS_FILE_OR_SUBDIR(&p)) continue;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      filenameIsDir=DIR_IS_SUBDIR(&p);
 | 
					 | 
					 | 
					 | 
					      filenameIsDir=DIR_IS_SUBDIR(&p);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -120,7 +116,10 @@ void  CardReader::lsDive(const char *prepend,SdFile parent)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      } 
 | 
					 | 
					 | 
					 | 
					      } 
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      else if(lsAction==LS_GetFilename)
 | 
					 | 
					 | 
					 | 
					      else if(lsAction==LS_GetFilename)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      {
 | 
					 | 
					 | 
					 | 
					      {
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        if (cnt == nrFiles) return;
 | 
					 | 
					 | 
					 | 
					        if (match != NULL) {
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					          if (strcasecmp(match, filename) == 0) return;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        }
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					        else if (cnt == nrFiles) return;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					        cnt++;
 | 
					 | 
					 | 
					 | 
					        cnt++;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      }
 | 
					 | 
					 | 
					 | 
					      }
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    }
 | 
					 | 
					 | 
					 | 
					    }
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -355,7 +354,8 @@ void CardReader::openFile(char* name,bool read, bool replace_current/*=true*/)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      sdpos = 0;
 | 
					 | 
					 | 
					 | 
					      sdpos = 0;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      
 | 
					 | 
					 | 
					 | 
					      
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      SERIAL_PROTOCOLLNPGM(MSG_SD_FILE_SELECTED);
 | 
					 | 
					 | 
					 | 
					      SERIAL_PROTOCOLLNPGM(MSG_SD_FILE_SELECTED);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					      lcd_setstatus(fname);
 | 
					 | 
					 | 
					 | 
					      getfilename(0, fname);
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					      lcd_setstatus(longFilename[0] ? longFilename : fname);
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    }
 | 
					 | 
					 | 
					 | 
					    }
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    else
 | 
					 | 
					 | 
					 | 
					    else
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    {
 | 
					 | 
					 | 
					 | 
					    {
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
							
								
							
						
						
					 | 
					 | 
					@ -560,7 +560,7 @@ void CardReader::closefile(bool store_location)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  
 | 
					 | 
					 | 
					 | 
					  
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					}
 | 
					 | 
					 | 
					 | 
					}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					void CardReader::getfilename(const uint16_t nr)
 | 
					 | 
					 | 
					 | 
					void CardReader::getfilename(uint16_t nr, const char * const match/*=NULL*/)
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					{
 | 
					 | 
					 | 
					 | 
					{
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  #if defined(SDCARD_SORT_ALPHA) && SORT_USES_RAM && SORT_USES_MORE_RAM
 | 
					 | 
					 | 
					 | 
					  #if defined(SDCARD_SORT_ALPHA) && SORT_USES_RAM && SORT_USES_MORE_RAM
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					    if (nr < sort_count) {
 | 
					 | 
					 | 
					 | 
					    if (nr < sort_count) {
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
						
						
							
								
							
						
					 | 
					 | 
					@ -574,7 +574,8 @@ void CardReader::getfilename(const uint16_t nr)
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  lsAction=LS_GetFilename;
 | 
					 | 
					 | 
					 | 
					  lsAction=LS_GetFilename;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  nrFiles=nr;
 | 
					 | 
					 | 
					 | 
					  nrFiles=nr;
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  curDir->rewind();
 | 
					 | 
					 | 
					 | 
					  curDir->rewind();
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					  lsDive("",*curDir);
 | 
					 | 
					 | 
					 | 
					  lsDive("",*curDir,match);
 | 
				
			
			
				
				
			
		
	
		
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					 | 
					  
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					}
 | 
					 | 
					 | 
					 | 
					}
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					
 | 
					 | 
					 | 
					 | 
					
 | 
				
			
			
		
	
		
		
			
				
					
					 | 
					 | 
					 | 
					uint16_t CardReader::getnrfilenames()
 | 
					 | 
					 | 
					 | 
					uint16_t CardReader::getnrfilenames()
 | 
				
			
			
		
	
	
		
		
			
				
					| 
						
							
								
							
						
						
						
					 | 
					 | 
					
 
 |