BackgroundMusic/BGMApp
Kyle Neideck c617d98f9d
BGMDevice: Only enable volume/mute if the output device also has them.
BGMApp now disables BGMDevice's volume and/or mute controls if the
output device selected in BGMApp doesn't have matching controls. This
prevents the controls from being presented to the user when they don't
do anything.

In BGMPlayThrough, wait much longer for our IOProcs to stop themselves
before assuming something's gone wrong. In testing, rapidly changing
between output devices with and without controls while playing audio
would occasionally cause one of the IOProcs to take too long to stop
itself.

Also adds some basic scriptability, mainly so UI tests can use
AppleScript to check BGMApp's state that would be complicated to check
otherwise. (In this case, to check which output device is selected.)

Fixes #101.
2017-05-30 23:22:48 +10:00
..
BGMApp BGMDevice: Only enable volume/mute if the output device also has them. 2017-05-30 23:22:48 +10:00
BGMApp.xcodeproj BGMDevice: Only enable volume/mute if the output device also has them. 2017-05-30 23:22:48 +10:00
BGMAppTests BGMDevice: Only enable volume/mute if the output device also has them. 2017-05-30 23:22:48 +10:00
BGMXPCHelper Fix nullability warning in BGMXPCHelper. Also add Xcode 8.3 to .travis.yml. 2017-04-05 22:15:54 +10:00
BGMXPCHelperTests Remove BGMAppTests, which was essentially empty. 2017-02-18 18:59:32 +11:00
OptimizationProfiles Add the Vox music player to BGMApp. 2016-04-18 00:36:55 +10:00
PublicUtility Fix a deadlock when changing output device while IO is running. 2017-02-01 09:09:00 +11:00