luxlabs header browser preview


@class NSString, VCAudioRelayIO, NSObject;
@protocol OS_dispatch_source;

@interface VCAudioRelay : NSObject <VCBasebandCodecNotifications> {
    struct OpaqueFigThread { } *_relayThread;
    struct _opaque_pthread_mutex_t { long long __sig; char __opaque[56]; } _wakeUpMutex;
    struct _opaque_pthread_cond_t { long long __sig; char __opaque[40]; } _wakeUpCondition;
    struct tagVCAudioRelayIOInfo { VCAudioRelayIO *relayIO; struct _opaque_pthread_mutex_t { long long __sig; char __opaque[56]; } lock; NSString *ioFriendlyName; NSString *audioRecordingFileName; } _remoteIOInfo;
    struct tagVCAudioRelayIOInfo { VCAudioRelayIO *relayIO; struct _opaque_pthread_mutex_t { long long __sig; char __opaque[56]; } lock; NSString *ioFriendlyName; NSString *audioRecordingFileName; } _clientIOInfo;
    struct _opaque_pthread_mutex_t { long long __sig; char __opaque[56]; } _relayLock;
    struct _VCRemoteCodecInfo { unsigned int codecType; double sampleRate; } _remoteCodecInfo;
    void *_ptpClock;
    unsigned long long _ptpGMIdentity;
    unsigned short _ptpClockLocalPort;
    struct timespec { long long tv_sec; long long tv_nsec; } _nextWakeUpTime;
    struct timespec { long long tv_sec; long long tv_nsec; } _nextWakeUpInterval;
    unsigned long long _ptpWakeUpTime;
    unsigned long long _nextWakeUpHostMachTime;
}

@property (readonly) struct OpaqueAudioConverter { } *remoteToClientConverter;
@property (readonly) struct OpaqueAudioConverter { } *clientToRemoteConverter;
@property (copy, nonatomic) VCAudioRelayIO *remoteIO;
@property (copy, nonatomic) VCAudioRelayIO *clientIO;
@property (readonly) NSObject<OS_dispatch_source> *periodicHealthPrintDispatchSource;
@property (readonly) unsigned int blocksRelayedCount;
@property (readonly) float clientUplinkPowerMovingAverage;
@property (readonly) float clientDownlinkPowerMovingAverage;
@property (readonly) BOOL isRelayRunning;
@property (readonly) double IOBufferDuration;
@property (readonly) unsigned long long hash;
@property (readonly) Class superclass;
@property (readonly, copy) NSString *description;
@property (readonly, copy) NSString *debugDescription;

- (id)init;
- (void)dealloc;
- (void)lock;
- (void)unlock;
- (BOOL)createAudioConvertersWithError:(id *)a0;
- (void)releasePTPClock;
- (void)stopRelayThread;
- (BOOL)canSetPropertyWithError:(id *)a0;
- (void)destroyAudioConverters;
- (void)didUpdateBasebandCodec:(const struct _VCRemoteCodecInfo { unsigned int x0; double x1; } *)a0;
- (void)forwardSamplesFromIO:(id)a0 toIO:(id)a1 withConverter:(struct OpaqueAudioConverter { } *)a2 withHostTime:(double)a3;
- (void)internalStopRelayThread;
- (double)ioBufferDurationWithFirstIO:(id)a0 secondIO:(id)a1;
- (struct OpaqueAudioConverter { } *)newAudioConverterWithInputFormat:(struct AudioStreamBasicDescription { double x0; unsigned int x1; unsigned int x2; unsigned int x3; unsigned int x4; unsigned int x5; unsigned int x6; unsigned int x7; unsigned int x8; } *)a0 outputFormat:(struct AudioStreamBasicDescription { double x0; unsigned int x1; unsigned int x2; unsigned int x3; unsigned int x4; unsigned int x5; unsigned int x6; unsigned int x7; unsigned int x8; } *)a1 withError:(id *)a2;
- (void)printStreamFormats;
- (void)relayCallback;
- (void)relayProcessSamples;
- (float)rmsPowerOfBuffer:(float *)a0 numSamples:(unsigned int)a1;
- (BOOL)setClientIO:(id)a0 withError:(id *)a1;
- (BOOL)setIOBufferDuration:(double)a0 withError:(id *)a1;
- (BOOL)setNetworkClockID:(unsigned long long)a0 withError:(id *)a1;
- (BOOL)setRemoteIO:(id)a0 withError:(id *)a1;
- (void)sleepForTime:(struct timespec { long long x0; long long x1; } *)a0;
- (BOOL)startClientIO;
- (void)startPeriodicHealthPrint;
- (BOOL)startRelayIO:(struct tagVCAudioRelayIOInfo { id x0; struct _opaque_pthread_mutex_t { long long x0; char x1[56]; } x1; id x2; id x3; } *)a0 otherRelayIO:(struct tagVCAudioRelayIOInfo { id x0; struct _opaque_pthread_mutex_t { long long x0; char x1[56]; } x1; id x2; id x3; } *)a1;
- (BOOL)startRelayThreadWithError:(id *)a0;
- (BOOL)startRemoteIO;
- (void)stopClientIO;
- (void)stopRelayIO:(struct tagVCAudioRelayIOInfo { id x0; struct _opaque_pthread_mutex_t { long long x0; char x1[56]; } x1; id x2; id x3; } *)a0 otherRelayIO:(struct tagVCAudioRelayIOInfo { id x0; struct _opaque_pthread_mutex_t { long long x0; char x1[56]; } x1; id x2; id x3; } *)a1;
- (void)stopRemoteIO;
- (void)updateRealTimeStats;
- (void)updateRemoteCodecInfo:(const struct _VCRemoteCodecInfo { unsigned int x0; double x1; } *)a0;

@end