summaryrefslogtreecommitdiffstatshomepage
path: root/plugins/console/init.lua
Commit message (Collapse)AuthorAgeFilesLines
* -Improved some Lua APIs: Vas Crabb2023-04-071-3/+7
| | | | | | | | | | | | | | | | * Moved several machine lifecycle callbacks to the notifier/subscriber model. The old callback registration model is still available for them for now, but prints a deprecation warning. * Added pre-save/post-load notifications. * Use a single allocated timer rather than one anonymous timer per waiter. Waiters no longer prevent saved states from being loaded. * Clean up outstanding waiters on stop or state load rather than just leaking them. * Started documenting parts of the emulator interface object that should be relatively stable. -imagedev/avivideo.cpp: Fixed an object leak on unload. Also changed some other media image devices to use smart pointers.
* -Lua engine: run everything in coroutines. (#11019) Vas Crabb2023-03-251-2/+4
| | | | | | | | | * This lets you use emu.wait(...) directly without mucking around creating coroutines. * Allow emu.wait to accept an attotime argument. * Added a couple more wait helper functions. -emu/profiler.h: Actually use scope-based profiling helpers. * This makes the comment at the top of emu/profile.h less dishonest, and makes it easier to write exception-safe code. * Got rid of some do { ... } while (0) loops that only existed so break could be used like a goto.
* Lua: Be more strict with concurrency and multiple contexts. Vas Crabb2023-03-081-5/+5
|
* plugins/console: Fixed tab completion after linenoise update. Vas Crabb2023-03-081-14/+16
| | | | | | * Can now cycle through candidates by repeatedly pushing Tab. * Also cleaned up Lua thread context object a little, and made it possible to pass any Lua object as a status value.
* Updated forked linenoise to latest upstream. Vas Crabb2023-03-071-15/+5
| | | | | | | | | | This removes the need to force it to build as C++, and adds proper UTF-8 support for Windows. Since this is a fork of linenoise, there's no hope for getting lua-linenoise to sync with it upstream. I made the bare minimum changes to keep it working, but didn't add bindings for new functionality (e.g. multi-line editing).
* osd/modules/file: Don't magically substitute environment variables when ↵ npwoods2022-12-171-1/+1
| | | | | | | | opening files. (#9859) * util/options.cpp: Added option types for single and multiple paths. * util/options.cpp: Substitute environment variables in values from defaults and INI files. * ui/dirmenu.cpp: Removed hard-coded list of multi-path options. * plugins: Don't substitute environment variables in path options.
* plugins/console: fix crash cracyc2021-10-301-6/+10
|
* plugins: Use SPDX short identifiers for licenses in exports (more precise ↵ Vas Crabb2021-10-251-1/+1
| | | | and easier to localise), use CC0 for hiscore plugin rather than CC0.
* srcclean for release Vas Crabb2021-05-231-5/+5
|
* Mostly revert "Create console history file in homepath (#8026)" Vas Crabb2021-05-071-4/+1
| | | | | | The change to make the console plugin work is preserved. This reverts commit 25137717c9392d142650fcd679b09c400a2f5c4a.
* Create console history file in homepath (#8026) Szunti2021-05-031-3/+6
| | | | | | | | | | | * Fix console history path, homepath is a core option * Create missing directories recursively in lua plugins. * Add lfs to global environment in a less magical way. require normally doesn't bind the name globally just returns the module, mame sets a preloader that does bind lfs globally, but maybe it's less surprising to do it explicitly
* init.lua: Change "historypath" (only supposed to be used for DATs) to ↵ AJR2021-05-021-2/+2
| | | | "homepath" (where plugin data should reside)
* Save line history for the console and other minor fixes Szunti2021-04-251-12/+42
| | | | | | | Changed a loadstring to load, since lua 5.3 loadstring is not available. Made sure the linenoise thread returns a string. After Ctrl+D stop reading lines.
* More Lua interface cleanup - it's simpler with cleaner underlyng APIs. Vas Crabb2020-12-271-2/+2
| | | | | | | | | | | Made the sound manager mute controls readable, and got rid of system enable since it just controls system mute anyway. This was causing confusion: phantom2 was trying to use both independentlyt casuing the mute bit to be ignored. THe Lua interface changes are mostly changing methods to properties, some renames to make things clearer, and some additional properties for better control over snapshots.
* Fairly significant overhaul of Lua engine and some cleanup. Vas Crabb2020-11-251-5/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The things that were previously called device iterators are not iterators in the C++ sense of the word. This is confusing for newcomers. These have been renamed to be device enumerators. Several Lua methods and properties that previously returned tables now return lightweight wrappers for the underlying objects. This means creating them is a lot faster, but you can't modify them, and the performance characteristics of different operations varies. The render manager's target list uses 1-based indexing to be more like idiomatic Lua. It's now possible to create a device enumerator on any device, and then get subdevices (or sibling devices) using a relative tag. Much more render/layout functionality has been exposed to Lua. Layout scripts now have access to the layout file and can directly set the state of an item with no bindings, or register callbacks to obtain state. Some things that were previously methods are now read-only properties. Layout files are no longer required to supply a "name". This was problematic because the same layout file could be loaded for multiple instances of the same device, and each instance of the layout file should use the correct inputs (and in the future outputs) for the device instance it's associated with. This should also fix video output with MSVC builds by avoiding delegates that return things that don't fit in a register.
* (nw) Clean up the mess on master Vas Crabb2019-03-261-1/+11
| | | | | | | | | | | | | This effectively reverts b380514764cf857469bae61c11143a19f79a74c5 and c24473ddff715ecec2e258a6eb38960cf8c8e98e, restoring the state at 598cd5227223c3b04ca31f0dbc1981256d9ea3ff. Before pushing, please check that what you're about to push is sane. Check your local commit log and ensure there isn't anything out-of-place before pushing to mainline. When things like this happen, it wastes everyone's time. I really don't need this in a week when real work™ is busting my balls and I'm behind where I want to be with preparing for MAME release.
* Revert "conflict resolution (nw)" andreasnaive2019-03-251-11/+1
| | | | | This reverts commit c24473ddff715ecec2e258a6eb38960cf8c8e98e, reversing changes made to 009cba4fb8102102168ef32870892438327f3705.
* plugins/console: command history (nw) cracyc2019-02-171-1/+11
|
* plugins/console: make the console behave like the docs, unlike the official ↵ cracyc2018-02-071-17/+24
| | | | lua console if you are in a block, entering a newline on a blank line gets you out (nw)
* luaengine: debugger_manager support [Carl] cracyc2017-07-231-0/+20
|
* srcclean (nw) Vas Crabb2017-05-281-1/+1
|
* linenoise: replace linenoise-ng with a different port that is simpler and ↵ cracyc2017-05-131-35/+139
| | | | | | uses a different UTF8 parser [Carl] plugins/console: better completions [Carl]
* plugins/console: much better completions (nw) cracyc2016-11-071-10/+41
|
* plugins/console: further improve completions by removing break chars from ↵ cracyc2016-11-061-11/+6
| | | | linenoise that hide the full type (nw)
* plugins/console: (nw) cracyc2016-11-061-1/+0
|
* lua-linenoise: add preload (nw) cracyc2016-11-061-1/+13
|
* plugins/console: (nw) cracyc2016-11-061-1/+1
|
* plugins/console: better completions (nw) cracyc2016-11-061-5/+14
|
* plugins/console: add lua console [Carl] cracyc2016-11-061-0/+84