Commit Graph

688 Commits

Author SHA1 Message Date
Aaron Culliney
37e540180e Better handling of ctrl-key state and avoid conflict with keypad touch joystick 2015-08-29 12:12:29 -07:00
Aaron Culliney
8b02cb5f17 Cleaner logic for switching between soft keyboards 2015-08-29 12:07:56 -07:00
Aaron Culliney
158449e7fb Force CapsLock for Joystick Keypad for now 2015-08-29 12:05:09 -07:00
Aaron Culliney
2cd60c3c88 Expose all three touch interfaces in the sprouting menu for easier switching 2015-08-29 10:42:24 -07:00
Aaron Culliney
977cd9282d Lifecycle bugfix : don't override custom alternate/arrow keyboard configurations 2015-08-29 09:43:47 -07:00
Aaron Culliney
4258da8cbd Parse JSON that specifies alternate keyboard settings 2015-08-28 22:12:53 -07:00
Aaron Culliney
0bd9591348 Include jsmn JSON parsing code; add our own wrapper for processing JSON daata from files 2015-08-28 22:09:35 -07:00
Aaron Culliney
49c99d5ab7 Beginnings of customized alt touch keyboard layout 2015-08-23 15:03:30 -07:00
Aaron Culliney
59cb3e49f9 Enable various GL Touch Keyboard settings 2015-08-23 11:42:45 -07:00
Aaron Culliney
5df1e2400e Add ability to hide joystick controls overlay 2015-08-22 11:05:18 -07:00
Aaron Culliney
704c381ea8 Logging should automatically print function 2015-08-21 23:43:19 -07:00
Aaron Culliney
3f934ecd3f Fix cycling between different touch devices in the GL touch menu 2015-08-21 23:33:08 -07:00
Aaron Culliney
52ef663a2c toggle sprouting menu 2015-08-21 21:01:51 -07:00
Aaron Culliney
d2b526783a Improve joystick calibration modes and keypad menus 2015-08-21 20:34:19 -07:00
Aaron Culliney
a031a23999 Add a video_clear() routine 2015-08-20 22:12:54 -07:00
Aaron Culliney
5c3791f5dc Refactor GL Touch Joystick (PART I Native changes)
- Move touch-handling code for "regular" touch joystick into separate file
    - Add new touch-handling code for "keypad" touch joystick.  This is a somewhat complex state-machine to determine
      which key to press depending on a full keypad rosette.
    - Adds a callback to vm.c to hook into keyboard read callback.  Allows us to immediately queue the next key if the
      keypad touch joystick is long-pressed for either axis or button keys.
2015-08-18 21:59:41 -07:00
Aaron Culliney
77e96ba1ec Misc touch keyboard tweaks
- Enable tab key
    - Allow nonactionable keys to be tapped when in configuration mode
    - Add font mini visual for spacebar
2015-08-12 22:38:21 -07:00
Aaron Culliney
03d27dd2b2 touch keyboard now returns key and scancode in flags 2015-08-09 14:21:09 -07:00
Aaron Culliney
7344cadfbd More joystick settings including calibration mode 2015-08-02 14:29:34 -07:00
Aaron Culliney
af04ba94d1 Migrate file globals into file static struct 2015-08-02 12:44:44 -07:00
Aaron Culliney
324d900c35 First cut at Android touch joystick configuration 2015-08-01 17:33:29 -07:00
Aaron Culliney
53f0999f5a Bugfix : use int64_t for onTouchEvent flags 2015-08-01 16:41:49 -07:00
Aaron Culliney
0d658932b6 Expose particular settings back to Android so we can persist the values 2015-07-30 23:12:00 -07:00
Aaron Culliney
0bc8869627 nativeOnTouch() now returns various state flags
- Allows playing of a key click sound if a keyboard item tapped
    - Improves stovepiping the native request to show the Android main menu
2015-07-30 22:05:21 -07:00
Aaron Culliney
abfa6e743b Bugfix : properly show icon for joystick or keyboard 2015-07-29 21:18:25 -07:00
Aaron Culliney
7067d10949 Android touch menu configurations 2015-07-28 22:22:25 -07:00
Aaron Culliney
25b9f3d3f3 Android lifecycle cleanups
- Differentiate between cpu_pause() when going to menu (and app is still foregrounded, and cpu_pauseBackground()
      when a system backgrounding event has occurred.
    - Destroy/free audio resources owned by CPU thread when background is requested, put CPU thread into waiting upon
      pthread condition to resume.
    - Mobile device now always signals pthread condition to force CPU thread resume from background
2015-07-27 22:36:39 -07:00
Aaron Culliney
a0cadc83c6 Refactor timing locking behavior
- Do not start CPU thread until after splash screen
    - Insure that only CPU thread can actually create/destroy the audio interfaces
2015-07-26 13:48:24 -07:00
Aaron Culliney
fa1de4dee7 Silence some logging 2015-07-26 10:41:12 -07:00
Aaron Culliney
36baaa04d5 Allow dynamic configuration of audio latency
- This allows for user-configured device-specific tuning (which makes sense in the Android world with 10,000+
      different devices out there ;-)
2015-07-25 12:57:16 -07:00
Aaron Culliney
bca223780c Properly set speaker volume 2015-07-24 22:21:01 -07:00
Aaron Culliney
5291ee750d Add MB_ISEnabled() function 2015-07-23 23:46:23 -07:00
Aaron Culliney
2ae8468b10 Fix desktop Linux build break 2015-07-12 14:29:47 -07:00
Aaron Culliney
7ca4a2646d Optimize video drawing and API cleanup
- Enforces synchronized access to video dirty bit
2015-07-12 14:13:13 -07:00
Aaron Culliney
2a0a9c03b7 Misc speaker codepath tweaks 2015-07-12 13:01:25 -07:00
Aaron Culliney
432d2fb563 Renamed some speaker API methods 2015-07-12 13:00:39 -07:00
Aaron Culliney
5f4bf6b1a7 Use single buffer queue callback for OpenSLES/Android
- OpenSLES Callback now performs simple mix of 2 sources (speaker and mockingboard)
    - Avoids multiple callbacks which was a performance penalty especially for low-end droids
2015-07-12 12:59:49 -07:00
Aaron Culliney
2381868c63 Enable speaker stereo output 2015-07-11 14:21:07 -07:00
Aaron Culliney
1b4962169a Enabled backfilling quiet samples for stereo
- This is a bit of a hack that fixes mockingboard glitching
2015-07-08 20:14:16 -07:00
Aaron Culliney
60d32583ae Gets mockingboard playing with OpenSLES backend
- At ring buffer boundaries, we submit first the beginning of the samples buffer and then the end
2015-07-07 21:36:42 -07:00
Aaron Culliney
0cefe60e06 Force OpenSLES to start playback immediately
- Without this, mockingboard will queue a few samples on U5 boot, but then it won't restart
2015-07-07 21:32:43 -07:00
Aaron Culliney
edaa7be34f Avoid segfaults and deadlocks in backgrounding/foregrounding on Android 2015-07-05 13:40:50 -07:00
Aaron Culliney
38813bb2a1 Revert "Avoid segfault in render thread on mobile shutdown codepath"
This reverts commit ddefceaf08.

    - need an additional boolean instead
2015-07-05 13:29:35 -07:00
Aaron Culliney
4305909d67 Expose some timing constants 2015-07-05 13:17:41 -07:00
Aaron Culliney
dfbb13906a Working buffer size should be around 0.1-0.3 sec of data
- This appears to work on a wide grange of older Gingerbread through to the latest Nexus class devices
    - TODO : we really should write a dynamic calculation/adjustment routine to determine the best working buffer for
      any device this code runs on =)
2015-07-05 13:16:20 -07:00
Aaron Culliney
8ecab7cf91 Eliminate using a local variable 2015-07-05 12:58:43 -07:00
Aaron Culliney
e04f5c046c Just use the workingBytes for bytes_queued calculation 2015-07-05 12:57:24 -07:00
Aaron Culliney
ddefceaf08 Avoid segfault in render thread on mobile shutdown codepath 2015-07-04 18:18:06 -07:00
Aaron Culliney
ada6d7a0be Pause/resume CPU/audio together 2015-07-04 18:17:04 -07:00
Aaron Culliney
c036c8dc84 Defensive coding around case where backend soundsystem is unavailable 2015-07-04 18:13:01 -07:00