summaryrefslogtreecommitdiffstatshomepage
path: root/src/osd/modules/output
Commit message (Collapse)AuthorAgeFilesLines
* Replaced most simple uses of sprintf with type-safe equivalents. (#10948) Erik2023-03-101-3/+2
|
* osd: Turned video modules into actual modules, fixed various issues. Vas Crabb2023-02-013-22/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Don't ignore the return status of OSD module initialisation. Attempt to fall back to an alternate module if the selected module fails to initialise. Log more useful diagnostic information at verbose level. Fixed BGFX crash on exit after toggling fullscreen. Also persist more settings than just the selected chains across toggling fullscreen. Turned video modules into OSD modules in the same sense as all the other OSD modules. They now use the same selection/fallback mechanism as all the other modules without special extra code in the OSD implementations. Untangled some object ownership mess. Windows own renderers, OSD objects own windows. Fixed a refrence loop that caused the first window object to always leak. Don't create renderer object until after underlying window has been created. Fixed issues with order of creation/destruction when toggling fullscreen or changing prescale in fullscreen with -switchres in SDL builds. Use more smart pointers in BGFX and Direct3D render modules. Most of the code now reutrns a smart pointer when handing over ownership or a naked pointer when retaining ownership. Fixed a few leaks and simplified cleanup code. Encapsulated various OSD modules better.
* Various input and OSD refactoring: Vas Crabb2023-01-296-170/+199
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | osd: Supply OSD object to modules on initialisation. Encapsulated some event handling in the OSD objects rather than leaving it in free functions. Put various stuff in namespaces. osd/modules/input: Enabled dinput, xinput and winhybrid modules for Windows SDL builds, and enabled background input for dinput and xinput (and by extension winhybrid) modules. Also fixed some COM and X11 resource leaks. osd/modules/input/input_sdl.cpp: Flipped SDL mouse button order to match Windows, and exposed vertical and horizontal scroll as Z and rZ axes. Moved SDL UI event handling out of input devices into OSD object. osd/modules/input_rawinput.cpp: Changed lightgun Z axis token so it's correctly identified as a relative axis (it maps to the scroll wheel equivalent). osd: Added an option to choose the network provider module. Mostly useful if you build with both TUN/TAP and pcap support included, or if you want to disable emulated networking completely. emu/input.cpp: Use a better strategy for assembling input code names that uses fewer temporary strings and doesn't require use of the non-Unicode-aware space trimming function (fixes MT08552). osd/modules/input_dinput.cpp: Improved polling logic. osd: Made various parts of the input code less dependent on concrete emu objects, and reduced inappropriately passing around the machine object. Made input modules less dependent on OSD implementation. Encapsulated some stuff and got rid of some vestigial newui and SDL1 support code. Cleaned up some interfaces. Moved OSD options classes to their own files. Prepare to remove main.h from emu.h - it's mostly used to get the application name, which the vast majority of emulated devices don't need to do.
* Miscellaneous fixes and refactoring: Vas Crabb2023-01-281-3/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ui/analogipt.cpp: Fixed bar graph display for fields with ranges that wrap through zero. emu/inputdev.cpp: Separateed analog axis deadzone and switch threshold settings, reduced default deadzone, and fixed a potential division by zero if the deadzone and saturation settings are equal. emu/ioport.cpp: Fixed behaviour of absolute analog fields where range passes through zero - it previously only worked for specific combinations of mask, minimum and default. Removed a workaround from universal/getaway.cpp that is no longer necessary. emu/input.cpp: Fixed unintuitive behaviour when an absolute field is assigned an OR combination of a relative control folled by an absolute control (e.g. Mouse X or Joy 1 LSX). Also fixed reading axis input sequences where an axis code is followed by a switch code (these can only be produced by manually editing configuration files, not through MAME's UI), and fixed the returned type when multiple relative axes sum to zero. osd/modules/input_dinput.cpp: Fixed hat switches being stuck in up position when input is suspended in the background taito/taitoio_yoke.cpp: Give throttle control a distinct type, and don't auto-centre. osd: Added option to select MIDI provider module (currently only PortMidi and the dummy module are available). Also put various things in namespaces, and fixed builds including SDL sound module with native Windows OSD. emu/validity.cpp: Added check to catch I/O port fields using UI input types. emu/inpttype.ipp: Renamed inputs that were causing confusion. "Bill" and "Track" were causing confusion for translators and hence likely causing confusion for many users, especially those who are not native English speakers. "Track" as an abbreviation for "Trackball" was frequently being mistranslated, e.g. in the sense of a CD track selection button or even in the sense of a railway track. There's no reason to abbreviate it. "Bill" in the US English sense as a banknote is too ambiguous and was causing confusion for translators. It's better to use the less ambiguous "Banknote". Corrected Greek translations of "Trackball". Don't run GitHub Actions on issue template changes.
* Clean up #includes in src/osd (#10029) ajrhacker2022-07-041-0/+2
| | | | | * Clean up #includes in src/osd * render/bgfx/view.cpp: Add license header
* Removed extra semicolons after function bodies in remaining headers. (#9277) 0kmg2022-02-071-1/+1
|
* -Switch to building MAME as C++17. Vas Crabb2020-11-151-0/+1
| | | | | | | * Updated sol2 to 3.2.2 * Updated pugixml to 1.10 * Increased minimum clang version to 6 * Cleaned up some stuff that can use new features
* Got rid of global_alloc/global_free. Vas Crabb2020-10-031-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | The global_alloc/global_free functions have outlived their usefulness. They don't allow consistently overriding the default memory allocation behaviour because they aren't used consistently, and we don't have standard library allocator wrappers for them that we'd need to use them consistently with all the standard library containers we're using. If you need to change the default allocator behaviour, you can override the new/delete operators, and there are ways to get more fine-grained control that way. We're already doing that to pre-fill memory in debug builds. Code was already starting to depend on global_alloc/global_free wrapping new/delete. For example some parts of the code (including the UI and Windows debugger) was putting the result of global_alloc in a std::unique_ptr wrappers without custom deleters, and the SPU sound device was assuming it could use global_free to release memory allocated with operator new. There was also code misunderstanding the behaviour of global_alloc, for example the GROM port cartridge code was checking for nullptr when a failure will actually throw std::bad_alloc. As well as substituting new/delete, I've made several things use smart pointers to reduce the chance of leaks, and fixed a couple of leaks, too.
* Revert "fixed some modernize-use-equals-default clang-tidy warnings (… (#6360) Oliver Stöneberg2020-04-084-5/+7
| | | | | | | * Revert "fixed some modernize-use-equals-default clang-tidy warnings (nw)" This reverts commit 54486ab9 * fixed merge error
* fixed some modernize-use-auto clang-tidy warnings (nw) (#6238) Oliver Stöneberg2020-01-301-1/+1
|
* fixed some modernize-use-equals-default clang-tidy warnings (nw) (#6237) Oliver Stöneberg2020-01-304-7/+5
|
* fixed some clang-tidy warnings (nw) (#6197) Oliver Stöneberg2020-01-221-1/+1
| | | | | | | | | | | | | | * fixed some bugprone-throw-keyword-missing clang-tidy warnings (nw) * fixed some modernize-use-nullptr clang-tidy warnings (nw) * fixed some readability-delete-null-pointer clang-tidy warnings (nw) * fixed some performance-faster-string-find clang-tidy warnings (nw) * fixed some performance-for-range-copy clang-tidy warnings (nw) * fixed some readability-redundant-string-cstr clang-tidy warnings (nw)
* save/restore otuput values in save states Vas Crabb2019-12-131-8/+5
|
* Fix Solaris 2.11 (non-Oracle) Rick V2019-08-191-0/+5
|
* srcclean (nw) Vas Crabb2018-05-274-9/+9
|
* Output system changes [headkaze, R. Belmont] arbee2018-05-064-46/+77
| | | | | * Cleaned up syntax for network provider * Added pause and savestate commands to both network and win32 providers
* never hurts to srcclean (nw) Vas Crabb2017-07-091-39/+39
|
* remove unnecessary verbosity (nw) arbee2017-07-041-3/+2
|
* output: Fleshed out network output provider so it has the same capability as ↵ arbee2017-07-041-6/+69
| | | | | | | | | | | | legacy Win32. Clients: - Connect to TCP port 8000 - Messages will be of the form "verb = value\1"; if your client is busy when MAME is spamming, you may get multiple messages glued together by \1 separators. (\1 was chosen because it's neutral on Win32/Mac/Linux). - You will get a "hello = 1" message upon connection to MAME, and a "mamerun = 0" message when MAME shuts down. - You may send "send_id = n" to MAME to get IDs where n=0 means ROM set name of current game, 1-? = output node names - MAME will reply "req_id = string\1"; this is currently the only case where a string will be returned instead of an integer value. - A working example POSIX client will be released soon.
* Move special windows.h include directives to build defines (nw) Brad Hughes2016-12-281-1/+0
|
* Small cleanup (nw) Miodrag Milanovic2016-11-111-1/+1
|
* srcclean (nw) Vas Crabb2016-10-232-50/+50
|
* final cleanup of TRUE/FALSE, left only in windows section where it represent ↵ Miodrag Milanovic2016-10-221-4/+4
| | | | BOOL (nw)
* NOTICE (TYPE NAME CONSOLIDATION) Miodrag Milanovic2016-10-226-9/+9
| | | | | Use standard uint64_t, uint32_t, uint16_t or uint8_t instead of UINT64, UINT32, UINT16 or UINT8 also use standard int64_t, int32_t, int16_t or int8_t instead of INT64, INT32, INT16 or INT8
* dynamic_buffer is just std::vector<UINT8> (nw) Miodrag Milanovic2016-10-211-1/+1
|
* Replaced code usage of libuv with asio library (nw) Miodrag Milanovic2016-10-071-34/+119
|
* win32_output: Register window messages before creating window (nw) Brad Hughes2016-09-301-15/+16
|
* Cleanup and version bumpmame0175 Miodrag Milanovic2016-06-291-1/+1
|
* fix non-Windows compile (nw) arbee2016-06-051-1/+5
|
* Placed back old output system as module "-output windows" need more things ↵ Miodrag Milanovic2016-06-053-1/+428
| | | | cleaned (nw)
* Fixed network output to include all data [headkaze] arbee2016-06-051-1/+6
|
* Cleanups and version bumpmame0173 Miodrag Milanovic2016-04-271-5/+4
|
* Various cleanups suggested by static analyzer (nw) Miodrag Milanovic2016-04-241-2/+2
|
* Basic TCP server based on libuv [Inaki Baz Castillo,Miodrag Milanovic] Miodrag Milanovic2016-04-101-5/+32
|
* Added skeleton for network output (nw) Miodrag Milanovic2016-04-091-0/+59
|
* Added none and console output providers (nw) Miodrag Milanovic2016-04-093-0/+94