Source Codes of FocusShare Software
September 9, 2004

National Institute of Multimedia Education
Research and Development
Noritaka OSAWA

1. Compilation Environment
The following software is required to compile FocusShare source codes

 * Windows2000/XP

 * Microsoft Visual Studio .Net 2003
   You may need to modify some Visual Studio Solution files if you use different versions of Visual Studio

 * Borland C++ Builder 5
   User interfaces of FocusShare and multiple video receiver software are developed with C++Builder.

 * DirectX 9.0b SDK
    DirectX SDK is assumed to be installed in "C:\DXSDK". If you use a different directory, you need to modify Visual Studio Project files.
@@You need to compile C:\DXSDK\Samples\C++\DirectShow\BaseClasses because the compiled libraries are need to make DirectShow filters.

2. Directories

 * flFilters

    Source codes of DirectShow-related modules used in FocusShare.

    * flAudioMixer
      2-input audio mixing filter 

    * flBase
      Basic classes of vectors, threads, strings

    * flDigitalClock
      Digital clock filter

    * flDirectInput
      Classes for DirectX DirectInput. Mice and gamepads can be used.

    * flDrawTools
      Filters for drawing on video
       DrawFrame     frame drawing filter
       DrawCaption   caption drawing filter

    * flFilterCommon
      Common functions used in DirectShow filters

    * flFormatTrans
      Video format transformation filter

    * flMulticastReceiver
      Multicast receiver filter

    * flMulticastSender
      Multicast sender filter

    * flNetwork
      Transmission functions of IPv4/IPv6 multicasting

    * flNonLinearZoom
      Non-linear zooming filter

    * flPointerBitmapCreator
      Pointer shape generation classes for pointer compostion filters

    * flPointerMixer
      Pointer mixer filter that combines video and pointer information

    * flPointerPosition
      Pointer position filter that obtains mouse position (using DirectInput)

    * flStillPicture
      Still picture filter

    * flTypes
      Class ID Definitions of DirectShow filers, interface definitions, media format definitions

    * flVideoExtract
      Video extraction filter

    * flVideoOverlayMixer
      Video overlay filter that combines two video images having different resolutions and frame rates

    * flVideoQuadSplitter
      4-image Composition. This filer is not used in this tool but can be used for combining four screens

    * flVolumeGraph
      Sound-level graph filter

    * flVolumeIndicator
      Sound-level indicator filter

@@* libimg
      Bitmap image loader library (BMP, TIFF) used in flStillPicture

    * external/libjpeg, external/libpng, external/zlib
      Image loader libraries used in flStillPicture
      Source codes of these libraries are downloadable from external sites.

 * FocusShare Software

    FocusShare body

    * mx\mxCore
      Basic functions of vectors, threads, strings

    * fs\fsCommon
      Common functions that include wrap classes and enumeration classes of DirectShow filters etc.

    * fs\fsMulticastTools
      Multicast transmission classes that include basic functions for remote control and port number arbitration

    * fs\fsMultiReceiver
      Classes for multiple video receivers

    * fs\fsReceiver
      Classes for receiver (client) of FocusShare

    * fs\fsSender
      Classes for sender (server) of FocusShare

    * fs\fsStatus
      Status/control information receiving functions used in FocusShare

    * ui\fsCommonUI
      Common classes used in user interfaces that include graph display, command history, language settings, etc.

    * ui\fsMultiReceiverUI
      User interface classes for multiple video receiver

    * ui\fsReceiverUI
      User interface classes for FocusShare receiver

    * ui\fsSenderUI
      User interface classes for FocusShare sender

    * images
      Bitmap images used in user interfaces of FocusShare

    * lib
      Static libraries of flFilter which are linked with fsMultiastTools and fsStatus

    * include
      Header files of flFilter for compilation

