@class NSString, NSArray, NSDictionary, NSObject, NSMutableArray; @protocol ASDDeviceConfigurationChangeDelegate, OS_dispatch_queue, OS_dispatch_semaphore; @interface ASDAudioDevice : ASDObject { NSMutableArray *_inputStreams; NSObject *_inputStreamQueue; NSMutableArray *_outputStreams; NSObject *_outputStreamQueue; NSMutableArray *_controls; NSObject *_controlQueue; double _samplingRate; NSArray *_samplingRates; NSObject *_sampleRateQueue; long long _ioReferenceCount; NSObject *_ioReferenceQueue; NSString *_deviceName; unsigned int _timestampPeriod; unsigned int _transportType; unsigned int _clockDomain; unsigned int _clockAlgorithm; BOOL _clockIsStable; NSObject *_wakeSemaphore; NSDictionary *_clientDescription; NSDictionary *_deviceDescription; BOOL _isAlive; BOOL _isRunning; unsigned int _inputLatency; unsigned int _outputLatency; unsigned int _inputSafetyOffset; unsigned int _outputSafetyOffset; id /* block */ _getZeroTimestampBlockUnretained; id /* block */ _willDoReadInputBlockUnretained; id /* block */ _willDoConvertInputBlockUnretained; id /* block */ _willDoProcessInputBlockUnretained; id /* block */ _willDoProcessOutputBlockUnretained; id /* block */ _willDoMixOutputBlockUnretained; id /* block */ _willDoProcessMixBlockUnretained; id /* block */ _willDoConvertMixBlockUnretained; id /* block */ _willDoWriteMixBlockUnretained; id /* block */ _beginIOOperationBlockUnretained; id /* block */ _endIOOperationBlockUnretained; } @property (copy, nonatomic) id /* block */ beginIOOperationBlock; @property (copy, nonatomic) id /* block */ endIOOperationBlock; @property (weak, nonatomic) id configurationChangeDelegate; @property (readonly, nonatomic) id /* block */ *getZeroTimestampBlockUnretainedPtr; @property (readonly, nonatomic) id /* block */ *willDoReadInputBlockUnretainedPtr; @property (readonly, nonatomic) id /* block */ *willDoConvertInputBlockUnretainedPtr; @property (readonly, nonatomic) id /* block */ *willDoProcessInputBlockUnretainedPtr; @property (readonly, nonatomic) id /* block */ *willDoProcessOutputBlockUnretainedPtr; @property (readonly, nonatomic) id /* block */ *willDoMixOutputBlockUnretainedPtr; @property (readonly, nonatomic) id /* block */ *willDoProcessMixBlockUnretainedPtr; @property (readonly, nonatomic) id /* block */ *willDoConvertMixBlockUnretainedPtr; @property (readonly, nonatomic) id /* block */ *willDoWriteMixBlockUnretainedPtr; @property (readonly, nonatomic) id /* block */ *beginIOOperationBlockUnretainedPtr; @property (readonly, nonatomic) id /* block */ *endIOOperationBlockUnretainedPtr; @property (copy, nonatomic) NSString *deviceName; @property (readonly, copy, nonatomic) NSString *deviceUID; @property (copy, nonatomic) NSString *modelUID; @property (copy, nonatomic) NSString *manufacturerName; @property (copy, nonatomic) NSString *modelName; @property (copy, nonatomic) NSString *configurationBundleID; @property (nonatomic) double samplingRate; @property (copy, nonatomic) NSArray *samplingRates; @property (nonatomic) BOOL canBeDefaultDevice; @property (nonatomic) BOOL canBeDefaultInputDevice; @property (nonatomic) BOOL canBeDefaultOutputDevice; @property (nonatomic) BOOL canBeDefaultSystemDevice; @property (nonatomic) BOOL allowAutoRoute; @property (nonatomic, getter=isHidden) BOOL hidden; @property (nonatomic) BOOL canChangeDeviceName; @property (nonatomic) unsigned int timestampPeriod; @property (readonly, nonatomic) BOOL hasInput; @property (readonly, nonatomic) BOOL hasOutput; @property (nonatomic) unsigned int inputLatency; @property (nonatomic) unsigned int outputLatency; @property (nonatomic) unsigned int inputSafetyOffset; @property (nonatomic) unsigned int outputSafetyOffset; @property (readonly, nonatomic, getter=isRunning) BOOL running; @property (readonly, retain, nonatomic) NSObject *ioReferenceQueue; @property (nonatomic) unsigned int transportType; @property (nonatomic) unsigned int clockDomain; @property (nonatomic) unsigned int clockAlgorithm; @property (nonatomic) BOOL clockIsStable; @property (copy, nonatomic) NSDictionary *clientDescription; @property (copy, nonatomic) NSDictionary *deviceDescription; @property (copy, nonatomic) id /* block */ getZeroTimestampBlock; @property (copy, nonatomic) id /* block */ willDoReadInputBlock; @property (copy, nonatomic) id /* block */ willDoConvertInputBlock; @property (copy, nonatomic) id /* block */ willDoProcessInputBlock; @property (copy, nonatomic) id /* block */ willDoProcessOutputBlock; @property (copy, nonatomic) id /* block */ willDoMixOutputBlock; @property (copy, nonatomic) id /* block */ willDoProcessMixBlock; @property (copy, nonatomic) id /* block */ willDoConvertMixBlock; @property (copy, nonatomic) id /* block */ willDoWriteMixBlock; - (id)initWithDeviceUID:(id)a0 withPlugin:(id)a1; - (id)diagnosticDescriptionWithIndent:(id)a0 walkTree:(BOOL)a1; - (unsigned int)objectClass; - (void)_updateSafetyOffsets:(double)a0; - (unsigned int)clockDomain; - (void)updateTimestampPeriod; - (int)performStartIO; - (void)systemHasPoweredOn; - (void)requestConfigurationChange:(id /* block */)a0; - (BOOL)isPropertySettable:(const struct AudioObjectPropertyAddress { unsigned int x0; unsigned int x1; unsigned int x2; } *)a0; - (void)performConfigurationChange:(void *)a0; - (unsigned int)timestampPeriod; - (void)systemWillSleep; - (void)setClockIsStable:(BOOL)a0; - (void)setSamplingRates:(id)a0; - (int)stopIOForClient:(unsigned int)a0; - (void)setClockDomain:(unsigned int)a0; - (int)startIOForClient:(unsigned int)a0; - (double)samplingRate; - (int)addClient:(const struct AudioServerPlugInClientInfo { unsigned int x0; int x1; unsigned char x2; struct __CFString *x3; } *)a0; - (id)samplingRates; - (int)performStopIO; - (BOOL)setProperty:(const struct AudioObjectPropertyAddress { unsigned int x0; unsigned int x1; unsigned int x2; } *)a0 withQualifierSize:(unsigned int)a1 qualifierData:(const void *)a2 dataSize:(unsigned int)a3 andData:(const void *)a4 forClient:(int)a5; - (void)setDeviceName:(id)a0; - (void)setTimestampPeriod:(unsigned int)a0; - (void)setClockAlgorithm:(unsigned int)a0; - (BOOL)getProperty:(const struct AudioObjectPropertyAddress { unsigned int x0; unsigned int x1; unsigned int x2; } *)a0 withQualifierSize:(unsigned int)a1 qualifierData:(const void *)a2 dataSize:(unsigned int *)a3 andData:(void *)a4 forClient:(int)a5; - (void)addControl:(id)a0; - (void)removeControl:(id)a0; - (void)setSamplingRate:(double)a0; - (void)setTransportType:(unsigned int)a0; - (BOOL)clockIsStable; - (BOOL)changeDeviceName:(id)a0; - (id)driverClassName; - (void)_updateTimestampPeriod:(double)a0; - (id)controls; - (unsigned int)dataSizeForProperty:(const struct AudioObjectPropertyAddress { unsigned int x0; unsigned int x1; unsigned int x2; } *)a0 withQualifierSize:(unsigned int)a1 andQualifierData:(const void *)a2; - (id)ioReferenceQueue; - (unsigned int)clockAlgorithm; - (BOOL)changeSamplingRate:(double)a0; - (void)removeInputStream:(id)a0; - (id)outputStreams; - (id)deviceName; - (void)dealloc; - (int)removeClient:(const struct AudioServerPlugInClientInfo { unsigned int x0; int x1; unsigned char x2; struct __CFString *x3; } *)a0; - (BOOL)changeClientDescription:(id)a0; - (BOOL)hasInput; - (id)inputStreams; - (id)initWithPlugin:(id)a0; - (void)removeOutputStream:(id)a0; - (void)preferredChannelsForLeft:(unsigned int *)a0 andRight:(unsigned int *)a1; - (BOOL)hasProperty:(const struct AudioObjectPropertyAddress { unsigned int x0; unsigned int x1; unsigned int x2; } *)a0; - (void)addInputStream:(id)a0; - (void)abortConfigurationChange:(void *)a0; - (void)addOutputStream:(id)a0; - (void).cxx_destruct; - (BOOL)hasOutput; - (unsigned int)transportType; - (void)preferredChannelDescriptions:(struct AudioChannelDescription { unsigned int x0; unsigned int x1; float x2[3]; } *)a0 forScope:(unsigned int)a1; - (unsigned int)numberOfChannelsInLayoutForScope:(unsigned int)a0; - (id)getProperty:(id)a0; - (unsigned int)calculateIOBufferFrameSize:(unsigned int)a0; @end