Skip to content

Commit 9891fed

Browse files
committed
Add SmallFS listing
1 parent 88180c5 commit 9891fed

File tree

1 file changed

+43
-0
lines changed

1 file changed

+43
-0
lines changed

Video_Audio_Player/Video_Audio_Player.ino

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,42 @@ static void ymStart(void*)
9696
ymplayer.play(true);
9797
}
9898

99+
#define MAXFILES 32
100+
101+
char fileNames[MAXFILES][32];
102+
103+
static void onOpenFile(void *data)
104+
{
105+
char *name = (char*)data;
106+
// Process file here.
107+
}
108+
109+
static void createFileSelectionMenu(subMenu *menu, const char *filter_ext = NULL)
110+
{
111+
int i = 0;
112+
SmallFSEntry entry = SmallFS.getFirstEntry();
113+
menu->deleteChilds();
114+
if (entry.valid()) {
115+
do {
116+
bool skip=false;
117+
if (filter_ext) {
118+
if (!entry.endsWith(filter_ext))
119+
skip=true;
120+
}
121+
if (!skip) {
122+
entry.getName(fileNames[i]);
123+
menu->appendChild(new menuItem( fileNames[i], &onOpenFile, fileNames[i]) );
124+
}
125+
if (entry.hasNext())
126+
entry++;
127+
else
128+
break;
129+
i++;
130+
} while (true);
131+
}
132+
}
133+
134+
99135
static void createMenus()
100136
{
101137
subMenu *config = new subMenu("Options");
@@ -121,6 +157,13 @@ static void createMenus()
121157

122158
config->appendChild( new menuItem("Exit",(void(*)(void*))&exitMenus) ) ;
123159

160+
161+
subMenu *play = new subMenu("Play");
162+
config->appendChild(play);
163+
play->setParent(config);
164+
createFileSelectionMenu(play);
165+
play->appendChild( new menuItem("< Back",(void(*)(void*))&menuSwitchTo, config) ) ;
166+
124167
menuSetTop(config);
125168
}
126169

0 commit comments

Comments
 (0)