Commit Graph

900 Commits

Author SHA1 Message Date
Aaron Culliney
16a743fd50 First cut at splash screen on Android 2015-07-26 15:55:07 -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
fcd367bd9e Moar Android configuration menus 2015-07-25 14:51:37 -07:00
Aaron Culliney
9ac6448593 Allow configuration of device audio latency/buffersize on Android 2015-07-25 13:09:27 -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
38aed7fbf5 Add an about link and misc cleanup 2015-07-25 00:25:01 -07:00
Aaron Culliney
055f098811 Dynamically create audio menu for simplicity 2015-07-25 00:07:58 -07:00
Aaron Culliney
fe34a86c35 Maintain a menu page stack for simplicity 2015-07-25 00:06:20 -07:00
Aaron Culliney
933ef5533a Hook in new audio menu and minor menu cleanup 2015-07-24 22:40:38 -07:00
Aaron Culliney
37a8985f79 First cut at audio settings menu 2015-07-24 22:39:46 -07:00
Aaron Culliney
c2fdebd040 Remove mParentView HACK now that we don't use the system soft keyboard 2015-07-24 22:36:57 -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
a60ffb8eb9 Beginning of Android persistent settings 2015-07-21 21:38:28 -07:00
Aaron Culliney
87d7d8a115 Compile Android variant with optimization and debugging symbols 2015-07-12 15:38:28 -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
da301ded7c Android build tweaks
- Build in ARM mode, not Thumb mode (cpu.S is written in common ARM dialect)
    - Include various ABIs (phat APK)
2015-07-12 13:12:44 -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
66978056c9 Build system tweaks 2015-07-07 21:40:48 -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
20b3e25915 Renamed to get Android build working 2015-07-04 18:14:21 -07:00
Aaron Culliney
c036c8dc84 Defensive coding around case where backend soundsystem is unavailable 2015-07-04 18:13:01 -07:00
Aaron Culliney
2910b6180e Avoid speaker_going_silent codepath on Android 2015-07-04 18:11:58 -07:00
Aaron Culliney
43f6eff62e Avoid segfaults if mockingboard not initialized 2015-07-04 18:11:12 -07:00
Aaron Culliney
b717e829a7 Override assert() to get messages 2015-07-04 18:08:43 -07:00
Aaron Culliney
2aba9a5ba1 Better OpenSLES backend implementation for Android
- Uses buffer values gleaned from Android system
    - Removes completely unnecessary playq and uses ringBuffer instead with read/write heads
    - ringBuffer includes a certain amount of "overflow" space for callback convenience
2015-07-04 18:01:44 -07:00
Aaron Culliney
0c6fe702e5 Simplify the going-silent logic 2015-07-02 20:37:06 -07:00
Aaron Culliney
a9307aa827 Remove hardcoded sample rate and buffer sizes
- Audio backend now specifies the sample rate and min/ideal buffer size for mono and stereo audio
    - Increase maximum speaker amplitude
2015-07-02 20:24:59 -07:00
Aaron Culliney
d5b7b5263c Misc tweaks 2015-06-30 22:10:30 -07:00
Aaron Culliney
951b4518c1 Expose device-preferred audio parameters to native 2015-06-28 12:49:26 -07:00
Aaron Culliney
38ef54bf57 Include class to detect audio capabilities of Android device 2015-06-28 11:50:32 -07:00
Aaron Culliney
d01b220b21 Remove spurious checkin 2015-06-28 10:56:11 -07:00
Aaron Culliney
afeffdab79 Tweak to avoid GCC complaint 2015-06-27 13:14:32 -07:00
Aaron Culliney
f0f95a80ff Project changes insisted upon by Android Studio 2015-06-27 13:12:38 -07:00
Aaron Culliney
9631e1e039 Remove > API 19 method call 2015-06-27 13:12:09 -07:00