Commit Graph

140 Commits

Author SHA1 Message Date
adelikat 546ccda918 Lua - fix client.getavailabletools() 2020-05-16 15:31:01 -05:00
adelikat 3f1ef8dd4d add a IMovieSession property to ToolFormBase and use it 2020-04-16 12:25:42 -05:00
YoshiRulz 1ee131ed78
Merge ApiHawk project into Client.Common and EmuHawk 2020-04-12 17:40:42 +10:00
adelikat df538c2833 ToolManager - lock down UpdateBefore/After, calling code should always only use UpdateToolsBefore/After since it properly deals with lua. This fixes inconsistent behavior in MovieZone and tastudio branch loading 2020-04-06 17:46:59 -05:00
YoshiRulz e1951b9fc5
Cleanup PathExtensions
Fixes f02295455/c731e1168/5c7135d67
2020-03-21 13:45:58 +10:00
adelikat f655a4587e simplify ToolManager.GenerateDefaultCheatFilename 2020-03-15 18:07:57 -05:00
adelikat 33a14327b7 move most logic from PathManager to extension methods in BizHawk.Common 2020-03-15 15:45:11 -05:00
adelikat 348cbd18df
Remove PathManager code that had dependencies on Globals (#1881)
* move one usage of Firwmare method into Firmware config where it is better suited

* PathManager - remove unused code

* move some PathEntry specific logic out of PathManger and into PathEntryCollection extension methods

* PathManager - detangle some exe pathing logic from Global.Config usage, clarify what a completely broken method should actuall do

* move more logic from PathManager to PathEntryCollection extension method

* move absolute path creation to PathEntryCollection, lots of refactoring and simplifying of PathEntries usage

* simplify PathEntryColleciton usage more

* simplify PathEntryCollection more

* break PathEntry classes into separate files, a bit of cleanup

* move Rom path logic out of PathManager into PathEntryCollectionExtensions

* move config UseRecentForRoms and LastRomPath into PathEntries, note that this is a breaking change for previous configs, those values will revert back to default values

* move SaveRamPath logic from PathManager to PathEntryCollections

* move cheats path logic from PathManager to PathEntryCollection

* move another method out of PathManager

* move some Retro hacks to PathEntryCollections, exposes more implicit dependencies

* move savestate logic out of PathManager to PathEntryCollection

* move more logic out of PathManager

* move some savestate logic out of PathManager, move most to MainForm where it is used, detangle some implicit dependencies from SaveSlotManager

* rename method

* move more logic from PathManager to PathCollectionEntry

* movie final Global.Config.PathEntries logic out of PathManager and into PathEnties
2020-03-15 15:12:36 -05:00
adelikat 656f2b814e Move IEmulator extensions to the Emulation.Common namespace, the intent is that these are used and serve as built in functionality, so it's overly tedious to when most situations require both Common and an additional extensions namespace 2020-02-15 12:33:15 -06:00
YoshiRulz 1fdb7a6fe2
Allow external tools to have any namespace / class name if annotated
This change is more convenient at the cost of a little duplicate code in
ToolManager. The annotation is [ExternalToolEntryPointForm], and having no more
than one such class per assembly is enforced.
2020-01-30 23:41:52 +10:00
YoshiRulz 7062ba5b6a
Clarify "Autoload" text (from #971) 2020-01-13 01:54:15 +10:00
adelikat 1c57622032 refactor UpdateCheatRelatedTools to be a ToolManager method 2019-12-22 13:32:18 -06:00
adelikat 77c04412d2 ToolManager - inject common things like config, mainform, and the tool manager itself to tools that inherit ToolFormBase 2019-12-22 10:57:06 -06:00
adelikat c6b6e7b6cb pass Config into ToolManager 2019-12-22 10:57:05 -06:00
adelikat e0cd66613f remove ApiProvider from GlobalWin, and have ToolManager own it instead, keep a copy of IEmulator in ToolManager and reference that instead of Global.Emulator 2019-12-21 18:03:13 -06:00
adelikat 84a9dec7a8 ToolManager - some cleanups 2019-12-21 17:45:11 -06:00
adelikat 4461818d26 ToolManager - cleanups, and don't use GlobalWin.Tools 2019-12-17 13:45:55 -06:00
adelikat 2c66e3043c a bit more cleanup 2019-12-13 15:44:50 -06:00
adelikat fff85d917a Fix typo 2019-12-08 13:41:52 -06:00
adelikat 79d06bcb4a Fix LoadRamWatch logic, was always attempting to load it even when it was already loaded. Worse was that it was autoloading watch files anytime something interacted with it like the "add to ram watch" feature in ram search 2019-12-02 17:19:58 -06:00
adelikat 52db5ac848 cleanups 2019-12-01 18:05:20 -06:00
YoshiRulz 8c059aa43c
Replace helper methods with readonly bool IsUnixHost and cleanup 2019-11-04 14:30:05 +10:00
adelikat 942d9fc75e Simplify OS checks with some helpful methods 2019-11-03 16:04:42 -06:00
adelikat 9141b0ed19 tool manager - don't go looking for tools outside of the EmuHawk assembly, I suspect this will actually fix the appveyor build issue, indirectly. 2019-10-31 21:03:19 -05:00
adelikat 5f1c76b285 Revert "ReflectionTypeLoadException troubleshooting."
This reverts commit e15e32eb78.
2019-10-31 20:52:50 -05:00
J.D. Purcell e15e32eb78 ReflectionTypeLoadException troubleshooting. 2019-10-31 20:16:01 -04:00
adelikat abcda424dc fix a typo in a message box message, a few other cleanups in the vicinity 2019-10-29 12:50:28 -05:00
adelikat d65092e967 Misc cleanups in tool dialogs - mostly the use of expression body (C#6/C#7isms) 2019-10-29 09:27:56 -05:00
adelikat aaee3cf48c Tastudio - fix splitter restore logic on restore defaults 2019-10-27 09:34:32 -05:00
J.D. Purcell 4445a425a2 ToolManager cleanup. 2019-10-20 10:47:23 -04:00
J.D. Purcell 7e38bf61c9 ToolManager.IsAvailable fix. 2019-10-20 10:17:13 -04:00
alyosha-tas ff35dfab57 fix #1697 2019-10-20 09:42:54 -04:00
adelikat 6c22e1c4c6 Lua console - implement saving/loading of column info 2019-10-19 10:45:42 -05:00
J.D. Purcell 1ebdfa149a Fix NullReferenceException in ToolManager.IsAvailable and remove unnecessary try/catch. 2019-10-13 14:21:15 -04:00
YoshiRulz 0e9cc431d9 Rewrite IsAvailable, call to Assembly.GetTypes is now lazy 2019-10-13 15:27:37 +00:00
James Groom d11e35dc44
Add CurrentOS check paired with the one in MainForm.Events.cs 2019-05-20 23:32:46 +10:00
YoshiRulz 58c738957c
Rename PlatformLinkedLibSingleton and children 2019-05-18 15:40:46 +10:00
YoshiRulz d76e1a8a8b
Refactor PlatformLinkedLibSingleton and replace RunningOnUnix with CurrentOS 2019-05-18 15:30:29 +10:00
James Groom 779975f689
Use nameof 2019-03-28 14:17:14 +11:00
YoshiRulz e6374ef477
Use string interpolation 2019-03-19 00:06:37 +10:00
upthorn 71215adf0d Merge branch 'master' of https://github.com/TASVideos/BizHawk 2019-01-04 04:58:58 -08:00
James Groom 42764f0019 Add preliminary Unix compatibility (using Mono; resolves #1384) (#1380)
* Move PlatformSpecificLinkedLibs and implementations to common and rename
* Specify file ext. at LoadPlatformSpecific call site
* Move Client.Common.Global.RunningOnUnix to PlatformLinkedLibSingleton
* Inline var Resolver
* Use PlatformLinkedLibManager internally
* Move plugin load check to LinkedLibManager, use LinkedLibManager
* Interpolate
* Return exit code from dlclose/FreeLibrary
* Skip all calls to externs in BlipBufDll when using mono
* Use PlatformLinkedLibManager in SevenZipLibraryManager
* Add expected return value to workaround (from testing on Win32)
* Remove ".dll" from DllImport attr, remove temporary workaround, see desc.
The library can be built by changing the output file name in
`.../blip_buf/Makefile` to `libblip_buf.so`, and running `make`. It will be
loaded if placed in the `.../output` folder.
* Remove unused code, add TODO (this class is req. for Waterbox.PeWrapper)
The TODO is to [rewrite with
C#](https://docs.microsoft.com/en-us/dotnet/standard/io/memory-mapped-files)
instead of importing from `kernel32.dll`.
* Update OpenTK again but better (for #1384)
* Add Mono run script
* Add libblip_buf.so (temporary)
Temporary because it should be a separate package which BizHawk depends on.
* Add distro detection, add "already running" and "unknown distro" messages
* Gray-out Lua Console on Unix
* Extract superclass from EmuLuaLibrary, add shell implementation for Unix
* Specify libdl version, Fedora doesn't have the versionless symlink
* Remove empty `ToolStripMenuItem`, null `Text` caused crash on Unix
* Transform OpenTK keyboard input into a `List<KeyEvent>` and read that
Also fixes crash on rebind
* Remove debug `using ...;`
2019-01-04 01:50:55 +03:00
upthorn aba1da071d Completely refactored PluginAPI to extend ApiHawk. Ecco2AssistantPlugin is now an external tool. 2018-12-22 10:40:30 -08:00
zeromus 68f97a708d fix more mess in cdl file management 2018-11-12 18:12:00 -05:00
Asnivor 8a10ba6372 EmuHawk: ToolManager.IsAvailable<T> (#1294) 2018-09-10 22:08:44 +03:00
feos 7fedbac9c3 lua: fix #1119 2018-03-09 13:35:42 +03:00
adelikat 6e06947a33 rename ToolAttributes 2017-07-12 14:44:14 -05:00
adelikat af3ab7c208 TraceLogger - Turn off core tracing when closing, TooManager - check for disposed tools before running NewUpdate(), fixes #911 2017-07-09 13:19:09 -05:00
adelikat facd845453 Lua Console - Move StartLuaDrawing() and EndLuaDrawing() to LuaImp since they exclusively LuaImp logic 2017-05-23 12:40:40 -05:00
adelikat 8d91557f4e cleanups in ToolManager 2017-05-22 14:23:14 -05:00