-
BGM_Device: Fix over-releasing custom property data.
BGM_Device::Device_SetPropertyData was releasing the CFArray it gets from the host (i.e. coreaudiod) when BGMApp sets kAudioDeviceCustomPropertyEnabledOutputControls, which would deallocate it, but coreaudiod also releases that CFArray. Found with AddressSanitizer.
This commit was signed with a verified signature.kyleneideck Kyle Neideck
GPG key ID: CAA8D9B8E39EC18C Learn about signing commits
-
This commit was signed with a verified signature.
kyleneideck Kyle Neideck
GPG key ID: CAA8D9B8E39EC18C Learn about signing commits -
Skip setting NSMenuItem.accessibilityTitle on OS X < 10.12.
This should also fix compilation with the 10.11 SDK. Also enabled -Wpartial-availability and raised the deployment target to OS X 10.9.
This commit was signed with a verified signature.kyleneideck Kyle Neideck
GPG key ID: CAA8D9B8E39EC18C Learn about signing commits
-
uninstall.sh: Increase the filesize limit for deletion.
As a safety check, uninstall.sh refuses to delete a file if it's over a certain size. With debug symbols, Background Music.app was just over the previous 5MB limit.
This commit was signed with a verified signature.kyleneideck Kyle Neideck
GPG key ID: CAA8D9B8E39EC18C Learn about signing commits -
Fix exception in Mock_CAHALAudioObject during BGMApp unit tests.
Also, avoid initialising BGMDeviceControlsList in BGMMockAudioDeviceManager::init.
This commit was signed with a verified signature.kyleneideck Kyle Neideck
GPG key ID: CAA8D9B8E39EC18C Learn about signing commits
-
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.
This commit was signed with a verified signature.kyleneideck Kyle Neideck
GPG key ID: CAA8D9B8E39EC18C Learn about signing commits -
Remove Xcode 6 from the Travis build matrix.
kyleneideck committedMay 20, 2017 This commit was signed with a verified signature.kyleneideck Kyle Neideck
GPG key ID: CAA8D9B8E39EC18C Learn about signing commits
-
This commit was signed with a verified signature.
kyleneideck Kyle Neideck
GPG key ID: CAA8D9B8E39EC18C Learn about signing commits -
-
Fix some bugs in GitHub's rendering of README.md.
Not sure why these parts stopped rendering correctly on GitHub. Might be on their end.
-
build_and_install.sh: Offer fix when xcodebuild can't find Xcode.app.
If the Xcode command line tools were set to use a "command line tools instance", which can be installed without having Xcode installed, build_and_install.sh would fail. It prints an error message with a command that can fix it if you do have Xcode installed, but the message was kind of confusing and the command would fail if you didn't run it as root. build_and_install.sh now offers to run the command for you and then continues the installation. I've also tried to make the message a bit clearer and cleaned up some of the code. Also fixes another bug that occurred with this configuration problem, where the error from xcodebuild would be printed at an unintended (and confusing) point in the script. Fixes #108.
This commit was signed with a verified signature.kyleneideck Kyle Neideck
GPG key ID: CAA8D9B8E39EC18C Learn about signing commits -
uninstall.sh: Open System Preferences pane by ID instead of by name.
The Applescript that opened System Preferences at the end of the process was failing to find the "Sound" pane. It might have been because I don't have OS X set to English, but it's always worked for me in the past. Either way, it's less fragile to use the ID and it fixes the problem (on my machine, at least). Also, added a short pause before restarting coreaudiod because the step before that makes Finder to play a short sound. It probably wouldn't cause any problems, but why risk it?
kyleneideck committedApr 9, 2017 This commit was signed with a verified signature.kyleneideck Kyle Neideck
GPG key ID: CAA8D9B8E39EC18C Learn about signing commits -
Add PublicUtility to manual build instructions and...
...make them less likely to fail because of permissions errors.
kyleneideck committedApr 9, 2017 This commit was signed with a verified signature.kyleneideck Kyle Neideck
GPG key ID: CAA8D9B8E39EC18C Learn about signing commits
-
This commit was signed with a verified signature.
kyleneideck Kyle Neideck
GPG key ID: CAA8D9B8E39EC18C Learn about signing commits
-
This commit was signed with a verified signature.
kyleneideck Kyle Neideck
GPG key ID: CAA8D9B8E39EC18C Learn about signing commits -
Skip the UI tests on Travis by directly editing BGMApp's Xcode scheme.
Skipping them by overriding runTest didn't work and this is the only other way I can think of. xcodebuild's -skip-testing option would work, but only with recent versions of Xcode.
This commit was signed with a verified signature.kyleneideck Kyle Neideck
GPG key ID: CAA8D9B8E39EC18C Learn about signing commits -
This commit was signed with a verified signature.
kyleneideck Kyle Neideck
GPG key ID: CAA8D9B8E39EC18C Learn about signing commits -
This commit was signed with a verified signature.
kyleneideck Kyle Neideck
GPG key ID: CAA8D9B8E39EC18C Learn about signing commits -
Add a UI tests target for BGMApp. Only has one test so far.
The UI tests run with clean user defaults, but BGMDevice and Scripting Bridge still need to be mocked/stubbed out. That also means that the UI tests can only run if BGMDriver is installed and that changes to BGMDriver's state made during the tests will persist.
This commit was signed with a verified signature.kyleneideck Kyle Neideck
GPG key ID: CAA8D9B8E39EC18C Learn about signing commits -
Add builds with Xcode 8.1 and 6.4 to .travis.yml.
6.4 should already have been retired according to their documentation, so it will probably need to be removed. But it would be nice to have because it's the only OSX 10.10 image.
kyleneideck committedFeb 19, 2017 This commit was signed with a verified signature.kyleneideck Kyle Neideck
GPG key ID: CAA8D9B8E39EC18C Learn about signing commits
-
Remove BGMAppTests, which was essentially empty.
kyleneideck committedFeb 18, 2017 This commit was signed with a verified signature.kyleneideck Kyle Neideck
GPG key ID: CAA8D9B8E39EC18C Learn about signing commits -
Reorganise the BGMApp test dirs slightly.
kyleneideck committedFeb 18, 2017 This commit was signed with a verified signature.kyleneideck Kyle Neideck
GPG key ID: CAA8D9B8E39EC18C Learn about signing commits
-
Add -w option to build_and_install.sh, which passes -Wno-error to the…
… compiler. -Wno-error tells the compiler not to treat warnings as errors. Using the option in the one-liner install command in README.md, since it's mostly used by users rather than developers. Also, log the options passed to build_and_install.sh in build_and_install.log.
This commit was signed with a verified signature.kyleneideck Kyle Neideck
GPG key ID: CAA8D9B8E39EC18C Learn about signing commits
-
It seemed to think commands starting with ! were tags.
This commit was signed with a verified signature.kyleneideck Kyle Neideck
GPG key ID: CAA8D9B8E39EC18C Learn about signing commits -
Fix ls command in .travis.yml failing the macOS 10.12 build.
Also, add some simple tests for build_and_install.sh and uninstall.sh to .travis.yml.
This commit was signed with a verified signature.kyleneideck Kyle Neideck
GPG key ID: CAA8D9B8E39EC18C Learn about signing commits -
This commit was signed with a verified signature.
kyleneideck Kyle Neideck
GPG key ID: CAA8D9B8E39EC18C Learn about signing commits
-
This commit was signed with a verified signature.
kyleneideck Kyle Neideck
GPG key ID: CAA8D9B8E39EC18C Learn about signing commits
-
Move the pan sliders into an "extra controls" section of the menu items.
Also add centre tick marks and "L"/"R" (left/right) labels to them. The idea is to eventually include extra controls like an equalizer, recording apps, hiding/ignoring apps, routing apps, etc. Also, remove the left margin from the App Volumes menu items. Even macOS isn't consistent about including that margin, as far as I can tell.
kyleneideck committedJan 21, 2017 This commit was signed with a verified signature.kyleneideck Kyle Neideck
GPG key ID: CAA8D9B8E39EC18C Learn about signing commits
-
Fix a deadlock when changing output device while IO is running.
BGM_Device::StartIO blocks on BGMAudioDeviceManager::waitForOutputDeviceToStart, which could be blocked by HAL requests that the HAL wouldn't return until BGM_Device::StartIO returned. Also: - Replace BGMPlayThrough's move constructor with a SetDevices function for simplicity. - Pause/abort debug builds if an error is logged.
This commit was signed with a verified signature.kyleneideck Kyle Neideck
GPG key ID: CAA8D9B8E39EC18C Learn about signing commits
-
Don't throw in BGMPlayThrough::DestroyIOProcIDs if the device has bee…
…n removed. Also, default to only aborting debug builds when they log and swallow an exception if the exception was unexpected. That is, the developer didn't realise the code could throw.
kyleneideck committedJan 26, 2017 This commit was signed with a verified signature.kyleneideck Kyle Neideck
GPG key ID: CAA8D9B8E39EC18C Learn about signing commits
-
Merge branch 'pan' of https://github.com/rakslice/BackgroundMusic int…
…o rakslice-pan
kyleneideck committedJan 18, 2017 This commit was signed with a verified signature.kyleneideck Kyle Neideck
GPG key ID: CAA8D9B8E39EC18C Learn about signing commits
-
Add BGM_STOP_DEBUGGER_ON_LOGGED_EXCEPTIONS preprocessor flag. Also, a…
…dd... an option to build_and_install.sh for passing extra options to xcodebuild.
This commit was signed with a verified signature.kyleneideck Kyle Neideck
GPG key ID: CAA8D9B8E39EC18C Learn about signing commits -
Add more error handling and logging to BGMPlayThrough.
kyleneideck committedJan 16, 2017 This commit was signed with a verified signature.kyleneideck Kyle Neideck
GPG key ID: CAA8D9B8E39EC18C Learn about signing commits