Commit graph

156 commits

Author SHA1 Message Date
Kyle Neideck
33b6b17115 Add an XPC helper. Sync BGMApp and BGMDriver with it while starting IO.
The BGMApp project now builds an XPC service bundle called BGMXPCHelper,
which vends a Mach service that BGMApp and BGMDriver can use to
communicate. This will hopefully be useful for some of the tasks HAL
notifications aren't suited to.

In this commit, BGMDriver uses the XPC helper when starting IO, to wait
until BGMApp is ready for playthrough. BGMApp can only start playthrough
when the output hardware is ready for IO. BGMDriver can now tell the HAL
when we're ready for IO, which means we don't have to keep the output
hardware running all the time (or drop frames or increase latency).

The end result is that playthrough doesn't waste CPU time while idle any
more. This also means that now playthrough won't prevent the system from
sleeping when idle.
2016-03-31 11:42:24 +11:00
Kyle Neideck
d378ab5d44 Add VLC as a music player in BGMApp
Also moved the music player Scripting Bridge files.
2016-02-24 18:21:13 +11:00
Kyle Neideck
646c00ceb6 Sync BGMDevice volume with output device correctly on BGMApp startup
The listener proc in BGMDeviceControlSync was being triggered during the
initial CopyVolume call. This fix just waits until after the initial
sync to register the listener proc.
2016-02-23 18:57:47 +11:00
Kyle Neideck
5336a5a670 Add notes about testing with Address Sanitizer 2016-02-20 19:04:19 +11:00
Kyle Neideck
199f5f6a6b Prefer list initialization for in-class initialized member objects 2016-02-20 17:21:05 +11:00
Kyle Neideck
b17d736382 Initial commit 2016-02-19 16:25:34 +11:00