banner
home projects publications facilities people internal resources
logo
 
Haptic Video Editor :: Architecture
 

Table of Contents:
- Summary
- Process & Threads

Summary

The architecture chosen for the project can be thought of as Controller-Viewer, with Kino as the viewer and a second program as an external controller. The two processes are connected using CORBA, an abstraction layer for RCP APIs. . It allows the specification of an interface in a language and implementation independent way thought the use of the CORBA Interface Definition Language (IDL). It can also be used over a network, which allows distribution of a task between machines. The CORBA implementation used is the Ace Orb (TAO) which is also used in the RTPM project and has support for real time tasks.

The change to Kino is the addition of a CORBA server thread that exposes Kino's internal control functions. This interface allows control of play back and editing. This server runs in it's own thread and is mostly separate from the rest of kino

The controller process runs a CORBA client to the server in Kino and other threads to handle the haptics and it's own user interface.

Processes & Threads

Kino runs several threads, ‘main’ thread, one more video playback thread(s) when the video is playing and the CORBA Server thread.
A useful client, such as the one implemented in this project, will have several threads as well. The implemented client has two threads, a gui thread and a haptic thread which runs a fast loop to control the haptic device.

A CORBA RPC interface is an object with the declarations and client side code generated from an IDL file. The server side implementation files are auto generated then have the real code inserted into the functions. The interface implementation is documented in the kino.idl file and in the doxygen generated documentation.

A more complete picture of the threads in gtkClient and Kino-mod:

 

 


Last Updated On:
September 25, 2003 4:08 PM