1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
|
void eCbpMain::loadEmuList()
{
char emuactive[100];
emuactive[0]=0;
emulistbox->beginAtomic();
emulistbox->clearList();
FILE *fp = fopen("/var/bin/emuactive","r");
if (fp) {
memset(emuactive, 0, sizeof(emuactive));
fgets(emuactive, 200, fp);
fclose(fp);
int a=0;
for (a=0; a<strlen(emuactive); a++) if (emuactive[a]==(char)0x0a) emuactive[a]=0;
}
if(eSystemInfo::getInstance()->getHwType() == eSystemInfo::DM500)
{ new eListBoxEntryText(emulistbox, "None", (void*)0, 2);
} else
new eListBoxEntryText(emulistbox, "Common Interface", (void*)0, 2);
emulist[0]="None";
eListBoxEntryText *lblast, *lbselected=0;
DIR *d = opendir("/var/script");
while (struct dirent *e=readdir(d))
{
if ( strstr(e->d_name,"_em.sh"))
{
memset(emuname, 0, sizeof(emuname));
strncpy(emuname, e->d_name, strlen(e->d_name)-6);
lblast = new eListBoxEntryText(emulistbox, readEmuName(emuname), (void*)emulistbox->getCount(), 2);
emulist[(int)emulistbox->getCount() - 1]=emuname;
if ( strcmp(emuactive, emuname)==0 ) lbselected=lblast;
}
}
closedir(d);
if (emulistbox->getCount())
emulistbox->sort();
if (lbselected) emulistbox->setCurrent( lbselected, false );
emulistbox->endAtomic();
}
|