videoLat  2.1
Video conferencing delay measurements
videoLat structure overview

This is the internal developer-oriented documentation of videoLat. For user documentation and other information please visit the videoLat website at .

Global structure overview

The global structure of videoLat follows the normal pattern for a Cocoa dodument-based application. This global structure is contained in the files MainMenu.xib, Document.xib and the inevitable main.m. The main classes and their helper classes are:

protocols.h is part of the global structure and defines various protocols implemented by multiple objects.

compat.h and compat.m handle part of the support for the two platforms, OSX and iOS.

In the XCode project, these sources are contained in the toplevel "src" group and the "Document" and "Supporting Files" groups.

iOS global structure

The global structure for iPhone and iPad is based on the Main.storyboard. The first screen is controlled by MainMenuTableViewController which allows the user to select the task. The next levels are controlled by NewMeasurementTableViewController, NewCalibrationTableViewController, OpenDocumentTableViewController and DownloadCalibrationTableViewController.

The first two are used to select a measurement type, after which we proceed to InputSelectionViewController to select the input, and then to MeasurementContainerViewController to do the measurement, using the structures described below.

When the document has been selected (or created) we do an unwind segue to the toplevel where we open the document using DocumentViewController. If the user wants to do an action on the document (print, upload, etc) we popup a DocumentActionViewController.

New measurement control

On OSX there is a NewMeasurementViewController (in group NewDocument) that handles selection of the measurement type, as NewMeasurementTableViewController does on iOS.

After the user has selected the measurement or calibration type and pressed OK a XIB file is loaded (into a new window on OSX, and as a subview of MeasurementContainerViewController on iOS) that is particular to the measurement being done.

Note that the XIB files differ between iOS and OSX, but the names are the same. The sources for the iOS XIB files are in an "iOS" subdirectory, whereas the OSX XIB file lives with the implementation classes in the per-measurement-type subdirectory of "src".

These XIB files will generally contain a number of views and objects:

In the XCode project, these source files are contained in the "MeasurementRun" group, and the individual implementation in its subgroups.

New measurement implementations

Each measurement run implementation consists at least of a XIB file and a subclass of BaseRunManager.

The implemented measurement types are:

In the XCode project, these measurements are grouped by type and contained in subgroups of the "MeasurementRun" group.