Still Image Run-Time Components

[This is preliminary documentation and subject to change.]

The STI system is composed of three run-time components:

The STI architecture components provide the following services for use by the Still Image Control Panel, the Still Image Control Center, and Still Image-aware applications:

Still Image Event Monitor

The Event Monitor maintains a list of active push model devices. Devices have a capability that indicates they support push model events. When devices are installed or removed, they can be added or deleted to the Event Monitor's device list using Plug And Play messages. They can also be added or deleted by the STI Control Panel.

The Event Monitor opens all devices that support the push model. The device is opened in control mode. All devices that are opened in control mode are opened for push model events. Since the Event Monitor should be the only component receiving push model events, the Event Monitor is the only component able to open the devices in control mode. Other software, such as application programs, can open the devices in data mode. When a device is opened in data mode, it is functioning under the pull model of data acquisition. The Event Monitor does not place a restriction on the number of programs that open a device in data mode.

The Event Monitor waits for events on all open image acquisition devices. Currently, few devices are capable of actually generating an event directly from the device when data transfer has been initiated. In most cases, a separate thread within the Still Image Event Monitor simulates this behavior by polling the device and causing an event when the device becomes active.

The Event Monitor directs device events to the Control Center.

Still Image Control Center

The Control Center implements a specific policy for how device push events are interpreted. The Control Center uses the list of applications registered as being push model-aware, and the list of those applications that are running.

It also maintains a list of device events that are associated with applications. You create the list that associates device events and applications with the Still Image Control Panel. Registering an application as push model-aware using the IStillImage::RegisterLaunchApplication function does not connect it with particular device events. You must create the association between a device event and an application with the Control Panel. If this is not done, the application will not receive push events from a device.

When the device event occurs, the Control Center launches the application associated with that device event. The application is launched with arguments of Event:event_name and Device:STI_device_friendly_name on the command line. However, the application doesn't parse these arguments off the command line. Instead, there is a method called IStillImage::GetSTILaunchInformation that returns the device event and the device-friendly name.

The control center uses the following simple policy to dispatch device events:

In the current release, the Control Panel only allows one of the registered application to be selected. You will never see a dialog box asking you to choose one of several applications. This restriction will be removed in future releases.

Still Image Control Panel

The STI Control Panel provides you with a common interface for directing some of the Control Center behavior. These behaviors include:

Application programs should not have to access the STI Control Panel. When an image acquisition device is installed, a property page for the device is added to the control panel. The property page is supplied by the vendor. You use it to manually associate device events with applications.