public EmuLuaLibrary(IEmulatorServiceProvider serviceProvider) : this() { LuaWait = new AutoResetEvent(false); Docs.Clear(); // Register lua libraries var libs = Assembly .Load("BizHawk.Client.Common") .GetTypes() .Where(t => typeof(LuaLibraryBase).IsAssignableFrom(t)) .Where(t => t.IsSealed) .Where(t => ServiceInjector.IsAvailable(serviceProvider, t)) .ToList(); libs.AddRange( Assembly .GetAssembly(typeof(EmuLuaLibrary)) .GetTypes() .Where(t => typeof(LuaLibraryBase).IsAssignableFrom(t)) .Where(t => t.IsSealed) .Where(t => ServiceInjector.IsAvailable(serviceProvider, t))); foreach (var lib in libs) { bool addLibrary = true; var attributes = lib.GetCustomAttributes(typeof(LuaLibraryAttributes), false); if (attributes.Any()) { addLibrary = VersionInfo.DeveloperBuild || (attributes.First() as LuaLibraryAttributes).Released; } if (addLibrary) { var instance = (LuaLibraryBase)Activator.CreateInstance(lib, _lua); instance.LuaRegister(lib, Docs); instance.LogOutputCallback = ConsoleLuaLibrary.LogOutput; ServiceInjector.UpdateServices(serviceProvider, instance); Libraries.Add(lib, instance); } } _lua.RegisterFunction("print", this, GetType().GetMethod("Print")); EmulatorLuaLibrary.FrameAdvanceCallback = Frameadvance; EmulatorLuaLibrary.YieldCallback = EmuYield; // Add LuaCanvas to Docs Type luaCanvas = typeof(LuaCanvas); var methods = luaCanvas .GetMethods() .Where(m => m.GetCustomAttributes(typeof(LuaMethodAttributes), false).Any()); foreach (var method in methods) { Docs.Add(new LibraryFunction(nameof(LuaCanvas), luaCanvas.Description(), method)); } }
public security_fail() { Docs.Add(() => Index); Docs.Add(() => Identity); Docs.Add(() => Passwords); Handler = () => new SecurityApplicationService(Factory, Identity, Passwords, Index); }
private void MainTabControl_AddTabButtonClick(Microsoft.UI.Xaml.Controls.TabView sender, object args) { // TODO: Create new doc Docs.Add(new Doc() { Name = "Untitled", Uuid = "42c70071-ce5e-4add-aa5c-d093acfb2784" }); }
private async void OpenButton_Click(object sender, RoutedEventArgs e) { var picker = new FileOpenPicker(); picker.SuggestedStartLocation = PickerLocationId.DocumentsLibrary; picker.FileTypeFilter.Add(".xml"); picker.FileTypeFilter.Add(".zip"); Windows.Storage.StorageFile file = await picker.PickSingleFileAsync(); if (file == null) { return; } var mru = Windows.Storage.AccessCache.StorageApplicationPermissions.MostRecentlyUsedList; _ = mru.Add(file, file.Name); var stream = await file.OpenStreamForReadAsync(); switch (Path.GetExtension(file.Name)) { case ".xml": // Read the file var docXml = CopticInterpreter.ReadDocXml(stream); Docs.Add(docXml); MainTabControl.SelectedIndex = Docs.Count - 1; return; case ".zip": // Read the set var set = CopticInterpreter.ReadSet(stream, file.Name, Windows.Storage.ApplicationData.Current.TemporaryFolder.Path); Docs.Clear(); set.IncludedDocs.ForEach(d => Docs.Add(d)); MainTabControl.SelectedIndex = 0; CurrentStanza = (set.IncludedDocs[0].Translations[0].Content[0] as Stanza)?.Text; return; } }
public Win32LuaLibraries( LuaFileList scriptList, LuaFunctionList registeredFuncList, IEmulatorServiceProvider serviceProvider, MainForm mainForm, DisplayManagerBase displayManager, InputManager inputManager, Config config, IEmulator emulator, IGameInfo game) { void EnumerateLuaFunctions(string name, Type type, LuaLibraryBase instance) { if (instance != null) { _lua.NewTable(name); } foreach (var method in type.GetMethods()) { var foundAttrs = method.GetCustomAttributes(typeof(LuaMethodAttribute), false); if (foundAttrs.Length == 0) { continue; } if (instance != null) { _lua.RegisterFunction($"{name}.{((LuaMethodAttribute) foundAttrs[0]).Name}", instance, method); } LibraryFunction libFunc = new( name, type.GetCustomAttributes(typeof(DescriptionAttribute), false).Cast <DescriptionAttribute>() .Select(descAttr => descAttr.Description).FirstOrDefault() ?? string.Empty, method ); Docs.Add(libFunc); #if DEBUG // these don't catch object or LuaTable! if (method.GetParameters().Any(static pi => pi.ParameterType == typeof(string) && !pi.CustomAttributes.Any(static a => typeof(LuaStringParamAttributeBase).IsAssignableFrom(a.AttributeType))))
private Dictionary <string, List <BsonDocument> > SQLiteRead(long timeElapsed) { Dictionary <string, List <BsonDocument> > insertPair = new Dictionary <string, List <BsonDocument> >(); try { string sql = "select * from Data order by Datastream desc"; SQLiteCommand command = new SQLiteCommand(sql, MiddleDB); SQLiteDataReader reader = command.ExecuteReader(); List <BsonDocument> Docs = null; string oldDS = null; string id = null; while (reader.Read()) { id = reader["PLC"].ToString(); byte[] byteArray = Convert.FromBase64String(reader["Value"].ToString()); if (!insertPair.ContainsKey(reader["Datastream"].ToString()) && oldDS != reader["Datastream"].ToString()) { if (Docs != null) { insertPair.Add(oldDS, Docs); } if (timeElapsed > 2000) { Database.DocUpdate("Config", "Connections", JObject.Parse("{Ping: " + (long)(DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)).TotalMilliseconds + "}"), id); } Docs = new List <BsonDocument>(); } int type = (int)reader["DataType"]; int pos = (int)reader["Position"]; long timestamp = Convert.ToInt64(reader["_ts"]); Docs.Add(new BsonDocument { { "Value", DataResolver.ByteArrayConverter(byteArray, type, pos) }, { "_ts", timestamp } }); oldDS = reader["Datastream"].ToString(); } if (Docs != null) { insertPair.Add(oldDS, Docs); } else { } } catch (Exception e) { if (flag) { string sql = "Delete from Data where Id IN (Select Id from Data limit 1);"; SQLiteCommand command = new SQLiteCommand(sql, MiddleDB); command.ExecuteNonQuery(); flag = false; } else { flag = true; } } return(insertPair); }
public Win32LuaLibraries(IEmulatorServiceProvider serviceProvider, MainForm mainForm) : this() { _mainForm = mainForm; LuaWait = new AutoResetEvent(false); Docs.Clear(); // Register lua libraries foreach (var lib in Assembly.Load("BizHawk.Client.Common").GetTypes() .Concat(Assembly.GetAssembly(typeof(Win32LuaLibraries)).GetTypes()) .Where(t => typeof(LuaLibraryBase).IsAssignableFrom(t) && t.IsSealed && ServiceInjector.IsAvailable(serviceProvider, t))) { bool addLibrary = true; var attributes = lib.GetCustomAttributes(typeof(LuaLibraryAttribute), false); if (attributes.Any()) { addLibrary = VersionInfo.DeveloperBuild || ((LuaLibraryAttribute)attributes.First()).Released; } if (addLibrary) { var instance = (LuaLibraryBase)Activator.CreateInstance(lib, _lua); instance.LuaRegister(lib, Docs); instance.LogOutputCallback = ConsoleLuaLibrary.LogOutput; ServiceInjector.UpdateServices(serviceProvider, instance); // TODO: make EmuHawk libraries have a base class with common properties such as this // and inject them here if (instance is ClientLuaLibrary clientLib) { clientLib.MainForm = _mainForm; } ApiContainerInstance = ApiManager.RestartLua(serviceProvider, ConsoleLuaLibrary.LogOutput); if (instance is DelegatingLuaLibraryEmu dlgInstanceEmu) { dlgInstanceEmu.APIs = ApiContainerInstance; // this is necessary as the property has the `new` modifier } else if (instance is DelegatingLuaLibrary dlgInstance) { dlgInstance.APIs = ApiContainerInstance; } Libraries.Add(lib, instance); } } _lua.RegisterFunction("print", this, GetType().GetMethod("Print")); EmulationLuaLibrary.FrameAdvanceCallback = Frameadvance; EmulationLuaLibrary.YieldCallback = EmuYield; // Add LuaCanvas to Docs Type luaCanvas = typeof(LuaCanvas); foreach (var method in luaCanvas.GetMethods()) { if (method.GetCustomAttributes(typeof(LuaMethodAttribute), false).Length != 0) { Docs.Add(new LibraryFunction(nameof(LuaCanvas), luaCanvas.Description(), method)); } } }
public Win32LuaLibraries( LuaFileList scriptList, LuaFunctionList registeredFuncList, IEmulatorServiceProvider serviceProvider, MainForm mainForm, DisplayManagerBase displayManager, InputManager inputManager, Config config, IEmulator emulator, IGameInfo game) { void EnumerateLuaFunctions(string name, Type type, LuaLibraryBase instance) { if (instance != null) { _lua.NewTable(name); } foreach (var method in type.GetMethods()) { var foundAttrs = method.GetCustomAttributes(typeof(LuaMethodAttribute), false); if (foundAttrs.Length == 0) { continue; } if (instance != null) { _lua.RegisterFunction($"{name}.{((LuaMethodAttribute) foundAttrs[0]).Name}", instance, method); } Docs.Add(new LibraryFunction( name, type.GetCustomAttributes(typeof(DescriptionAttribute), false).Cast <DescriptionAttribute>() .Select(descAttr => descAttr.Description).FirstOrDefault() ?? string.Empty, method )); } } if (true /*NLua.Lua.WhichLua == "NLua"*/) { _lua["keepalives"] = _lua.NewTable(); } _th = new NLuaTableHelper(_lua, LogToLuaConsole); _displayManager = displayManager; _inputManager = inputManager; _mainForm = mainForm; LuaWait = new AutoResetEvent(false); PathEntries = config.PathEntries; RegisteredFunctions = registeredFuncList; ScriptList = scriptList; Docs.Clear(); _apiContainer = ApiManager.RestartLua(serviceProvider, LogToLuaConsole, _mainForm, _displayManager, _inputManager, _mainForm.MovieSession, _mainForm.Tools, config, emulator, game); // Register lua libraries foreach (var lib in Client.Common.ReflectionCache.Types.Concat(EmuHawk.ReflectionCache.Types) .Where(t => typeof(LuaLibraryBase).IsAssignableFrom(t) && t.IsSealed && ServiceInjector.IsAvailable(serviceProvider, t))) { bool addLibrary = true; var attributes = lib.GetCustomAttributes(typeof(LuaLibraryAttribute), false); if (attributes.Any()) { addLibrary = VersionInfo.DeveloperBuild || ((LuaLibraryAttribute)attributes.First()).Released; } if (addLibrary) { var instance = (LuaLibraryBase)Activator.CreateInstance(lib, this, _apiContainer, (Action <string>)LogToLuaConsole); ServiceInjector.UpdateServices(serviceProvider, instance); // TODO: make EmuHawk libraries have a base class with common properties such as this // and inject them here if (instance is ClientLuaLibrary clientLib) { clientLib.MainForm = _mainForm; } else if (instance is ConsoleLuaLibrary consoleLib) { consoleLib.Tools = _mainForm.Tools; _logToLuaConsoleCallback = consoleLib.Log; } else if (instance is GuiLuaLibrary guiLib) { // emu lib may be null now, depending on order of ReflectionCache.Types, but definitely won't be null when this is called guiLib.CreateLuaCanvasCallback = (width, height, x, y) => { var canvas = new LuaCanvas(EmulationLuaLibrary, width, height, x, y, _th, LogToLuaConsole); canvas.Show(); return(_th.ObjectToTable(canvas)); }; } else if (instance is TAStudioLuaLibrary tastudioLib) { tastudioLib.Tools = _mainForm.Tools; } EnumerateLuaFunctions(instance.Name, lib, instance); Libraries.Add(lib, instance); } } _lua.RegisterFunction("print", this, typeof(Win32LuaLibraries).GetMethod(nameof(Print))); EmulationLuaLibrary.FrameAdvanceCallback = Frameadvance; EmulationLuaLibrary.YieldCallback = EmuYield; EnumerateLuaFunctions(nameof(LuaCanvas), typeof(LuaCanvas), null); // add LuaCanvas to Lua function reference table }
public void Add_Document(Document doc) { Docs.Add(doc); }
public Win32LuaLibraries(IMainFormForApi mainForm, IEmulatorServiceProvider serviceProvider) : this() { void EnumerateLuaFunctions(string name, Type type, LuaLibraryBase instance) { instance?.Lua?.NewTable(name); foreach (var method in type.GetMethods()) { var foundAttrs = method.GetCustomAttributes(typeof(LuaMethodAttribute), false); if (foundAttrs.Length == 0) { continue; } instance?.Lua?.RegisterFunction($"{name}.{((LuaMethodAttribute) foundAttrs[0]).Name}", instance, method); Docs.Add(new LibraryFunction( name, type.GetCustomAttributes(typeof(DescriptionAttribute), false).Cast <DescriptionAttribute>() .Select(descAttr => descAttr.Description).FirstOrDefault() ?? string.Empty, method )); } } LuaWait = new AutoResetEvent(false); Docs.Clear(); // Register lua libraries foreach (var lib in Assembly.Load("BizHawk.Client.Common").GetTypes() .Concat(Assembly.GetAssembly(typeof(Win32LuaLibraries)).GetTypes()) .Where(t => typeof(LuaLibraryBase).IsAssignableFrom(t) && t.IsSealed && ServiceInjector.IsAvailable(serviceProvider, t))) { bool addLibrary = true; var attributes = lib.GetCustomAttributes(typeof(LuaLibraryAttribute), false); if (attributes.Any()) { addLibrary = VersionInfo.DeveloperBuild || ((LuaLibraryAttribute)attributes.First()).Released; } if (addLibrary) { var instance = (LuaLibraryBase)Activator.CreateInstance(lib, _lua); instance.LogOutputCallback = ConsoleLuaLibrary.LogOutput; ServiceInjector.UpdateServices(serviceProvider, instance); // TODO: make EmuHawk libraries have a base class with common properties such as this // and inject them here if (instance is ClientLuaLibrary clientLib) { clientLib.MainForm = mainForm; } ApiContainerInstance = ApiManager.RestartLua(mainForm, serviceProvider, ConsoleLuaLibrary.LogOutput); if (instance is DelegatingLuaLibrary dlgInstance) { dlgInstance.APIs = ApiContainerInstance; } EnumerateLuaFunctions(instance.Name, lib, instance); Libraries.Add(lib, instance); } } _lua.RegisterFunction("print", this, GetType().GetMethod("Print")); EmulationLuaLibrary.FrameAdvanceCallback = Frameadvance; EmulationLuaLibrary.YieldCallback = EmuYield; EnumerateLuaFunctions(nameof(LuaCanvas), typeof(LuaCanvas), null); // add LuaCanvas to Lua function reference table }