luxlabs header browser preview


@class NSMutableDictionary, CSPhoneCallStateMonitor, CSAudioCircularBuffer, NSObject, CSOSTransaction, CSAudioRecordDeviceIndicator, CSADPPreventStandbyAssertion, NSMutableArray, CSAudioRecorder, CSStateCapture, CSAudioTimeConverter, NSString, CSAudioRecordContext, NSHashTable, CSMicUsageReporter, CSAudioPreprocessor, NSUUID;
@protocol CSAudioAlertProvidingDelegate, CSAudioSessionProvidingDelegate, OS_dispatch_group, OS_dispatch_source, OS_dispatch_queue, CSAudioProviderDelegate;

@interface CSAudioProvider : NSObject <CSAudioRecorderDelegate, CSAudioServerCrashMonitorDelegate, CSAudioPreprocessorDelegate, CSAudioStreamProviding, CSAudioSessionProviding, CSAudioMetricProviding, CSAudioAlertProviding, CSAudioMeterProviding, CSTriggerInfoProviding>

@property (retain, nonatomic) NSObject<OS_dispatch_queue> *recordQueue;
@property (retain, nonatomic) NSObject<OS_dispatch_queue> *loggingQueue;
@property (retain, nonatomic) NSObject<OS_dispatch_queue> *streamHandleQueue;
@property (retain, nonatomic) CSAudioRecorder *audioRecorder;
@property (nonatomic) unsigned long long streamState;
@property (retain, nonatomic) NSHashTable *startPendingStreams;
@property (retain, nonatomic) NSHashTable *startPendingOnStoppingStreams;
@property (retain, nonatomic) NSHashTable *alertPlaybackFinishWaitingStreams;
@property (retain, nonatomic) NSHashTable *streams;
@property (retain, nonatomic) NSHashTable *stopPendingStreams;
@property (retain, nonatomic) NSMutableArray *pendingStartCompletions;
@property (retain, nonatomic) NSMutableArray *alertPlaybackFinishWaitingCompletions;
@property (retain, nonatomic) NSMutableArray *pendingStopCompletions;
@property (retain, nonatomic) NSMutableDictionary *startPendingOnStoppingStreamToCompletionDict;
@property (weak, nonatomic) id<CSAudioProviderDelegate> providerDelegate;
@property (weak, nonatomic) id<CSAudioSessionProvidingDelegate> sessionDelegate;
@property (retain, nonatomic) NSMutableArray *streamHolders;
@property (retain, nonatomic) NSHashTable *historicalBufferRequestStreams;
@property (retain, nonatomic) CSAudioCircularBuffer *circularBuffer;
@property (weak, nonatomic) id<CSAudioAlertProvidingDelegate> alertDelegate;
@property (retain, nonatomic) CSAudioRecordContext *lastAudioRecorderContext;
@property (nonatomic) BOOL audioSystemRecovering;
@property (retain, nonatomic) CSAudioPreprocessor *audioPreprocessor;
@property (retain, nonatomic) CSOSTransaction *recordingTransaction;
@property (retain, nonatomic) NSObject<OS_dispatch_group> *recordingWillStartGroup;
@property (nonatomic) BOOL waitingForAlertFinish;
@property (nonatomic) unsigned long long audioStreamHandleId;
@property (retain, nonatomic) NSUUID *alertPlaybackFinishTimeoutToken;
@property (retain, nonatomic) NSUUID *startRecordingWatchDogToken;
@property (retain, nonatomic) NSUUID *stopRecordingWatchDogToken;
@property (retain, nonatomic) NSObject<OS_dispatch_source> *audioPacketWatchdog;
@property (nonatomic) unsigned long long circularBufferStartHostTime;
@property (nonatomic) unsigned long long circularBufferStartSampleCount;
@property (retain, nonatomic) CSAudioTimeConverter *audioTimeConverter;
@property (nonatomic) unsigned long long estimatedStartHostTime;
@property (nonatomic) long long audioStreamType;
@property (retain, nonatomic) CSAudioRecordDeviceIndicator *recordDeviceIndicator;
@property (retain, nonatomic) CSMicUsageReporter *micUsageReporter;
@property (nonatomic) unsigned long long audioPacketDeliveryCount;
@property (retain, nonatomic) CSADPPreventStandbyAssertion *adpAssertion;
@property (retain, nonatomic) CSPhoneCallStateMonitor *phoneCallStateMonitor;
@property (nonatomic) unsigned long long phoneCallState;
@property (nonatomic) BOOL currentSessionShouldDuckOnBuiltInSpeaker;
@property (retain, nonatomic) NSMutableDictionary *recordModeLocks;
@property (retain, nonatomic) NSMutableDictionary *listeningMicIndicatorLocks;
@property (retain, nonatomic) CSStateCapture *stateCapture;
@property (readonly, nonatomic) NSString *UUID;
@property (readonly) unsigned long long hash;
@property (readonly) Class superclass;
@property (readonly, copy) NSString *description;
@property (readonly, copy) NSString *debugDescription;

- (BOOL)playRecordStartingAlertAndResetEndpointerWithAlertOverride:(long long)a0;
- (void)setMeteringEnabled:(BOOL)a0;
- (void)updateMeters;
- (void)CSAudioServerCrashMonitorDidReceiveServerRestart:(id)a0;
- (id)audioDeviceInfo;
- (id)recordSettings;
- (id)playbackRoute;
- (float)averagePowerForChannel:(unsigned long long)a0;
- (float)peakPowerForChannel:(unsigned long long)a0;
- (id)recordDeviceInfo;
- (void)setDuckOthersOption:(BOOL)a0;
- (BOOL)playAlertSoundForType:(long long)a0;
- (BOOL)isNarrowBand;
- (unsigned long long)alertStartTime;
- (BOOL)isRecording;
- (void)setAnnounceCallsEnabled:(BOOL)a0 withStreamHandleID:(unsigned long long)a1;
- (BOOL)setAlertSoundFromURL:(id)a0 forType:(long long)a1 force:(BOOL)a2;
- (unsigned long long)audioStreamId;
- (BOOL)activateAudioSessionWithReason:(unsigned long long)a0 dynamicAttribute:(unsigned long long)a1 bundleID:(id)a2 error:(id *)a3;
- (BOOL)prewarmAudioSessionWithError:(id *)a0;
- (void)dealloc;
- (BOOL)supportsDuckingOnCurrentRouteWithError:(id *)a0;
- (void)start;
- (id)recordRoute;
- (void)enableMiniDucking:(BOOL)a0;
- (void)triggerInfoForContext:(id)a0 completion:(id /* block */)a1;
- (id)holdAudioStreamWithDescription:(id)a0 option:(id)a1;
- (void)audioRecorderBufferAvailable:(id)a0 audioStreamHandleId:(unsigned long long)a1 buffer:(id)a2;
- (id)audioChunkToEndFrom:(unsigned long long)a0 channelIdx:(unsigned long long)a1;
- (void)saveRecordingBufferToEndFrom:(unsigned long long)a0 toURL:(id)a1;
- (id)audioChunkToEndFrom:(unsigned long long)a0;
- (void)setAudioAlertDelegate:(id)a0;
- (void)stopAudioStream:(id)a0 option:(id)a1 completion:(id /* block */)a2;
- (id)audioStreamWithRequest:(id)a0 streamName:(id)a1 error:(id *)a2;
- (BOOL)_activateAudioSessionWithReason:(unsigned long long)a0 error:(id *)a1;
- (void)CSAudioServerCrashMonitorDidReceiveServerCrash:(id)a0;
- (void)audioStreamWithRequest:(id)a0 streamName:(id)a1 completion:(id /* block */)a2;
- (id)audioChunkFrom:(unsigned long long)a0 to:(unsigned long long)a1 channelIdx:(unsigned long long)a2;
- (void)startAudioStream:(id)a0 option:(id)a1 completion:(id /* block */)a2;
- (void)prepareAudioStream:(id)a0 request:(id)a1 completion:(id /* block */)a2;
- (void)configureAlertBehavior:(id)a0;
- (void).cxx_destruct;
- (BOOL)setCurrentContext:(id)a0 error:(id *)a1;
- (void)audioRecorderWillBeDestroyed:(id)a0;
- (void)enableSmartRoutingConsideration:(BOOL)a0;
- (void)CSPhoneCallStateMonitor:(id)a0 didRecievePhoneCallStateChange:(unsigned long long)a1;
- (id)audioChunkFrom:(unsigned long long)a0 to:(unsigned long long)a1;
- (void)attachTandemStream:(id)a0 toPrimaryStream:(id)a1 completion:(id /* block */)a2;
- (id)audioMetric;
- (void)cancelAudioStreamHold:(id)a0;
- (void)setAudioSessionDelegate:(id)a0;
- (void)audioRecorderBufferAvailable:(id)a0 audioStreamHandleId:(unsigned long long)a1 buffer:(id)a2 remoteVAD:(id)a3 atTime:(unsigned long long)a4 arrivalTimestampToAudioRecorder:(unsigned long long)a5 numberOfChannels:(int)a6;
- (BOOL)prepareAudioStreamSync:(id)a0 request:(id)a1 error:(id *)a2;
- (void)saveRecordingBufferFrom:(unsigned long long)a0 to:(unsigned long long)a1 toURL:(id)a2;
- (BOOL)deactivateAudioSession:(unsigned long long)a0 error:(id *)a1;
- (void)_forceReleaseAllRecordModeLocks;
- (id)_acquireListeningMicIndicatorLockFrom:(unsigned long long)a0;
- (id)_acquireRecordModeLockFrom:(unsigned long long)a0;
- (id)_audioChunkFrom:(unsigned long long)a0 to:(unsigned long long)a1;
- (id)_audioChunkFrom:(unsigned long long)a0 to:(unsigned long long)a1 channelIdx:(unsigned long long)a2;
- (id)_audioStreamWithRequest:(id)a0 streamName:(id)a1 error:(id *)a2;
- (BOOL)_canSetContext;
- (void)_cancelAudioPacketWatchDog;
- (void)_cancelAudioStreamHold:(id)a0;
- (void)_clearDidStartRecordingDelegateWatchDog;
- (void)_clearDidStopRecordingDelegateWatchDog;
- (BOOL)_clearListeningMicIndicatorProperty;
- (void)_clearListeningMicIndicatorPropertyIfNeeded;
- (void)_createCircularBufferIfNeededWithNumChannel:(unsigned long long)a0 playbackRoute:(id)a1;
- (BOOL)_deactivateAudioSession:(unsigned long long)a0 error:(id *)a1;
- (void)_deliverHistoricalAudioToStreamsWithRemoteVAD:(id)a0;
- (void)_deliverPostprocessAudioChunk:(id)a0 toStream:(id)a1 lastForwardedSampleCount:(unsigned long long)a2;
- (void)_didFireStreamHolderTimeout:(id)a0;
- (BOOL)_didPlayStartAlertSoundForSiri:(id)a0 audioStream:(id)a1;
- (void)_didReceiveFinishStartAlertPlaybackAt:(unsigned long long)a0;
- (void)_fetchHistoricalAudioAndForwardToStream:(id)a0 remoteVAD:(id)a1;
- (void)_forceReleaseAllListeningMicIndicatorLocks;
- (void)_forceReleaseListeningMicIndicatorLockFrom:(unsigned long long)a0;
- (void)_forceReleaseRecordModeLockFrom:(unsigned long long)a0;
- (void)_forwardAudioChunk:(id)a0 toStream:(id)a1;
- (void)_forwardAudioChunkForTV:(id)a0 toStream:(id)a1;
- (void)_handleAudioRecorderStreamHandleIdInvalidated:(unsigned long long)a0;
- (void)_handleAudioSystemFailure;
- (void)_handleDidStartAudioStreamWithResult:(BOOL)a0 error:(id)a1;
- (void)_handleDidStopAudioStreamWithReason:(long long)a0;
- (void)_holdAudioStreamWithHolder:(id)a0 option:(id)a1;
- (void)_holdRecordingExceptionIfNeeded:(BOOL)a0;
- (void)_holdRecordingTransactionIfNeeded;
- (BOOL)_isDuckingOnSpeakerOutputSupportedWithCurrentRoute;
- (void)_onAudioPacketWatchdogFire;
- (void)_postEpilogueAudioStream;
- (void)_preEpilogueAudioStream;
- (void)_prepareAudioStream:(id)a0 request:(id)a1 completion:(id /* block */)a2;
- (BOOL)_prepareAudioStreamSync:(id)a0 request:(id)a1 error:(id *)a2;
- (void)_processAudioBuffer:(id)a0 remoteVAD:(id)a1 atTime:(unsigned long long)a2 arrivalTimestampToAudioRecorder:(unsigned long long)a3 numberOfChannels:(int)a4;
- (void)_releaseListeningMicIndicatorLock:(id)a0;
- (void)_releaseRecordModeLock:(id)a0;
- (void)_releaseRecordingTransactionIfNeeded;
- (void)_resetCircularBufferStartTime;
- (void)_saveRecordingBufferFrom:(unsigned long long)a0 to:(unsigned long long)a1 toURL:(id)a2;
- (void)_schduleDidStartRecordingDelegateWatchDogWithToken:(id)a0;
- (void)_scheduleAlertFinishTimeout:(double)a0;
- (void)_scheduleAudioPacketWatchDog;
- (void)_scheduleDidStartRecordingDelegateWatchDog;
- (void)_scheduleDidStopRecordingDelegateWatchDog;
- (void)_scheduleDidStopRecordingDelegateWatchDog:(id)a0;
- (void)_setLatestRecordContext:(id)a0;
- (BOOL)_setListeningMicIndicatorProperty;
- (void)_setListeningMicIndicatorPropertyIfNeeded;
- (BOOL)_shouldDuckOnBuiltInSpeaker;
- (BOOL)_shouldHandleStartPendingOnStopping:(unsigned long long)a0 withStopReason:(long long)a1;
- (BOOL)_shouldStopRecording;
- (void)_startAudioStream:(id)a0 option:(id)a1 completion:(id /* block */)a2;
- (void)_stopAudioStream:(id)a0 option:(id)a1 completion:(id /* block */)a2;
- (id)_streamStateName:(unsigned long long)a0;
- (void)_switchToListeningMode;
- (void)_switchToRecordingMode;
- (void)_updateRemoteDeviceIdFromAVVCIfNeeded;
- (void)audioPreprocessor:(id)a0 hasAvailableBuffer:(id)a1 atTime:(unsigned long long)a2 arrivalTimestampToAudioRecorder:(unsigned long long)a3 numberOfChannels:(int)a4;
- (void)audioRecorder:(id)a0 didSetAudioSessionActive:(BOOL)a1;
- (void)audioRecorder:(id)a0 willSetAudioSessionActive:(BOOL)a1;
- (void)audioRecorderBeginRecordInterruption:(id)a0;
- (void)audioRecorderBeginRecordInterruption:(id)a0 withContext:(id)a1;
- (void)audioRecorderBuiltInAudioStreamInvalidated:(id)a0 error:(id)a1;
- (void)audioRecorderDidFinishAlertPlayback:(id)a0 ofType:(long long)a1 error:(id)a2;
- (void)audioRecorderDidStartRecord:(id)a0 audioStreamHandleId:(unsigned long long)a1 successfully:(BOOL)a2 error:(id)a3;
- (void)audioRecorderDidStopRecord:(id)a0 audioStreamHandleId:(unsigned long long)a1 reason:(long long)a2;
- (void)audioRecorderDisconnected:(id)a0;
- (void)audioRecorderEndRecordInterruption:(id)a0;
- (void)audioRecorderRecordHardwareConfigurationDidChange:(id)a0 toConfiguration:(long long)a1;
- (void)audioRecorderStreamHandleIdInvalidated:(unsigned long long)a0;
- (float)circularBufferInputRecordingDuration;
- (int)circularBufferNumInputChannel;
- (id)initWithAudioStreamHandleId:(unsigned long long)a0 audioStreamType:(long long)a1 audioRecordContext:(id)a2 audioRecorder:(id)a3;
- (id)initWithAudioStreamHandleId:(unsigned long long)a0 audioStreamType:(long long)a1 audioRecordContext:(id)a2 audioRecorder:(id)a3 phoneCallStateMonitor:(id)a4;
- (void)notifyProviderContextChanged;
- (void)setAudioProviderDelegate:(id)a0;
- (void)setLatestRecordContext:(id)a0 streamType:(long long)a1;

@end