videoLat  2.1
Video conferencing delay measurements
Instance Methods | Class Methods | Protected Attributes | Properties | List of all members
AudioRunManager Class Reference

#import <AudioRunManager.h>

Inheritance diagram for AudioRunManager:
Inheritance graph
Collaboration diagram for AudioRunManager:
Collaboration graph

Instance Methods

(AudioRunManager *) - init
(void) - stop
 Called when the user stops a measurement run, via stopMeasuring from RunTypeView.
(void) - triggerNewOutputValue
(CIImage *) - getNewOutputImage
(void) - newOutputStartAt:
(void) - newOutputDone
- Instance Methods inherited from BaseRunManager
(void) - terminate
 Prepare for deallocation. Severs links with companion and releases resources.
(IBAction) - startPreMeasuring:
 Called when premeasuring button has been pressed.
(void) - stopPreMeasuring:
 Stop pre-measuring because we have enough prerun samples.
(IBAction) - startMeasuring:
 Called when user presses "start" button.
(IBAction) - stopMeasuring:
 Called when user presses "stop" button.
(void) - selectMeasurementType:
(void) - restart
 Signals that a measurement run should be restarted (for example because the input device has changed).
(void) - triggerNewOutputValueAfterDelay
(void) - prepareReceivedNoValidCode
 Internal: no QR code was received in time during prerun.
(void) - prepareReceivedValidCode:
 Internal: QR code was received in time during prerun.
(BOOL) - prepareInputDevice
(BOOL) - prepareOutputDevice
(BOOL) - prepareMeasurementFromRemoteData
(void) - reportResultsToRemote:
 Report measurement results to remote input or output handler.
(void) - codeRequestedByMaster:
 Called when an incoming request for showing a code is received over the network.
(void) - reportHeartbeat
 Called whenever "nothing really happened", will cause a heartbeat to be sent when helper.
(void) - receivedMeasurementResult:
 Called when a measurement report has been received from the master.

Class Methods

(void) + initialize
 Class initializer.
- Class Methods inherited from BaseRunManager
(void) + registerClass:forMeasurementType:
(Class) + classForMeasurementType:
(void) + registerNib:forMeasurementType:
(NSString *) + nibForMeasurementType:

Protected Attributes

BOOL outputDeviceBusy
 True while we are outputting (and can't start again.
BOOL foundCurrentSample
 True if we have found a match.
BOOL triggerOutputWhenDone
 True if we can start a new output when the current one is done.
- Protected Attributes inherited from BaseRunManager
BOOL networkHelper
 true if this is a networked helper, i.e. it has no collector.
BOOL networkServer
 true if this run manager is a network server (i.e. producing visual output to let the other side connect back here)
BOOL showPreviewDuringRun
 True if we want to see the preview while running (false for QR-code roundtrip)
uint64_t prepareMaxWaitTime
 Internal: How long to wait for prerun code finding.
int prepareMoreNeeded
 Internal: How many more prerun correct catches we need.
uint64_t averageFinderDuration
 Running average of how much the patternfinder takes.
uint64_t outputCodeTimestamp
 When the last output code change was made.
NSString * prevInputCode
 Last input code detected.
int prevInputCodeDetectionCount
 How often prevInputCode was detected.
int uncertainDetectionCount
 How often we detected no reasonable code.
NSString * baseName


IBOutlet AudioOutputViewoutputView
 Assigned in NIB: visual feedback view of output for the user.
IBOutlet AudioSelectionViewselectionView
 Assigned in NIB: view that allows selection of input device.
IBOutlet AudioProcessprocessor
 Assigned in NIB: audio sample comparator.
IBOutlet NSButton * bDetection
 Assigned in NIb: UI element that signals detection to the user.
- Properties inherited from BaseRunManager
IBOutlet NSObject< InputSelectionView > * selectionView
 Assigned in NIB: view that allows selection of input device.
IBOutlet NSObject< InputDeviceProtocol > * capturer
 Assigned in NIB: input capturer.
IBOutlet NSorUIView< OutputDeviceProtocol > * outputView
 Assigned in NIB: Displays current output QR code.
IBOutlet NSObject< NewMeasurementDelegate > * completionHandler
 Optionally assigned in NIB: handler to open completed measurement.
IBOutlet NetworkIODevicenetworkIODevice
 For hetwork measurements: the connection to the other side.
IBOutlet NSObject< ClockProtocol > * clock
 Input manager clock.
NSString * outputCode
NSString * prevOutputCode
bool running
 True after user has pressed "run" button, false again after pressing "stop".
bool preparing
 True after user has pressed "prepare" button, false again after pressing "run".
IBOutlet RunCollectorcollector
 Initialized in the NIB, RunCollector for this measurement run.
IBOutlet RunStatusViewstatusView
 Initialized in the NIB, RunStatusView for this measurement run.
IBOutlet RunManagerViewmeasurementMaster
 Initialized in the NIB, our parent object.

Detailed Description

Subclass of BaseRunManager that handles audio delay measurements. Transmits a sample through the line-out (or speaker) and waits for that same sample to be received on the line-in (or microphone). Current implementation does not behave very well in case of echo supression or echo cancellation.

Method Documentation

◆ triggerNewOutputValue()

- (void) triggerNewOutputValue

Prepare data for a new delay measurement. Called on the output companion, should create a pattern that is distinghuisable from the previous pattern and display it.

Reimplemented from BaseRunManager.

The documentation for this class was generated from the following files: