Commit Graph

86 Commits

Author SHA1 Message Date
Glenn Maynard f652510cc5 RepeatStopKey: stop repeating a key until it's released 2006-09-14 20:39:54 +00:00
Glenn Maynard 9fb0d09f35 unwrap 2006-09-13 03:04:04 +00:00
Glenn Maynard 8c7c7fa265 simplify 2006-09-13 03:03:00 +00:00
Glenn Maynard 80a8a67631 remove fFastDelay 2006-09-13 03:01:51 +00:00
Glenn Maynard c71d8f7425 IET_SLOW_REPEAT -> IET_REPEAT 2006-09-13 02:59:05 +00:00
Glenn Maynard d03db0c4f9 remove IET_FAST_REPEAT 2006-09-13 02:55:19 +00:00
Glenn Maynard 73dec47116 stop sending IET_FAST_REPEAT 2006-09-13 02:49:05 +00:00
Glenn Maynard c628676660 use g_ButtonStates instead of GetPressedButtons; GetPressedButtons returns the last reported input, not the immediate state 2006-09-08 19:02:11 +00:00
Glenn Maynard 897c1c9057 revert "simplify"; this removed an API call 2006-09-08 18:59:57 +00:00
Glenn Maynard 9e3f9f6fb3 const 2006-09-08 18:54:01 +00:00
Glenn Maynard 83e010a63e remove IET_LEVEL_CHANGED. I didn't end up using it, and it's a clumsy way of handling analog inputs. 2006-09-08 18:49:14 +00:00
Steve Checkoway f89680bf06 Simplify. 2006-09-08 05:05:42 +00:00
Steve Checkoway eff97a098e Revert. I should be calling Reset() instead. 2006-09-08 04:49:40 +00:00
Glenn Maynard 3deda620b9 const
simplify InputFilter::GetPressedButtons
2006-09-08 04:26:23 +00:00
Steve Checkoway 8c3f4cebba Allow flushing of queued input events. 2006-09-08 04:10:47 +00:00
Glenn Maynard be6d3d4043 Include the complete input state with each input report.
This only deals with buttons being held, so won't cause
performance issues.

This deals with a general problem of the input layer:
you can query the current state of the inputs, but inputs
are received in a queue, causing inconsistencies.

This is why pressing enter during a load, then holding Alt
after pressing it, causes the game to switch fullscreen
after the load finishes; checking for "alt-enter" should
be checking if Alt was pressed when Enter was pressed,
not whether it's pressed right now.

Similarly, CodeDetector has difficulty handling a "Right-Left"
and a "Left-Right" code simultaneously.  If both buttons
are pressed quickly, it needs to check whether Right was
pressed at the time Left was reported, not at the time
EnteredCode was called.
2006-09-08 04:03:14 +00:00
Glenn Maynard 29ba3d052b use m_LastInputTime in GetSecsHeld 2006-09-08 01:41:06 +00:00
Glenn Maynard 618d0ced95 m_BeingHeldTime is the timestamp of the last input change,
not the time corresponding to the current input state.  (If
debouncing delays reporting an input, m_BeingHeldTime
refers to the time of the delayed input.)  Add m_LastInputTime,
which remembers the timestamp of the last reported input.
2006-09-08 01:39:32 +00:00
Glenn Maynard 90f15660b8 InputFilter::ReportButtonChange 2006-09-08 01:11:57 +00:00
Glenn Maynard 2fa3dd658a don't bother typedefing this 2006-09-07 23:58:46 +00:00
Steve Checkoway 6b1aa1514b Simple optimization, avoids allocating memory unnecessarily. 2006-09-02 19:49:46 +00:00
Steve Checkoway 4300663c5e Simplify. DeviceInputs are equal if their InputDevice and DeviceButton are equal. 2006-09-02 19:34:54 +00:00
Chris Danford 7f821e8cfc CString -> RString 2006-01-22 01:00:06 +00:00
Glenn Maynard 4664c25bee fix excessive memory usage by m_ButtonState 2005-12-28 20:41:24 +00:00
Glenn Maynard 76e78a1bc4 avoid iterating over all buttons 2005-12-28 19:21:01 +00:00
Glenn Maynard 400580d842 change warnings to assertions 2005-12-28 09:53:03 +00:00
Glenn Maynard 841bbf4c1f remove GetNumDeviceButtons 2005-12-28 09:48:32 +00:00
Glenn Maynard 7039cafa9a Merge input symbols: any device can have any input key.
- This reduces the number of types associated with input; adding a
   distinct input type doesn't introduce a whole new enumerated type
   and related functions.
 - Special handling for different devices is needed less often.  If you
   want to respond to an F1 press, simply check for KEY_F1; the device
   type doesn't really matter (though it'll usually be a keyboard).
 - This allows cleaner support for generalized USB devices.  While they're
   usually of the traditional classes (keyboard, joystick) with associated
   inputs, they don't have to be.
 - Forced casts between parallel types can be removed, and weakly-specified
   variables (ints instead of the enum type) can be fixed.

Some things that might have been merged havn't; for example, arrow keys
on a keyboard (KEY_UP) are still distinct from axes on a joystick (JOY_UP).
These may or may not be merged in the future.

Some were: removed PUMP_ symbols.  Treat them as generic buttons, and just
give them names with GetDeviceSpecificInputString.  It's not worth
introducing more special names for something only used in one place.
2005-12-28 08:52:20 +00:00
Glenn Maynard 29603ba7db remove unused parameter 2005-12-18 22:53:47 +00:00
Glenn Maynard 95b71dbd3b cleanup 2005-11-06 15:24:26 +00:00
Glenn Maynard b691117e2c cleanup 2005-11-06 13:00:34 +00:00
Glenn Maynard 499dcf9c32 debouncing code broke handling of threaded inputs; fix 2005-11-06 12:14:35 +00:00
Glenn Maynard 4e464c3777 remove old comment 2005-10-24 06:42:28 +00:00
Glenn Maynard 2b035b3ebd cleanup 2005-10-24 06:33:32 +00:00
Glenn Maynard e8f7db11f3 optimize InputFilter::Update (.5ms -> .05ms on k7/1000) 2005-10-24 06:32:30 +00:00
Chris Danford ae7300b3be const cleanup 2005-10-15 16:47:44 +00:00
Glenn Maynard 76e6382e7d Fix up repeat logic: instead of waiting g_fTimeBeforeSlow for the first repeat,
it was waiting g_fTimeBeforeSlow+g_fTimeBetweenRepeats, ignoring the
first repeat).  Adjust TIME_BEFORE_SLOW_REPEATS so the rate doesn't
actually change.  Set correct timestamps for IET_REPEAT events.
2005-09-22 23:59:31 +00:00
Glenn Maynard 87a9243dc5 use fNewHoldTime here, not fOldHoldTime 2005-09-22 23:53:50 +00:00
Glenn Maynard ee9fd1ecc2 remove fast repeat rate. It's the same as the slow rate, and nothing uses it. (IET_FAST_REPEAT kept for now, since some code uses it.) 2005-09-22 23:22:18 +00:00
Glenn Maynard 1df0a43b3f implement generic high-level input debouncing 2005-09-19 07:09:55 +00:00
Glenn Maynard a82c54ddf7 don't send IET_LEVEL_CHANGED for -1 (which means "not supported") 2005-08-03 23:15:18 +00:00
Chris Danford 8eb39f2355 assert -> warning 2005-06-08 06:29:48 +00:00
Glenn Maynard f39c970c43 better error 2005-06-06 18:30:12 +00:00
Chris Danford 2c9993c900 assert when an input handler passes us a bad DeviceInput 2005-06-03 22:54:35 +00:00
Glenn Maynard f8f94844b2 fix zero timestamps on reset
warn about zero timestamps
2005-05-17 20:50:39 +00:00
Glenn Maynard c765508bc1 fix crash due to memset()ing a non-POD 2005-05-10 04:42:14 +00:00
Glenn Maynard ed1c6ff32f add input button comments 2005-05-08 09:19:35 +00:00
Chris Danford f46f9d70d7 human readable Keymaps.ini 2005-04-24 02:15:41 +00:00
Glenn Maynard b1d8b2a51e simplify 2004-09-25 06:40:18 +00:00
Glenn Maynard 4e5077ef84 cleanup, handle IET_LEVEL_CHANGED 2004-09-09 22:14:33 +00:00