@class NSObject; @protocol OS_dispatch_queue; @interface CMMotionContextSession : NSObject { struct unique_ptr> { struct __compressed_pair> { struct CMMotionContextLogger *__value_; } __ptr_; } _logger; BOOL _logMSL; struct Dispatcher { void /* function */ **x0; id x1; } *_deviceMotionDispatcher; struct Dispatcher { void /* function */ **x0; id x1; } *_accessoryDeviceMotionDispatcher; struct Dispatcher { void /* function */ **x0; id x1; } *_accessoryDeviceMotionConfigDispatcher; struct CMPdr { struct CMPdrInputs { struct AccelTNBFrame { double lastValidTNBTimestamp; struct CMVector { float elements[3]; } lastSample; struct CMVector { float elements[3]; } T; struct CMVector { float elements[3]; } N; struct CMVector { float elements[3]; } B; float jerkNorm; float curvature; float torsion; BOOL isValid; } fInertialAccelTNB; double fLastTimestamp; double fSampleDT; struct Parameters { double B[12]; double A[12]; double inputScaleValues[4]; double outputScaleValues[4]; } kSosFilterParams; struct array, 3UL> { struct CMSosFilter<4UL> { struct Parameters *kParams; float fOutput; float fRegister[12]; } __elems_[3]; } fInertialUserAccelFilter; struct array, 3UL> { struct CMSosFilter<4UL> { struct Parameters *kParams; float fOutput; float fRegister[12]; } __elems_[3]; } fInertialRotationRateFilter; } fPdrInputs; int fAlgType; struct CMPdrDirectionality { double _lastStartImpulseTimestamp; double _lastEndImpulseTimestamp; double _lastStepDirectionRadians; struct CMVector { double elements[2]; } _lastPosition; struct CMFixedSizeQueue { struct { unsigned short fHead; unsigned short fSize; } fHeadAndSize; unsigned int fCapacity; char fBuffer[24]; struct CMQueueStorage { char buffer[5856]; } fStorage; } _inertialBuffer; } fDirectionalityDetector; struct unique_ptr> { struct __compressed_pair> { struct CMPdrEstimatorOnHead *__value_; } __ptr_; } fPdrEstimatorOnHead; struct unique_ptr> { struct __compressed_pair> { struct CMPdrEstimatorOnBody *__value_; } __ptr_; } fPdrEstimatorOnBody; struct unique_ptr> { struct __compressed_pair> { struct CMDoTEstimatorHandSwing *__value_; } __ptr_; } fPdrEstimatorHandSwing; struct unique_ptr> { struct __compressed_pair> { struct CMDoTEstimatorInHandTexting *__value_; } __ptr_; } fPdrEstimatorTexting; } _pdr; struct CMAccessoryActivity { struct ActivityPacket { int state; double stateTransitionTimestamp; struct Impulse { double start; double end; } stepImpulse; } fActivityPacket; BOOL fSitStandEnabled; struct unique_ptr> { struct __compressed_pair> { struct CMSitStandDetector *__value_; } __ptr_; } fSitStandDetector; struct CMAccessoryStepDetector { BOOL fDetectedSteps; BOOL fCandidateDetected; BOOL fNotifiedDetectedSteps; BOOL fLookingForFirstStep; struct CMFixedSizeQueue { struct { unsigned short fHead; unsigned short fSize; } fHeadAndSize; unsigned int fCapacity; char fBuffer[24]; struct CMQueueStorage { char buffer[1176]; } fStorage; } fInertialAggAccelBuffer; struct CMFixedSizeQueue { struct { unsigned short fHead; unsigned short fSize; } fHeadAndSize; unsigned int fCapacity; char fBuffer[24]; struct CMQueueStorage { char buffer[1176]; } fStorage; } fInertialAccelBuffer; struct CMFixedSizeQueue { struct { unsigned short fHead; unsigned short fSize; } fHeadAndSize; unsigned int fCapacity; char fBuffer[24]; struct CMQueueStorage { char buffer[1176]; } fStorage; } fFaceRotationRateBuffer; struct CMFixedSizeQueue { struct { unsigned short fHead; unsigned short fSize; } fHeadAndSize; unsigned int fCapacity; char fBuffer[4]; struct CMQueueStorage { char buffer[596]; } fStorage; } fAuxRotationRateNormBuffer; struct CMFixedSizeQueue { struct { unsigned short fHead; unsigned short fSize; } fHeadAndSize; unsigned int fCapacity; char fBuffer[4]; struct CMQueueStorage { char buffer[196]; } fStorage; } fInertialAggForwardAccelBufferFaceFrame; struct CMFixedSizeQueue { struct { unsigned short fHead; unsigned short fSize; } fHeadAndSize; unsigned int fCapacity; char fBuffer[4]; struct CMQueueStorage { char buffer[196]; } fStorage; } fYawRotationRateBuffer; struct CMFixedSizeQueue { struct { unsigned short fHead; unsigned short fSize; } fHeadAndSize; unsigned int fCapacity; char fBuffer[8]; struct CMQueueStorage { char buffer[48]; } fStorage; } fSpatialSampleTimestampBuffer; struct CMFixedSizeQueue, 7UL> { struct { unsigned short fHead; unsigned short fSize; } fHeadAndSize; unsigned int fCapacity; char fBuffer[12]; struct CMQueueStorage, 7UL> { char buffer[72]; } fStorage; } fSpatialSampleAggAccelBuffer; double fCurrentPointTimestamp; struct CMVector { float elements[3]; } fCurrentPointAggAccel; int fState; int fPreviousState; int fLastStateTransitionedFrom; struct AggAccelSample { double timestamp; struct CMVector { float elements[3]; } aggAccel; } fCurrentUpSample; struct AggAccelSample { double timestamp; struct CMVector { float elements[3]; } aggAccel; } fCurrentDownSample; double fLastEndImpulseTimestamp; struct CMFixedSizeQueue { struct { unsigned short fHead; unsigned short fSize; } fHeadAndSize; unsigned int fCapacity; char fBuffer[8]; struct CMQueueStorage { char buffer[16]; } fStorage; } fEndImpulseTimestampHistory; struct CMFixedSizeQueue { struct { unsigned short fHead; unsigned short fSize; } fHeadAndSize; unsigned int fCapacity; char fBuffer[8]; struct CMQueueStorage { char buffer[16]; } fStorage; } fStartImpulseTimestampHistory; struct CMOQuaternion { float elements[4]; } fHeadsetOrientation; struct StepModel { double timeSinceLastStepSecRatio[7]; double impulseDurationSecRatio[7]; double deltaInertialZVelRatio[7]; double thetaRollFaceDegreesRatio[9]; double thetaPitchFaceDegreesRatio[9]; double horizontalDisplacementRatio[8]; double peakinessRatio[2]; double bobbinessRatio[2]; double timeSinceLastStepSecEdge[7]; double impulseDurationSecEdge[7]; double deltaInertialZVelEdge[7]; double thetaRollFaceDegreesEdge[9]; double thetaPitchFaceDegreesEdge[9]; double horizontalDisplacementEdge[8]; double peakinessEdge[2]; double bobbinessEdge[2]; double *ratios[8]; double *rightBinEdges[8]; } fStepModel; void /* function */ *fCallback; void *fCallbackInfo; double fLastNotifiedTimeSec; struct CMSpatialLogger *fLogger; } fAccessoryStepDetector; struct Impulse { double start; double end; } fCurrStepImpulse; BOOL fHeadsetOrientationIsSet; } _accessoryActivity; int _motionContextState; BOOL _drawPositionOnStart; struct PdrResults { BOOL step; double startImpulse; double endImpulse; struct CMVector { double elements[2]; } position; int stepsCount; float directionOfTravelDegrees; double speedMps; struct CMOQuaternion { float elements[4]; } attitude; } _result; float _totalSessionTime; int _auxSampleCounter; double _currentTime; NSObject *_stepCountClientQueue; id /* block */ _stepCountClientHandler; NSObject *_pdrClientQueue; id /* block */ _pdrClientHandler; struct CMVector { double elements[2]; } _prevPDRPosition; NSObject *_motionContextClientQueue; id /* block */ _motionContextClientHandler; struct unique_ptr> { struct __compressed_pair> { struct CMPdrMLModel *__value_; } __ptr_; } hmlModel; BOOL _enableMLModel; struct unique_ptr> { struct __compressed_pair> { struct CMMotionContextSessionAnalyticsTracker *__value_; } __ptr_; } _analyticsTracker; float _distanceTravelledPerDVEvent; int _stepCountPerDVEvent; double _distractedViewingEnterTime; struct CMVector { double elements[2]; } _initialPosition; float _initialHeadingDegrees; BOOL _inDVEvent; int _lastTrackingDisableRoute; } + (BOOL)isAvailable; - (id)init; - (void)start; - (id).cxx_construct; - (void)stop; - (void).cxx_destruct; - (id)initWithOptions:(id)a0; - (void)enableMLModel:(BOOL)a0; - (void)enterDistractedViewingSession:(int)a0; - (void)exitDistractedViewingSession:(int)a0; - (void)feedARKitWorldPoseWithTimestamp:(double)a0 pose:(struct { void /* unknown type, empty encoding */ x0[4]; })a1 status:(int)a2; - (void)feedAccessoryConfig:(const void *)a0; - (void)feedAudioAccessoryIMU:(const void *)a0; - (void)feedGPSLocationWithTimestamp:(double)a0 course:(double)a1 speed:(double)a2 latitude:(double)a3 longitude:(double)a4 horizontalAccuracy:(double)a5; - (void)feedSourceDeviceIMU:(const struct Sample { double x0; struct { struct { double x0; double x1; double x2; double x3; } x0; struct { float x0; float x1; float x2; } x1; struct { float x0; float x1; float x2; } x2; struct { float x0; float x1; float x2; } x3; int x4; BOOL x5; BOOL x6; BOOL x7; float x8; BOOL x9; BOOL x10; int x11; } x1; struct { float x0; } x2; BOOL x3; unsigned int x4; unsigned char x5; struct Status { unsigned short x0; } x6; float x7; } *)a0; - (void)initLoggerWithPrefix:(id)a0 filePath:(id)a1; - (void)notifyMotionContextClient:(int)a0; - (void)notifyPdrClient:(const void *)a0; - (void)notifyStepCountClient:(const void *)a0; - (void)setAlgType:(int)a0; - (void)setSpeedEstType:(int)a0; - (void)setTrackingClientMode:(int)a0; - (void)startMotionContextUpdatesToQueue:(id)a0 andHandler:(id /* block */)a1; - (void)startPdrUpdatesToQueue:(id)a0 andHandler:(id /* block */)a1; - (void)startStepCountUpdatesToQueue:(id)a0 andHandler:(id /* block */)a1; @end