Skip to content

Commit ec5502b

Browse files
committed
rewrote driver
1 parent b1f9f70 commit ec5502b

85 files changed

Lines changed: 4591 additions & 21808 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

LICENSE

Lines changed: 201 additions & 674 deletions
Large diffs are not rendered by default.

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ I'm notoriously known for lacking in communication with users due to lack of tim
4040

4141
## Technology
4242
eqMac was built using these technologies:
43-
* [Driver](https://github.com/bitgapp/eqMac/tree/master/native/driver) - System Audio loopback/passthrough device based on [BackgroundMusic](https://github.com/kyleneideck/BackgroundMusic) project. The driver grabs the system audio stream and sends it to the input channels. eqMac can grab this stream, process it and send to the appropriate audio device. Still very low level C++ code although the driver runs in User space instead of Kernel like the previous drivers, which means it's much more secure and stable.
43+
* [Driver](https://github.com/bitgapp/eqMac/tree/master/native/driver) - System Audio loopback/passthrough device based on [Apple's Null Audio Server Driver Plug-in](https://developer.apple.com/documentation/coreaudio/creating_an_audio_server_driver_plug-in) example. The driver grabs the system audio stream and sends it to the input channels. eqMac can grab this stream, process it and send to the appropriate audio device. Still very low level C++ code although the driver runs in User space instead of Kernel like the previous drivers, which means it's much more secure and stable.
4444
* [App](https://github.com/bitgapp/eqMac/tree/master/native/app) - Native backend to the whole app. Responsible for audio processing, filesystem access, window management, API and general lifecycle of eqMac. Written in Swift and uses Apple's more modern [AVAudioEngine API](https://developer.apple.com/documentation/avfoundation/avaudioengine), unlike the previous version that used a deprecated AUGraph API.
4545
* [UI](https://github.com/bitgapp/eqMac/tree/master/ui) - Web based user interface that is hosted remotely and thus allows for over the air updates & bug fixes. Built with [Angular](https://angular.io/) + [TypeScript](https://www.typescriptlang.org/) and is cached for offline availability.
4646

@@ -52,7 +52,7 @@ Check the documentation below to understand how to start eqMac debug process fro
5252

5353
[@nodeful](https://github.com/nodeful) - Creator and Developer of eqMac
5454

55-
[@kyleneideck](https://github.com/kyleneideck) - For his hard work on the [BGMDriver](https://github.com/kyleneideck/BackgroundMusic)
55+
Apple Inc. - For open sourcing this [HAL Driver Example](https://developer.apple.com/documentation/coreaudio/creating_an_audio_server_driver_plug-in)
5656

5757
[@titanicbobo](https://github.com/titanicbobo) - For the [Big Sur icon design](https://github.com/bitgapp/eqMac/blob/master/assets/icon/icon.svg)
5858

native/app/Source/Audio/Sources/System/Driver.swift

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -82,24 +82,15 @@ class Driver {
8282
checkErr(AudioObjectSetPropertyData(Driver.device!.id, &address, 0, nil, size, &latency))
8383
}
8484
}
85-
86-
static var hasSafetyOffset: Bool {
87-
var address = AudioObjectPropertyAddress(
88-
mSelector: getPropertySelectorFromString(CustomProperties.kAudioDeviceCustomPropertySafetyOffset.rawValue),
89-
mScope: kAudioObjectPropertyScopeOutput,
90-
mElement: kAudioObjectPropertyElementMaster
91-
)
92-
Console.log(CustomProperties.kAudioDeviceCustomPropertySafetyOffset.rawValue, address.mSelector)
93-
return AudioObjectHasProperty(Driver.device!.id, &address)
94-
}
85+
9586
static var safetyOffset: UInt32 {
9687
get {
9788
return Driver.device!.safetyOffset(direction: .playback)!
9889
}
9990
set {
10091
var address = AudioObjectPropertyAddress(
10192
mSelector: getPropertySelectorFromString(CustomProperties.kAudioDeviceCustomPropertySafetyOffset.rawValue),
102-
mScope: kAudioObjectPropertyScopeGlobal,
93+
mScope: kAudioObjectPropertyScopeOutput,
10394
mElement: kAudioObjectPropertyElementMaster
10495
)
10596

native/driver/Driver.xcodeproj/project.pbxproj

Lines changed: 49 additions & 342 deletions
Large diffs are not rendered by default.

native/driver/PublicUtility/CAAtomic.h

Lines changed: 0 additions & 305 deletions
This file was deleted.

0 commit comments

Comments
 (0)