示例#1
0
 public Emera3Request(ICancelSync cancel, DriverSetting drvSetting, int timeOutRequestMSec)
 {
     this.WaitAnswerMSec     = drvSetting.WaitTimeout;
     this.nRepeatGlobal      = drvSetting.RepeatCount;
     this.timeOutRequestMSec = timeOutRequestMSec;
     this.cancel             = cancel;
 }
示例#2
0
 public QueryInfo(
     EmeraDriver driver,
     SynchRequestDataDrv requestData,
     SynchParamsDataDrv requestParam,
     EmeraSharedSetting ss,
     EmeraContentSetting cs,
     DriverSetting driverSetting)
 {
     RequestData   = requestData;
     RequestParam  = requestParam;
     this.driver   = driver;
     Request       = new EmeraRequest(driver, driverSetting, driver.ReadTimeOutRequestMSec());
     DriverSetting = driverSetting;
     DataBus       = driver.Channel;
     Ss            = ss;
     Cs            = cs;
     NextPoint     = new AccountNextPoint(
         TimeZoneMap.Local,
         timeOffset: TimeOffset.Level_1,
         useMin3: false,
         useMin30: ss.Enbl30min,
         useDay1: true,
         useMonth1: true,
         useYear1: false,
         archSync: ss.Arch.ToSch());
     ElectroChannel = driver.ElectroChannel.ByBrowseName <ElectroChannel>(ElectroChannels.BN.ElectroChannel);
 }
示例#3
0
        private void GetROMsInfo()
        {
            string ROMsInfo = MameGetString(MAMELuaCommand.GetROMsInfo);

            string[] ROMs        = ROMsInfo.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries);
            string   tempDefault = "";

            DriverSetting setting = new DriverSetting()
            {
                Name     = "BIOS",
                GameName = _gameShortName,
                LuaCode  = LibMAME.BIOS_LUA_CODE,
                Type     = SettingType.BIOS
            };

            foreach (string ROM in ROMs)
            {
                if (ROM != string.Empty)
                {
                    string[] substrings = ROM.Split('~');
                    string   name       = substrings[0];
                    string   hashdata   = substrings[1];
                    long     flags      = long.Parse(substrings[2]);

                    if ((flags & LibMAME.ROMENTRY_TYPEMASK) == LibMAME.ROMENTRYTYPE_SYSTEM_BIOS ||
                        (flags & LibMAME.ROMENTRY_TYPEMASK) == LibMAME.ROMENTRYTYPE_DEFAULT_BIOS)
                    {
                        setting.Options.Add(name, hashdata);

                        // if no bios is explicitly marked as default
                        // mame uses the first one in the list
                        // and its index is reflected in the flags (ROM_BIOSFLAGSMASK)
                        if ((flags >> LibMAME.BIOS_INDEX) == LibMAME.BIOS_FIRST)
                        {
                            tempDefault = name;
                        }

                        if ((flags & LibMAME.ROMENTRY_TYPEMASK) == LibMAME.ROMENTRYTYPE_DEFAULT_BIOS)
                        {
                            setting.DefaultValue = name;
                        }
                    }
                    else
                    {
                        hashdata = hashdata.Replace("R", " CRC:").Replace("S", " SHA:");
                        _romHashes.Add(name, hashdata);
                    }
                }
            }

            if (setting.Options.Count > 0)
            {
                if (setting.DefaultValue == null)
                {
                    setting.DefaultValue = tempDefault;
                }

                CurrentDriverSettings.Add(setting);
            }
        }
示例#4
0
        public void OverrideGameSettings()
        {
            foreach (KeyValuePair <string, string> setting in _syncSettings.DriverSettings)
            {
                DriverSetting s = CurrentDriverSettings.SingleOrDefault(s => s.LookupKey == setting.Key);

                if (s != null && s.Type == SettingType.DIPSWITCH)
                {
                    LibMAME.mame_lua_execute($"{ s.LuaCode }.user_value = { setting.Value }");
                }
            }
        }
示例#5
0
        public void FetchDefaultGameSettings()
        {
            string DIPSwitchTags = MameGetString(MAMELuaCommand.GetDIPSwitchTags);

            string[] tags = DIPSwitchTags.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries);

            foreach (string tag in tags)
            {
                string   DIPSwitchFields = MameGetString(MAMELuaCommand.GetDIPSwitchFields(tag));
                string[] fieldNames      = DIPSwitchFields.Split(new char[] { '^' }, StringSplitOptions.RemoveEmptyEntries);

                foreach (string fieldName in fieldNames)
                {
                    DriverSetting setting = new DriverSetting()
                    {
                        Name         = fieldName,
                        GameName     = _gameShortName,
                        LuaCode      = MAMELuaCommand.InputField(tag, fieldName),
                        Type         = SettingType.DIPSWITCH,
                        DefaultValue = LibMAME.mame_lua_get_int(
                            $"return { MAMELuaCommand.InputField(tag, fieldName) }.defvalue").ToString()
                    };

                    string   DIPSwitchOptions = MameGetString(MAMELuaCommand.GetDIPSwitchOptions(tag, fieldName));
                    string[] options          = DIPSwitchOptions.Split(new char[] { '@' }, StringSplitOptions.RemoveEmptyEntries);

                    foreach (string option in options)
                    {
                        string[] opt = option.Split(new char[] { '~' }, StringSplitOptions.RemoveEmptyEntries);
                        setting.Options.Add(opt[0], opt[1]);
                    }

                    CurrentDriverSettings.Add(setting);
                }
            }
        }
 public MAMEPropertyDescriptor(DriverSetting setting) : base(setting.LookupKey, new Attribute[0])
 {
     Setting = setting;
 }