Video conferencing delay measurements
|Prepare for deallocation. Severs links with companion and releases resources. |
|Called when the user stops a measurement run, via stopMeasuring from RunTypeView. |
|Called when user presses "stop" button. |
|Signals that a measurement run should be restarted (for example because the input device has changed). |
|(NSString *)||- genPrerunCode|
|Class initializer. |
|(NSString *)||+ nibForMeasurementType:|
|true if we are responsible for input processing |
|true if we are responsible for output processing |
|true if this is a slave, i.e. it has no collector. |
|Internal: How log to wait for prerun code finding. |
|Internal: How many more prerun correct catches we need. |
< SelectionView > *
|Assigned in NIB: view that allows selection of input device. |
< InputCaptureProtocol > *
|Assigned in NIB: input capturer. |
< OutputViewProtocol > *
|Assigned in NIB: Displays current output QR code. |
< NewMeasurementDelegate > *
|Optionally assigned in NIB: handler to open completed measurement. |
|The type of measurement we are doing. |
|True after user has pressed "run" button, false again after pressing "stop". |
|True after user has pressed "prepare" button, false again after pressing "run". |
|IBOutlet RunCollector *||collector|
|Initialized in the NIB, RunCollector for this measurement run. |
|IBOutlet RunStatusView *||statusView|
|Initialized in the NIB, RunStatusView for this measurement run. |
|IBOutlet RunManagerView *||measurementMaster|
|Initialized in the NIB, our parent object. |
< RunInputManagerProtocol > *
|Our companion object that handles input. |
< RunOutputManagerProtocol > *
|Our companion object that handles output. |
Base class for objects that control a delay measurement run, i.e. a sequence of many individual delay measurements and collects and stores the individual delays.
Implementations of this class should be able to handle both input and output, but they may have to handle only one of those, based on how things are initialized in the NIB. If the object should handle both (for example during a VideoRun) both inputCompanion and outputCompanion refer to self. If the object should handle only input or output (for example during a MixedRun) the inputCompanion of the output object refers to the other object and vice versa.
In addition, the class methods implement a repository for remembering all available measurement types and their NIBs (initialized by the class initializers of the subclasses).
|+ (Class) classForMeasurementType:||(NSString *)||name|
Return the class implementing a measurement type.
|name||the name of the measurement type|
|- (NSString *) genPrerunCode|
Can be overridden by RunManagers responsible for input, to enforce certain codes to be used during prerunning. Implemented by the NetworkRunManager to communicate the ip/port of the listener to the remote end.
Reimplemented from <RunInputManagerProtocol>.
Reimplemented in NetworkRunManager.
|+ (NSString *) nibForMeasurementType:||(NSString *)||name|
Return the NIB filename implementing a measurement type.
|name||the name of the measurement type|
|+ (void) registerClass:||(Class)||managerClass|
Register a BaseRunManager subclass for a specific measurement type.
|managerClass||the class object that implements the measurement type|
|name||the (human readable) name of this measurement type|
|+ (void) registerNib:||(NSString*)||nibName|
Register a NIB file that implements a specific measurement type.
|nibName||the name of the nibfile|
|name||the (human readable) name of the measurement type|
|- (void) selectMeasurementType:||(NSString *)||typeName|
Select the actual measurement type this run will use.
|typeName||the (human readable) measurement type name. This method is needed because many measurement types (for example Video Roundtrip and Video Calibration) share an awful lot of code.|
|- (void) triggerNewOutputValue|
|- (IBOutlet NSObject<RunInputManagerProtocol>*) inputCompanion
Our companion object that handles input.
The inputCompanion and outputCompanion properties need a bit of explanation. If the same RunManager is used for both input and output the following two outlets are NOT assigned in the NIB. The will then be both set to self in awakeFromNib, and this run manager handles both input and output. But for non-symetric measurements (say, hardware light to camera) the NIB instantiates two BaseRunManager subclass instances, and ties them together through the inputCompanion and outputCompanion.
Reimplemented from <RunOutputManagerProtocol>.
|- (NSString*) outputCode