SportTracks 2.0 API
Namespaces
SportTracks 2.0 API
SportTracks 2.0 API
Copyright 2007-2008 Zone Five Software

An introduction to developing a plugin for SportTracks using this API can be found at this location.

Namespaces
NamespaceDescription
ZoneFiveSoftware.Common.Data
The Common.Data namespace contains general purpose data-related interfaces and classes. Many of the classes are related to the concept of a data series across time which forms the basis for the specific data tracks stored in fitness activities (e.g. a GPS track, a heart-rate track, etc).

ZoneFiveSoftware.Common.Data.Algorithm
The Common.Data.Algorithm namespace contains classes for calculating statistics on general purpose data objects (those that are not specific to fitness).

ZoneFiveSoftware.Common.Data.Fitness
The Common.Data.Fitness namespace contains interfaces and classes for dealing with workout information. Most of the interfaces represent data which is stored in the logbook object. The property getters and setters can be used to get information from the logbook or make modifications.

To perform higher-level data analysis use the classes whose names end in "Info". These classes perform a lot of useful summary and statistical functions on the underlying data. Notable is the ActivityInfo class which performs averaging, min, max and smoothing on the data tracks of an activity and various time and distance summarization functions.


ZoneFiveSoftware.Common.Data.GPS
The Common.Data.GPS namespace contains interfaces and classes related to GPS data.

ZoneFiveSoftware.Common.Data.Measurement
The Common.Data.Measurement namespace contains classes for dealing with unit conversion and text formatting.

ZoneFiveSoftware.Common.Visuals
The Common.Visuals namespace contains custom controls which provide the SportTracks look and feel. These range from simple extensions of existing Windows.Forms classes to completely custom drawn controls such as the TreeList.

ZoneFiveSoftware.Common.Visuals.Drawing
The Custom.Visuals.Drawing namespace contains classes to help drawing 2D objects.

ZoneFiveSoftware.Common.Visuals.Fitness
The Common.Visuals.Fitness namespace contains interfaces which form the foundation for plugins to customize the behavior of the SportTracks application.

For an assembly to be recognized by SportTracks as a plugin it must contain at least one class which implements the IPlugin interface. This interface acts as an entry point for the application into the plugin and provides basic registration information (a name and a GUID) and persistence operations (read/write options). To allow the plugin to reach into the application for data a reference to the IApplication interface is set on the plugins Application property.

To extend features in the application the plugin should include classes which implement the interfaces starting with IExtend. For example to add a new menu item to the activity edit menu a plugin will create a class which implements IExtendActivityEditActions. Once the application has loaded a plugin assembly, these IExtend classes will be invoked when needed to customize the application.


ZoneFiveSoftware.Common.Visuals.Fitness.GPS
The Common.Visuals.Fitness.GPS namespace contains interfaces to interact with the GPS visuals.