chiark / gitweb /
fix autostart failure if in wrong directory
authorBernhard <bkubicek@x201.(none)>
Mon, 26 Dec 2011 08:20:33 +0000 (09:20 +0100)
committerBernhard <bkubicek@x201.(none)>
Mon, 26 Dec 2011 08:20:53 +0000 (09:20 +0100)
Marlin/cardreader.h
Marlin/cardreader.pde
Marlin/ultralcd.pde

index 70f0d2c1d9407c0b8bb5fb1ca97f657198f57032..67fe58a90a69cc17b340d67becda040e61ac51e2 100644 (file)
@@ -31,6 +31,8 @@ public:
   void ls();
   void chdir(const char * relpath);
   void updir();
+  void setroot();
+
 
   FORCE_INLINE bool eof() { return sdpos>=filesize ;};
   FORCE_INLINE int16_t get() {  sdpos = file.curPosition();return (int16_t)file.read();};
index 3d9122497711284fdb249109e4f8ffbc8a91d552..a1f23ce068f23ea986e93b8c375f423dca812dc6 100644 (file)
@@ -164,6 +164,15 @@ void CardReader::initsd()
     SERIAL_ECHOLNPGM("workDir open failed");
   }
 }
+
+void CardReader::setroot()
+{
+ curDir=&root;
+  if(!workDir.openRoot(&volume))
+  {
+    SERIAL_ECHOLNPGM("workDir open failed");
+  } 
+}
 void CardReader::release()
 {
   sdprinting = false;
index ef86d8f32c619c58880c14d4afba17b3016d7712..69be85959a992f41ae1c0ad8ee8a3c59d9162ff1 100644 (file)
@@ -467,7 +467,7 @@ void MainMenu::showPrepare()
       MENUITEM(  lcdprintPGM(" Main \003")  ,  BLOCK;status=Main_Menu;beepshort(); ) ;
       break;
     case ItemP_autostart:
-      MENUITEM(  lcdprintPGM(" Autostart")  ,  BLOCK;card.lastnr=0;card.checkautostart(true);beepshort(); ) ;
+      MENUITEM(  lcdprintPGM(" Autostart")  ,  BLOCK;card.lastnr=0;card.setroot();card.checkautostart(true);beepshort(); ) ;
       break;
     case ItemP_disstep:
       MENUITEM(  lcdprintPGM(" Disable Steppers")  ,  BLOCK;enquecommand("M84");beepshort(); ) ;