Esempio n. 1
0
static void state_incompatible_warn (void)
{
	static int warned;
	int dowarn = 0;
	int i;

#ifdef BSDSOCKET
	if (currprefs.socket_emu)
		dowarn = 1;
#endif
#ifdef UAESERIAL
	if (currprefs.uaeserial)
		dowarn = 1;
#endif
#ifdef SCSIEMU
	if (currprefs.scsi)
		dowarn = 1;
#endif
#ifdef CATWEASEL
	if (currprefs.catweasel)
		dowarn = 1;
#endif
#ifdef FILESYS
	for(i = 0; i < currprefs.mountitems; i++) {
		struct mountedinfo mi;
		int type = get_filesys_unitconfig (&currprefs, i, &mi);
		if (mi.ismounted && type != FILESYS_VIRTUAL && type != FILESYS_HARDFILE && type != FILESYS_HARDFILE_RDB)
			dowarn = 1;
	}
#endif
	if (!warned && dowarn) {
		warned = 1;
		notify_user (NUMSG_STATEHD);
	}
}
bool EditFilesysVirtual(int unit_no)
{
  struct mountedinfo mi;
  struct uaedev_config_info *uci;
  std::string strdevname, strvolname, strroot;
  char tmp[32];
  
  dialogResult = false;
  dialogFinished = false;

  InitEditFilesysVirtual();

  if(unit_no >= 0)
  {
    uci = &changed_prefs.mountconfig[unit_no];
    get_filesys_unitconfig(&changed_prefs, unit_no, &mi);

    strdevname.assign(uci->devname);
    txtDevice->setText(strdevname);
    strvolname.assign(uci->volname);
    txtVolume->setText(strvolname);
    strroot.assign(uci->rootdir);
    txtPath->setText(strroot);
    chkReadWrite->setSelected(!uci->readonly);
    chkAutoboot->setSelected(uci->bootpri != -128);
    snprintf(tmp, 32, "%d", uci->bootpri >= -127 ? uci->bootpri : -127);
    txtBootPri->setText(tmp);
  }
  else
  {
    CreateDefaultDevicename(tmp);
    txtDevice->setText(tmp);
    txtVolume->setText(tmp);
    strroot.assign(currentDir);
    txtPath->setText(strroot);
    chkReadWrite->setSelected(true);
    txtBootPri->setText("0");
  }

  EditFilesysVirtualLoop();
  ExitEditFilesysVirtual();
  
  if(dialogResult)
  {
    int bp = tweakbootpri(atoi(txtBootPri->getText().c_str()), chkAutoboot->isSelected() ? 1 : 0, 0);
    extractPath((char *) txtPath->getText().c_str(), currentDir);
    
    uci = add_filesys_config(&changed_prefs, unit_no, (char *) txtDevice->getText().c_str(), 
      (char *) txtVolume->getText().c_str(), (char *) txtPath->getText().c_str(), 
      !chkReadWrite->isSelected(), 0, 0, 0, 0, bp, 0, 0, 0);
    if (uci)
    	filesys_media_change (uci->rootdir, 1, uci);
  }

  return dialogResult;
}