const char* Menu::GetOption(u32 Option)
{
	switch(Option)
	{
		case 0x4C414E47: //LANG
			return GetOptionFromString(GC_Language_strings, &GC_Language_string, &GC_Language).c_str();
		case 0x56494445: //VIDE
			return GetOptionFromString(GC_Video_strings, &GC_Video_string, &GC_Video_Mode).c_str();
		case 0x424F4F54: //BOOT
			return GetOptionFromString(DM_Mode_strings, &DM_Mode_string, &DM_Mode).c_str();
		case 0x464F5243: //FORC
			return GetOptionFromString(DM_Patch_strings, &DM_Patch_string, &DM_Patch).c_str();
		case 0x52455345: //RESE
			return (DriveReset == true) ? "On" : "Off";
		case 0x4A415041: //JAPA
			return (NTSCJ_Patch == true) ? "Yes" : "No";
		case 0x44495343: //DISC
			return (DM_NoDisc == true) ? "On" : "Off";
		case 0x57494445: //WIDE
			return (DM_ForceWide == true) ? "On" : "Off";
		default:
			if(BooterCFG->Config & Option)
				return "On";
			else
				return "Off";
	}
}
void Menu::WriteConfig(const char *Domain)
{
	GetOptionFromString(GC_Language_strings, &GC_Language_string, &GC_Language);
	BooterINI.setString(Domain, "Language", GC_Language_string);

	GetOptionFromString(GC_Video_strings, &GC_Video_string, &GC_Video_Mode);
	BooterINI.setString(Domain, "VideoMode", GC_Video_string);

	GetOptionFromString(DM_Mode_strings, &DM_Mode_string, &DM_Mode);
	BooterINI.setString(Domain, "DM_Mode", DM_Mode_string);

	GetOptionFromString(DM_Patch_strings, &DM_Patch_string, &DM_Patch);
	BooterINI.setString(Domain, "DM_Patch", DM_Patch_string);

	BooterINI.setBool(Domain, "No_Disc_Patch", DM_NoDisc);
	BooterINI.setBool(Domain, "Widescreen", DM_ForceWide);
	BooterINI.setBool(Domain, "Drive_Reset", DriveReset);
	BooterINI.setBool(Domain, "NTSCJ_Patch", NTSCJ_Patch);

	BooterINI.setBool(Domain, "ActivityLED", (BooterCFG->Config & DML_CFG_ACTIVITY_LED));
	BooterINI.setBool(Domain, "PadReset", (BooterCFG->Config & DML_CFG_PADHOOK));
	BooterINI.setBool(Domain, "Cheats", (BooterCFG->Config & DML_CFG_CHEATS));
	BooterINI.setBool(Domain, "NMM", (BooterCFG->Config & DML_CFG_NMM));
	BooterINI.setBool(Domain, "NMM_Debug", (BooterCFG->Config & DML_CFG_NMM_DEBUG));
	BooterINI.setBool(Domain, "Debugger", (BooterCFG->Config & DML_CFG_DEBUGGER));
	BooterINI.setBool(Domain, "Wait_for_Debugger", (BooterCFG->Config & DML_CFG_DEBUGWAIT));

	BooterINI.setBool("GENERAL", "usb", currentDev);
	if(DevHandler->SD_Mounted() || DevHandler->USB_Mounted())
		BooterINI.save(false);
}
void Menu::PrevOptionFromString(vector<string> List, string *Option, u8 *Option_num)
{
	string current_OptionFromString = GetOptionFromString(List, Option, Option_num);
	for(u8 i = 0; i < List.size(); i++)
	{
		if(strcasecmp(current_OptionFromString.c_str(), List.at(i).c_str()) == 0)
		{
			if(i == 0)
				(*Option) = List.back();
			else
				(*Option) = List.at(i-1).c_str();
		}
	}
}
void Menu::NextOptionFromString(vector<string> List, string *Option, u8 *Option_num)
{
	string current_OptionFromString = GetOptionFromString(List, Option, Option_num);
	for(u8 i = 0; i < List.size(); i++)
	{
		if(strcasecmp(current_OptionFromString.c_str(), List.at(i).c_str()) == 0)
		{
			if(i+1 == (u8)List.size())
				(*Option) = List.front();
			else
				(*Option) = List.at(i+1).c_str();
		}
	}
}
void Menu::ReadConfig(const char *Domain)
{
	if(BooterINI.loaded())
	{
		//0x4C414E47 LANG
		GC_Language_string = BooterINI.getString(Domain, "Language", GC_Language_strings.at(0));
		GetOptionFromString(GC_Language_strings, &GC_Language_string, &GC_Language);
		//0x56494445 VIDE
		GC_Video_string = BooterINI.getString(Domain, "VideoMode", GC_Video_strings.at(0));
		GetOptionFromString(GC_Video_strings, &GC_Video_string, &GC_Video_Mode);
		//0x424F4F54 BOOT
		DM_Mode_string = BooterINI.getString(Domain, "DM_Mode", DM_Mode_strings.at(2));
		GetOptionFromString(DM_Mode_strings, &DM_Mode_string, &DM_Mode);
		//0x464F5243 FORC
		DM_Patch_string = BooterINI.getString(Domain, "DM_Patch", DM_Patch_strings.at(1));
		GetOptionFromString(DM_Patch_strings, &DM_Patch_string, &DM_Patch);
		//0x44495343 DISC
		DM_NoDisc = BooterINI.getBool(Domain, "No_Disc_Patch", true);
		//0x57494445 WIDE
		DM_ForceWide = BooterINI.getBool(Domain, "Widescreen", false);
		//0x52455345 RESE
		DriveReset = BooterINI.getBool(Domain, "Drive_Reset", false);
		//0x4A415041 JAPA
		NTSCJ_Patch = BooterINI.getBool(Domain, "NTSCJ_Patch", false);

		if(BooterINI.getBool(Domain, "ActivityLED"))
			BooterCFG->Config |= DML_CFG_ACTIVITY_LED;
		else
			BooterCFG->Config &= ~DML_CFG_ACTIVITY_LED;

		if(BooterINI.getBool(Domain, "PadReset"))
			BooterCFG->Config |= DML_CFG_PADHOOK;
		else
			BooterCFG->Config &= ~DML_CFG_PADHOOK;

		if(BooterINI.getBool(Domain, "Cheats"))
			BooterCFG->Config |= DML_CFG_CHEATS;
		else
			BooterCFG->Config &= ~DML_CFG_CHEATS;

		if(BooterINI.getBool(Domain, "NMM"))
			BooterCFG->Config |= DML_CFG_NMM;
		else
			BooterCFG->Config &= ~DML_CFG_NMM;

		if(BooterINI.getBool(Domain, "NMM_Debug"))
			BooterCFG->Config |= DML_CFG_NMM_DEBUG;
		else
			BooterCFG->Config &= ~DML_CFG_NMM_DEBUG;

		if(BooterINI.getBool(Domain, "Debugger"))
			BooterCFG->Config |= DML_CFG_DEBUGGER;
		else
			BooterCFG->Config &= ~DML_CFG_DEBUGGER;

		if(BooterINI.getBool(Domain, "Wait_for_Debugger"))
			BooterCFG->Config |= DML_CFG_DEBUGWAIT;
		else
			BooterCFG->Config &= ~DML_CFG_DEBUGWAIT;
		currentDev = BooterINI.getBool("GENERAL", "usb", false);
	}
	else //Write Default Config
	{
		//0x4C414E47 LANG
		GC_Language_string = GC_Language_strings.at(0);
		//0x56494445 VIDE
		GC_Video_string = GC_Video_strings.at(0);
		//0x424F4F54 BOOT
		DM_Mode_string = DM_Mode_strings.at(2);
		//0x464F5243 FORC
		DM_Patch_string = DM_Patch_strings.at(1);
		//0x44495343 DISC
		DM_NoDisc = true;
		//0x57494445 WIDE
		DM_ForceWide = false;
		//0x52455345 RESE
		DriveReset = false;
		//0x4A415041 JAPA
		NTSCJ_Patch = false;
		//Everything set, lets write it
		WriteConfig(Domain);
	}
}
Example #6
0
Bool_t RsnConfig(AliAnalysisTaskSE *task,Bool_t isMC,Bool_t isMixing,AliRsnInputHandler *rsnIH=0,TList *listRsn=0) {

   if (!task) return kFALSE;

   if (!listRsn) {
      return kFALSE;
   }
   Bool_t valid;
   Int_t isRsnMini = AliAnalysisManager::GetGlobalInt("rsnUseMiniPackage",valid);
   TString rsnCutOptCommon = AliAnalysisManager::GetGlobalStr("rsnLegoTrainCommonCutOption",valid);
   Int_t cutIndex = 0;
   Int_t numOfCuts = 0;

   // set commol eventCuts

   if (!RsnLoadMacroFromConfig("AddRsnCommonEventCuts.C")) return kFALSE;
   AliRsnCutSet *commonEventCuts = AddRsnCommonEventCuts(task);

   if (!RsnLoadMacroFromConfig("AddRsnCommonPairCuts.C")) return kFALSE;
   AliRsnCutSet *commonPairCuts = AddRsnCommonPairCuts();
   
   TIter next(listRsn);
   TNamed *rsnObj=0;
   TString rsnName,rsnNameOpt,rsnNameOptFull,rsnCutName,rsnCutOpt,rsnCutNameOptFull;
   while ((rsnObj = (TNamed *)next())) {
      GetOptionFromString(rsnObj->GetName(),rsnName,rsnNameOpt);
      rsnNameOptFull=rsnName;
      if (!rsnNameOpt.IsNull()) rsnNameOptFull += Form("_%s",rsnNameOpt.Data());

      GetOptionFromString(rsnObj->GetTitle(),rsnCutName,rsnCutOpt);
      rsnCutNameOptFull=rsnCutName;
      if (!rsnCutOpt.IsNull())rsnCutNameOptFull += Form("_%s",rsnCutOpt.Data());

      if (!rsnCutOptCommon.IsNull()) {
         if (!rsnCutOpt.IsNull()) rsnCutOpt += "_";
         rsnCutOpt += rsnCutOptCommon.Data();
      }

      if (!RsnLoadMacroFromConfig(Form("AddRsnDaughterCuts%s.C",rsnCutName.Data()))) return kFALSE;
      if (!RsnLoadMacroFromConfig(Form("AddRsnPairs%s.C",rsnName.Data()))) return kFALSE;

      rsnNameOptFull.ToLower();
      rsnName.ToLower();
      // add cuts
      if (!rsnName.CompareTo("phi")) {
         numOfCuts = gROOT->ProcessLine(Form("AddRsnDaughterCuts%s(AliPID::kKaon,AliPID::kKaon,\"%s\",%d,(AliRsnInputHandler*)%p,(AliAnalysisTaskSE*)%p)",rsnCutName.Data(), rsnCutOpt.Data(),isRsnMini,rsnIH, task));
         if (numOfCuts) {
            if (rsnNameOpt.Contains("mon")) AddParticleMonitor(task,isMC,cutIndex,commonEventCuts,commonPairCuts,Form("%s_%s_K",rsnNameOptFull.Data(),rsnCutNameOptFull.Data()));
            AddRsnPairsPhi(task,isMC,isMixing,AliPID::kKaon,cutIndex,AliPID::kKaon,cutIndex,commonEventCuts,commonPairCuts,Form("%s.%s",rsnNameOptFull.Data(),rsnCutNameOptFull.Data()));
            cutIndex+=numOfCuts;
         }
      } else if (!rsnName.CompareTo("kstar")) {
         numOfCuts = gROOT->ProcessLine(Form("AddRsnDaughterCuts%s(AliPID::kKaon,AliPID::kPion,\"%s\",%d,(AliRsnInputHandler*)%p,(AliAnalysisTaskSE*)%p)",rsnCutName.Data(), rsnCutOpt.Data(),isRsnMini,rsnIH,task));
         if (numOfCuts) {
            if (rsnNameOpt.Contains("mon")) AddParticleMonitor(task,isMC,cutIndex,commonEventCuts,commonPairCuts,Form("%s_%s_K",rsnNameOptFull.Data(),rsnCutNameOptFull.Data()));
            if (rsnNameOpt.Contains("mon")) AddParticleMonitor(task,isMC,cutIndex+1,commonEventCuts,commonPairCuts,Form("%s_%s_pi",rsnNameOptFull.Data(),rsnCutNameOptFull.Data()));
            AddRsnPairsKStar(task,isMC,isMixing,AliPID::kKaon,cutIndex,AliPID::kPion,cutIndex+1,commonEventCuts,commonPairCuts,Form("%s.%s",rsnNameOptFull.Data(),rsnCutNameOptFull.Data()));
            cutIndex+=numOfCuts;
         }
      } else if (!rsnName.CompareTo("rho")) {
         numOfCuts = gROOT->ProcessLine(Form("AddRsnDaughterCuts%s(AliPID::kPion,AliPID::kPion,\"%s\",%d,(AliRsnInputHandler*)%p,(AliAnalysisTaskSE*)%p)",rsnCutName.Data(), rsnCutOpt.Data(),isRsnMini,rsnIH,task));
         if (numOfCuts) {
            if (rsnNameOpt.Contains("mon")) AddParticleMonitor(task,isMC,cutIndex,commonEventCuts,commonPairCuts,Form("%s_%s_pi",rsnNameOptFull.Data(),rsnCutNameOptFull.Data()));
            AddRsnPairsRho(task,isMC,isMixing,AliPID::kPion,cutIndex,AliPID::kPion,cutIndex,commonEventCuts,commonPairCuts,Form("%s.%s",rsnNameOptFull.Data(),rsnCutNameOptFull.Data()));
            cutIndex+=numOfCuts;
         }
      } else if (!rsnName.CompareTo("lambda")) {
         numOfCuts = gROOT->ProcessLine(Form("AddRsnDaughterCuts%s(AliPID::kProton,AliPID::kKaon,\"%s\",%d,(AliRsnInputHandler*)%p,(AliAnalysisTaskSE*)%p)",rsnCutName.Data(), rsnCutOpt.Data(),isRsnMini,rsnIH,task));
         if (numOfCuts) {
            if (rsnNameOpt.Contains("mon")) AddParticleMonitor(task,isMC,cutIndex,commonEventCuts,commonPairCuts,Form("%s_%s_p",rsnNameOptFull.Data(),rsnCutNameOptFull.Data()));
            if (rsnNameOpt.Contains("mon")) AddParticleMonitor(task,isMC,cutIndex+1,commonEventCuts,commonPairCuts,Form("%s_%s_K",rsnNameOptFull.Data(),rsnCutNameOptFull.Data()));
            AddRsnPairsLambda(task,isMC,isMixing,AliPID::kProton,cutIndex,AliPID::kKaon,cutIndex+1,commonEventCuts,commonPairCuts,Form("%s.%s",rsnNameOptFull.Data(),rsnCutNameOptFull.Data()));
            cutIndex+=numOfCuts;
         }
      } else {
         Printf("Error : Particle %s is not supported !!!!",rsnName.Data());
         return kFALSE;
      }

   }

   return kTRUE;
}