Skip to content

Commit c8b15d9

Browse files
committed
using circular buffer as swift package
1 parent 6d334f2 commit c8b15d9

4 files changed

Lines changed: 41 additions & 4 deletions

File tree

native/app/Source/Audio/Engine.swift

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import AMCoreAudio
1212
import AVFoundation
1313
import Foundation
1414
import AudioToolbox
15+
import CircularBuffer
1516

1617
class Engine {
1718
private var eventListeners: [Any] = []
@@ -41,7 +42,7 @@ class Engine {
4142

4243
// Console.log("Writing: ", inNumberFrames, sampleTime)
4344

44-
if engine.ringBuffer.store(ioData!, framesToWrite: inNumberFrames, startWrite: sampleTime.int64Value) != .noError {
45+
if engine.ringBuffer.store(ioData!, framesToWrite: CircularBufferTimeBounds.SampleTime(inNumberFrames), startWrite: sampleTime.int64Value) != .noError {
4546
return OSStatus()
4647
}
4748
engine.lastSampleTime = sampleTime
@@ -53,7 +54,7 @@ class Engine {
5354
}
5455

5556
// Middleware
56-
var ringBuffer: CARingBuffer<Float>!
57+
var ringBuffer: CircularBuffer<Float>!
5758

5859
init (sources: Sources, effects: Effects, volume: Volume) {
5960
Console.log("Creating Engine")
@@ -79,7 +80,7 @@ class Engine {
7980

8081
private func setupBuffer () {
8182
let framesPerSample = Driver.device!.bufferFrameSize(direction: .playback)
82-
ringBuffer = CARingBuffer<Float>(numberOfChannels: 2, capacityFrames: UInt32(framesPerSample * 64))
83+
ringBuffer = CircularBuffer<Float>(numberOfBuffers: 2, numberOfElements: Int(framesPerSample) * 64)
8384
}
8485

8586
private func attach () {

native/app/Source/Audio/Outputs/Output.swift

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import SwiftyUserDefaults
1212
import EmitterKit
1313
import AVFoundation
1414
import AudioToolbox
15+
import CircularBuffer
1516

1617
class Output {
1718

@@ -102,7 +103,7 @@ class Output {
102103
let startRead = Int64(sampleTime - output.inToOutSampleOffset)
103104
// Console.log("Reading: ", inNumberFrames, startRead)
104105

105-
let err = engine.ringBuffer.fetch(ioData!, framesToRead: inNumberFrames, startRead: startRead)
106+
let err = engine.ringBuffer.fetch(ioData!, framesToRead: CircularBufferTimeBounds.SampleTime(inNumberFrames), startRead: startRead)
106107

107108
if err != .noError {
108109
makeBufferSilent(abl)

native/app/eqMac.xcodeproj/project.pbxproj

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
objects = {
88

99
/* Begin PBXBuildFile section */
10+
7803AC5B266ED60800860BB5 /* CircularBuffer in Frameworks */ = {isa = PBXBuildFile; productRef = 7803AC5A266ED60800860BB5 /* CircularBuffer */; };
1011
78242E96261A8AEE00058ADE /* Connectivity in Frameworks */ = {isa = PBXBuildFile; productRef = 78242E95261A8AEE00058ADE /* Connectivity */; };
1112
7858FBC224A9630800637941 /* restart_mac.scpt in Resources */ = {isa = PBXBuildFile; fileRef = 7858FBC124A9630800637941 /* restart_mac.scpt */; };
1213
787474A925336D9200FF4A95 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 787474A825336D9200FF4A95 /* CoreFoundation.framework */; };
@@ -240,6 +241,7 @@
240241
787474A925336D9200FF4A95 /* CoreFoundation.framework in Frameworks */,
241242
E02ACA982459EF3B00754204 /* Pods_eqMac.framework in Frameworks */,
242243
E0F661711FDC38BE00252923 /* WebKit.framework in Frameworks */,
244+
7803AC5B266ED60800860BB5 /* CircularBuffer in Frameworks */,
243245
78242E96261A8AEE00058ADE /* Connectivity in Frameworks */,
244246
78D8C3322569B2910084739C /* LaunchAtLogin in Frameworks */,
245247
E0453056245A03E800CDB1BF /* Foundation.framework in Frameworks */,
@@ -619,6 +621,7 @@
619621
packageProductDependencies = (
620622
78D8C3312569B2910084739C /* LaunchAtLogin */,
621623
78242E95261A8AEE00058ADE /* Connectivity */,
624+
7803AC5A266ED60800860BB5 /* CircularBuffer */,
622625
);
623626
productName = eqMacAudio;
624627
productReference = E086AFFC1FCCB8E700CF9F0D /* eqMac.app */;
@@ -660,6 +663,7 @@
660663
packageReferences = (
661664
78D8C3302569B2910084739C /* XCRemoteSwiftPackageReference "LaunchAtLogin" */,
662665
78242E94261A8AEE00058ADE /* XCRemoteSwiftPackageReference "connectivity" */,
666+
7803AC59266ED60800860BB5 /* XCRemoteSwiftPackageReference "CircularBufferSwift" */,
663667
);
664668
productRefGroup = E086AFFD1FCCB8E700CF9F0D /* Products */;
665669
projectDirPath = "";
@@ -1157,6 +1161,14 @@
11571161
/* End XCConfigurationList section */
11581162

11591163
/* Begin XCRemoteSwiftPackageReference section */
1164+
7803AC59266ED60800860BB5 /* XCRemoteSwiftPackageReference "CircularBufferSwift" */ = {
1165+
isa = XCRemoteSwiftPackageReference;
1166+
repositoryURL = "https://github.com/bitgapp/CircularBufferSwift.git";
1167+
requirement = {
1168+
kind = upToNextMajorVersion;
1169+
minimumVersion = 1.0.0;
1170+
};
1171+
};
11601172
78242E94261A8AEE00058ADE /* XCRemoteSwiftPackageReference "connectivity" */ = {
11611173
isa = XCRemoteSwiftPackageReference;
11621174
repositoryURL = "https://github.com/rwbutler/connectivity";
@@ -1176,6 +1188,11 @@
11761188
/* End XCRemoteSwiftPackageReference section */
11771189

11781190
/* Begin XCSwiftPackageProductDependency section */
1191+
7803AC5A266ED60800860BB5 /* CircularBuffer */ = {
1192+
isa = XCSwiftPackageProductDependency;
1193+
package = 7803AC59266ED60800860BB5 /* XCRemoteSwiftPackageReference "CircularBufferSwift" */;
1194+
productName = CircularBuffer;
1195+
};
11791196
78242E95261A8AEE00058ADE /* Connectivity */ = {
11801197
isa = XCSwiftPackageProductDependency;
11811198
package = 78242E94261A8AEE00058ADE /* XCRemoteSwiftPackageReference "connectivity" */;

native/eqMac.xcworkspace/xcshareddata/swiftpm/Package.resolved

Lines changed: 18 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)