IDEA Software
Key Features

  • AccuStream product line support
  • Hardware independent
  • C functions
  • AcitveX controls
  • Auto-SYNC Tools library
  • Example programs with source code
  • Royalty-free run-times
Software Support
  • Visual C/C++
  • Visual Basic
  • Windows 7 & 10, 32 & 64 bit
Download Datasheet

IDEA Software

Imaging Development Environment for Applications (IDEA) is a comprehensive set of hardware independent function calls, ActiveX controls, and software tools for board configuration, video control, image capture, video streaming, memory management, and more. IDEA consists of a Software Development Kit (SDK), a Tools library, and example programs with source code. The IDEA SDK provides both C functions and ActiveX controls so that programmers have their choice of utilizing Microsoft Visual C/C++, Visual Basic, or other supported OCX languages.

IDEA Software

IDEA is a hardware independent library providing systems developers and OEMs with the confidence of a single interface to all supported boards, currently the AccuStream product families. Users can write their applications once and support their products and applications using any of the AccuStream frame grabbers. As new hardware is added to these product families, users can support them by adding the appropriate board driver and using any new function calls for new or unique features of that hardware. With IDEA, there is no need to reprogram the developed application.

The SDK includes a series of C functions for frame grabber control and management as well as ActiveX controls for frame grabber information, frame grabber access and control, and video display in a window. The Tools library is a series of function calls that allows programmers to incorporate Auto-SYNC (Foresight Imaging's automatic video analysis and board configuration software) functionality into their application programs. Several example programs, with source code, are included for image capture and display, image saving, triggered capture, video streaming, and more.

Functions List

Board Information

Name Description
nHP_GetBoardInfo Retrieves specified board information.

Image Data Access

Name Description
ihHD_Allocate Allocates frame grabber memory space for a specified image format.
eHP_FBFastRead Copies a block of data from the IDEA frame grabber memory into fpwBuf.
eHP_FBFastWrite Copies a block of data from *fpwBuf into the AccuStream Plus frame grabber memory.
eHP_FBHisto Accumulates histogram data from pixel values in frame grabber memory.

Image Handle

Name Description
eHD_ABOCancel Cancels a previously submitted asynchronous operation.
eHD_ABOGetStatus Retrieves the status of a previously submitted asynchronous operation.
eHD_ABORelease Allows queued operations that are on hold to be executed.
eHD_ABOWait Waits for the asynchronous operation to complete.
eHD_Command Executes the specified command as set up in the specified image handle.
bHD_CommandDone Returns status of Command Done.
eHD_Deallocate Makes a previously allocated image buffer in the frame grabber memory available.
eHD_DeallocateAll Invalidates all image handles assigned to the specified board.
eHD_FBFastReadPixel Transfers any rectangular section of a captured image from the image buffer in frame grabber memory to the application buffer fpwBuf.
eHD_FBHistoPixel Accumulates pixel code histogram data from any rectangular section of a captured image from the image buffer in frame grabber memory to the application buffer fpwBuf.
eHD_RSET_Get Gets the RSET currently in use by an image handle.
eHD_RSET_Set Configures an image handle for use with an Foresight Imaging board.
eHD_SetChannel Changes the channel used with a specified image handle.

Millisecond Timer

Name Description
fine_abswait Returns at a specified date and time.
fine_add Adds two millisecond time values.
fine_ascii_local Converts absolute date/times or elapsed days/milliseconds to an ASCII string.
fine_delta Adds the specified number of milliseconds to the time value.
fine_later Adds the specified number of milliseconds to the current time and stores this value.
fine_now Stores the current date and time.
fine_subtract Subtracts the second argument from the value pointed to by the first argument.
fine_wait Returns after waiting the specified number of milliseconds.

Preparing Board Access

Name Description
bhHP_Claim Sets up board at the specified slot number.
nHP_ClaimAll Scans for up to 15 Foresight Imaging boards and claims all of them.
eHP_Close Prohibits IDEA access to the specified Open Data structure.
_HP_Error Declares that Error wError has been encountered while processing the board handle.
eHP_Open Prepares a board for use by associating it with an Open Data structure.
HP_UnClaim Releases possible claim on a board.

Register Functions

Name Description
HPIout Writes a 16-bit Word into one of the indirect board registers.
HPout Writes a 16-bit Word into one of the direct board registers.
eHD_RSET_Check Checks an RSET structure against mode-specific criteria.
eHP_RSET_FRead Reads the contents of a file containing IDEA video settings data.
eHP_RSET_FWrite Writes the IDEA video settings data to an ASCII file.
eHP_RSET_Set Configures an Foresight Imaging board.
wHPIin Reads a 16-bit Word from the specified indirect register.
wHPin Reads a 16-bit Word from the specified direct register.


Name Description
eHD_ASInitiate Allocates the AS_RUNSTATE structure complex.
eHD_ASTerminate De-allocates the entire AS_RUNSTATE, AS_CHANNEL, RSET complex and completes the Auto-SYNC "session".
bHP_CSyncDetect Reports status of Command Ready.
nHP_Report Provides a list of AccuStream boards found at system start-up.
eHD_SyncSurvey Surveys channels on the AccuStream board looking for composite sync, horizontal sync, vertical sync, and syncless video sources.
HD_VideoAlign Generates a complete RSET structure and then performs the final adjustments for framing, pixel phase alignment, contrast and brightness.
HD_VideoMeasure Makes a preliminary contrast and brightness adjustment and the top, bottom, left and right sides of the image are located.

Video Control

Name Description
eHP_Command Sets up specified command of specified board.
bHP_CommandDone Returns status of Command Done.
eHP_CommandDone Waits up to wTimeout_mS milliseconds for Command Done, then returns.
bHP_CommandReady Returns status of Command Ready.
eHP_CommandReady Waits up to wTimeout_mS milliseconds for Command Ready then returns.
eHD_LiveVideo Starts the Live Video operations.
eHD_NumberFields Sets the current field number.
eHP_SetBlackLevel Sets the Black Level.
eHP_SetChannel Sets the current video signal channel.
eHP_SetGain Sets the Gain Range.
eHD_SetSyncSource Sets the sync source.
eHD_TrackSync Posts a request to the driver to load the RSET values for the channel to the board and begin tracking syncs.

ActiveX Controls

  1. ImaBoardInfo Control

    This is an overview control that provides the application with information about how many and what kinds of boards are present in the system.


    Name Description
    BoardCount Determines the number of boards in the system
    BoardHandle Returns a board type based on the zero-based board index.
    BoardType Returns a board type based on the board index
  2. CImaFG Control

    This is the primary interface for accessing the board. Through this interface, an application is able to access the hardware to initialize the board, perform video-tuning operations and access the video data.


    Name Description
    BitsPerPixel Shows the potential resolution of the frame grabber in bits per pixel.
    BoardHandle Allows displaying or editing of the board handle.
    BoardLocation Displays the location of the board as determined by the device driver.
    BoardType Shows the board type.
    Brightness Changes or retrieves the brightness of the incoming image.
    Contrast Changes or retrieves the contrast of the incoming image.
    FireSnapEvent Informs the control whether or not to fire an event when completing a snap operation.
    FrameGrabDelay Controls the number of milliseconds that should be delayed when doing sequential grabs.
    HardwareProfile The complete path to the Common Hardware Profiles (CHP) database.
    PixelType Tells the control whether to perform single channel monochrome or multi-channel RGB snaps.
    SequenceCount Tells the object how many frames to snap when performing a SnapSequence operation.
    SerialNumber Shows the board serial number.
    SnapMode Determines that type of the snap whether it's the even field, odd field, or both.
    SyncChannel Changes the sync source.
    VideoChannel Changes the video input channel.
    XScaleFactor Controls the scaling of the image as input from the frame grabber.
    YScaleFactor Controls the scaling of the image as input from the frame grabber.


    Name Description
    Close Closes access to the board.
    GetDeviceInfo Returns a structure indicating the number of boards in the system and information about each board.
    GetImageData Retrieves the full image.
    GetImageDIB Returns the currently allocated image handle.
    GetImagePicture Returns a Picture Description suitable for placing in a Visual Basic Picture object.
    GetLine Retrieves a full scanline of the image.
    InitRGB Allows the user to programmatically initialize the parameters for an RGB grab.
    IsVideoDetected Returns a Boolean based on whether or not video is detected on the currently specified video channel/sync channel combination.
    Open Opens the board for access.
    SaveImageToFile Saves the current image to a file.
    SetDisplayWindow Passes the handle of a CImaDisplay to the frame grabber control to enable continuous and automatic update of the display.
    Snap Causes a single frame or field to be snapped into the frame grabber memory.
    SnapRGB Performs three consecutive snaps on three separate channels and combines the image into an RGB bitmap.
    SnapSequence Snaps a sequence of images and transfers to a system buffer.
    StreamCapture Streams video into the buffer.
    TriggeredSnap The hardware is put into a state waiting for a hardware trigger to initiate a capture.


    Name Description
    SnapImage The control fires a SnapImage event on the completion of an image grab.
    ExternalTrigger The control fires an ExternalTrigger event when the trigger is received.
    SequenceComplete The control fires a SequenceComplete event if the application requests the snap of a sequence of images.

    CImaDisplay Control

    This is the interface that an application uses to create a pseudo live video window. This interface controls passing data from the frame grabber into a DirectDraw overlay surface where it is displayed.


    Name Description
    BackColor Determines the default background color of the display window when no image data is being displayed.
    BorderStyle Sets the style of the border of the video window.
    ColorKey Sets the value of the color key when the display mode is using a DirectDraw overlay surface.
    DisplayMode Set the display mode.
    ScaleImageDisplay Determines if the video in the window is scaled to the size of the window or only displays the portion of the video that fits in the window.


    Name Description
    Disable Disables display.
    Enable Enables display.
    GetDC Obtains a display context for mixing graphics with the image data.
    RegisterVideoWindow Takes a window handle for displaying pseudo live video.
    ReleaseDC Releases a display context.
    SetImageHandle Takes the image handle from the frame grabber object and uses it to retrieve the image for display.
    UnregisterVideoWindow Releases the overlay surface and disables tracking.