This magically fixes the stupid header maps that were pulling the system semaphore.h into Swift projects, when they shouldn't have been doing that in the first place. This is the same reason that the FLAC library has its assert.h renamed to FLAC_assert.h. Signed-off-by: Christopher Snowhill <kode54@gmail.com>
72 lines
1.3 KiB
Objective-C
72 lines
1.3 KiB
Objective-C
//
|
|
// ChunkList.h
|
|
// CogAudio Framework
|
|
//
|
|
// Created by Christopher Snowhill on 2/5/22.
|
|
//
|
|
|
|
#import <CoreAudio/CoreAudio.h>
|
|
#import <Foundation/Foundation.h>
|
|
|
|
#import "AudioChunk.h"
|
|
|
|
#import <CogAudio/CogSemaphore.h>
|
|
|
|
NS_ASSUME_NONNULL_BEGIN
|
|
|
|
#define DSD_DECIMATE 1
|
|
|
|
@interface ChunkList : NSObject {
|
|
NSMutableArray<AudioChunk *> *chunkList;
|
|
double listDuration;
|
|
double maxDuration;
|
|
|
|
BOOL inAdder;
|
|
BOOL inRemover;
|
|
BOOL inPeeker;
|
|
BOOL stopping;
|
|
|
|
// For format converter
|
|
void *inputBuffer;
|
|
size_t inputBufferSize;
|
|
|
|
#if DSD_DECIMATE
|
|
void **dsd2pcm;
|
|
size_t dsd2pcmCount;
|
|
int dsd2pcmLatency;
|
|
#endif
|
|
|
|
void *hdcd_decoder;
|
|
|
|
BOOL formatRead;
|
|
|
|
AudioStreamBasicDescription inputFormat;
|
|
AudioStreamBasicDescription floatFormat;
|
|
|
|
uint32_t inputChannelConfig;
|
|
BOOL inputLossless;
|
|
|
|
uint8_t *tempData;
|
|
size_t tempDataSize;
|
|
}
|
|
|
|
@property(readonly) double listDuration;
|
|
@property(readonly) double maxDuration;
|
|
|
|
- (id)initWithMaximumDuration:(double)duration;
|
|
|
|
- (void)reset;
|
|
|
|
- (BOOL)isEmpty;
|
|
- (BOOL)isFull;
|
|
|
|
- (void)addChunk:(AudioChunk *)chunk;
|
|
- (AudioChunk *)removeSamples:(size_t)maxFrameCount;
|
|
|
|
- (AudioChunk *)removeSamplesAsFloat32:(size_t)maxFrameCount;
|
|
|
|
- (BOOL)peekFormat:(nonnull AudioStreamBasicDescription *)format channelConfig:(nonnull uint32_t *)config;
|
|
|
|
@end
|
|
|
|
NS_ASSUME_NONNULL_END
|