Commit Graph

44 Commits

Author SHA1 Message Date
thrust26 c6093a8d6f added keyboard copy/paste selection in EditableWidget (addresses #105)
increased width of edit cursor
2020-11-04 12:36:18 +01:00
thrust26 76c526bcb0 Added basic (entire and single line only) text cut/copy and paste (partially implements #105) 2020-10-11 10:12:42 +02:00
Stephen Anthony bc8b34e923 Fix warnings from Clang 11.
Apparently d'tors in child classes should now be marked override rather than virtual (to match other methods).
So we do that specifically now.
2020-08-17 10:38:43 -02:30
Stephen Anthony 9ad47ae5f3 Updated copyright to 2020. Happy New Year to anyone reading this! 2019-12-31 13:48:56 -03:30
Thomas Jentzsch af84fbccc5 allow changing controllers during emulation 2019-08-15 20:17:57 +02:00
Thomas Jentzsch 05cecb95b9 refactored logging and removed magic numbers 2019-08-14 12:01:15 +02:00
thrust26 288eb5b1e5 allow repeat for selected keyboard events 2019-06-01 22:29:18 +02:00
Christian Speckner 8e22dc52b4 Log via Logger singleton, fixes races between logging and OSystem teardown. 2019-05-01 23:14:16 +02:00
thrust26 39884db86f refactored/renamed key state parameters (pressed vs. released) 2019-03-29 23:49:29 +01:00
Stephen Anthony 275666b0af The annual copyright year update. 2019-01-01 11:35:51 -03:30
Christian Speckner 8ac66e7929 Add threading sanity checks before critical SDL API calls. 2018-12-04 19:45:22 +01:00
Stephen Anthony 2b3e2dc385 Specifically initialize and quit each SDL subsystem.
- Now video/timer and joystick subsystems are opened and closed in the
proper SDL2 way
- SDL_Quit() is also done at the very end, to clean up any remaining SDL
state
-  Hopefully this fixes the issues with RPi not exiting cleanly.
2018-11-10 17:30:44 -03:30
Stephen Anthony 08ac6b0ff9 Fixed joystick hat not receiving 'CENTER' event (fixes #300). 2018-03-21 18:16:33 -02:30
Stephen Anthony 7eab28b2ef Use smart pointer for joystick in PhysicalJoystickHandler. 2018-03-17 19:44:47 -02:30
Stephen Anthony 76b6026d30 First pass at reworking EventHandler, splitting it up into more manageable pieces.
For now, joystick-related stuff is moved into its own classes.
No improvements are made yet; just refactoring and moving code around.
This reduces EventHandler from ~2500 lines to ~2000 lines.
2018-03-17 18:00:44 -02:30
Stephen Anthony 3d879d0080 Updated copyright date to 2018. A few days early, but nobody will mind ... 2017-12-29 17:10:37 -03:30
Stephen Anthony a15d5d8b06 Properly integrate MouseButton enum into the GUI core:
- The previous code used enumerations for DialogContainer, and constants for everything in src/gui
 - It took me over 3 hours to determine that a '1' in the first didn't mean the same as a '1' in the second
 - If ever there was a reason for strongly named constants (enum class), this was it.
2017-12-29 16:56:09 -03:30
Stephen Anthony 542fed69ed Collapsed MouseButton enum into just buttons, removing state (pressed or released).
- By itself, this first patch doesn't seem to accomplish much, but it leads into patch 2
 - Patch 2 will extend usage of MouseButton enum all throughout the GUI core
2017-12-29 16:05:07 -03:30
Stephen Anthony 44c5882920 Use 'enum class' instead of raw enum. 2017-12-21 19:53:54 -03:30
Stephen Anthony 31da99f48b Convert some raw enum to C++11 'enum class' in EventHandlerConstants. 2017-12-14 21:04:19 -03:30
Stephen Anthony abb7097cb7 Removed $Id$ stuff from codebase, since it's Subversion-specific.
Whitespace cleanup and update copyright to 2017.
2016-12-29 20:30:30 -03:30
stephena eb56efc3d5 Convert BSPF C-style macros to C++ namespace equivalent.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3302 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2016-04-02 23:47:46 +00:00
stephena a35c66e806 Fixed bug occurring when more than 2 controllers had the same name; information
was being saved about only two of them.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3273 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2016-02-06 21:06:23 +00:00
stephena ed766b5bb2 Cleanup some whitespace issues.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3254 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2016-01-23 18:16:09 +00:00
stephena ac98c97bb5 Enabled C++11 "= default" for destructors in the src/cheat and src/common
classes.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3241 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2015-12-29 21:41:53 +00:00
stephena 8f2d3a6cbb Updated copyright to 2016, even though it's a few days early.
To anyone reading this, Merry (belated) Christmas and Happy New Year!


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3239 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2015-12-29 19:22:46 +00:00
stephena d83d91570e More clang warnings fixed; these apply mostly to 'old-style-C' casts.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3205 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2015-09-14 21:33:50 +00:00
stephena c7ef1607be Some code cleanups.
Added updated C++14 make_unique templates, which now allow to also
use unique_ptr for arrays.

Updated SoundSDL class to use unique_ptr, eliminating another new/delete
pair.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3171 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2015-06-13 23:58:37 +00:00
stephena 0afb189322 Updated copyright to 2015. Happy New Year to anyone reading these logs :)
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3131 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2015-01-01 03:49:32 +00:00
stephena 7fee57808c Dynamic joystick add/remove/mapping is now working again. Or at least
it is on all my test systems with 4 different controllers.  We still
need bugtesters for this ...


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3112 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-12-21 00:42:52 +00:00
stephena a165c48fab Some NULL/nullptr and formatting cleanups in src/common.
Renamed mainSDL.c to main.c, since it is no longer dependent on SDL,
and I'm trying to encapsulate SDL-specific code into as few places
as possible.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3047 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-11-07 00:31:46 +00:00
stephena 920dcdb8a5 More const cleanups.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3011 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-10-21 23:02:20 +00:00
stephena c21220ce2c Joysticks are now detected dynamically, meaning that they can be added/removed
while the emulator is running.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@3002 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-10-13 22:37:15 +00:00
stephena 5a89990cc1 Add some extra logging to SDL Init and joystick handling, in an attempt
to debug joystick issues that some users are having.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2977 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-08-15 15:13:00 +00:00
stephena 791c908d8c Fixed bug in mouse scrolling due to differences in handle mouse
scroll events from SDL1 to SDL2.

Bumped version #.  It looks like the current code is now bug-fixed
and equivalent to release 3.9.3.  Now on to committing some backlogged
patches and adding new functionality.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2920 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-06-13 14:49:01 +00:00
stephena 0b74f63a44 Some more removal of SDL-specific code from the emulation core.
The EventHandler now queries EventHandlerSDL2 for names of keys
instead of keeping a list itself.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2916 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-06-11 16:06:17 +00:00
stephena 90248b2701 First pass at converting text input to the new SDL2 scheme. Basically,
the old way mixed both single-key events and Unicode input into one
method, and the new way separates them (using a new handleText method).

Currently it seems to be working fine in the ROM launcher (yay!, I
can now quickly jump to ROMs by name again).  There are still some
issues in the debugger, which I'll work on next.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2913 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-06-10 16:43:35 +00:00
stephena c8b27ec114 Some pretty huge changes right across the board.
Changed pointers to references in c'tor calls, making things a little safer.

Removed FBSurfaceTIA, since it was tied too closely to SDL itself.  Added a
class called TIASurface that is functionally very similar, but is more generic
and accessible by the FrameBuffer directly.  Eventually, this class will take
responsibility for all things related to rendering the TIA image (Blargg TV
effects, phosphor mode, etc).

TIA rendering is currently borked; fixes will follow ...


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2889 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-05-12 23:34:25 +00:00
stephena d0d04948c7 The keyboard now works in TIA emulation mode. Still TODO is get ASCII
characters working, so the UI can be used.

SDL Window events are now sent to the EventHandler core.  For now, only
the window expose event is handled (redraws window if it's been hidden).


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2872 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-03-09 19:22:04 +00:00
stephena 81347af093 Fixed joystick messages, to properly indicate when no joysticks are present.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2866 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-03-07 18:19:09 +00:00
stephena 7bebe7263d Some more work on Blargg scanlines; it's still not correct, but closer
than before.

Fixed compile issue for joystick support (thanks to email from D. Church).
Joystick support still isn't tested, so no guarantees it will work.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2857 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-02-22 17:31:16 +00:00
stephena a1ea1b0c96 OK, SDL2 is in the building! This is the first pass at porting the code
to SDL2.  For now, there are many things broken, namely keyboard handling
and fullscreen modes.  But the launcher does show up, allows to start a
game and enter/exit the debugger, etc.

The code will only compile on Linux for now, and sometimes maybe not even
then.  Expect breakage on a regular basis over the next month or so.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2854 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-02-19 15:34:22 +00:00
stephena 46733e32c0 Fixed some minor compile warnings for OSX.
git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2853 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-02-17 00:11:01 +00:00
stephena 5a48bf0311 Fairly large reorganization of the EventHandler class, separating out
SDL-specific code into its own EventHandlerSDL2 class.  This is part
of a larger reorganization of the codebase, to completely remove
SDL-specific code from src/emucore, and make it easier to port to SDL2.


git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2850 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
2014-02-15 21:37:29 +00:00