[][src]Struct libeyelink_sys::HOOKFCNS

#[repr(C)]pub struct HOOKFCNS {
    pub setup_cal_display_hook: Option<unsafe extern "C" fn() -> INT16>,
    pub exit_cal_display_hook: Option<unsafe extern "C" fn()>,
    pub record_abort_hide_hook: Option<unsafe extern "C" fn()>,
    pub setup_image_display_hook: Option<unsafe extern "C" fn(width: INT16, height: INT16) -> INT16>,
    pub image_title_hook: Option<unsafe extern "C" fn(threshold: INT16, cam_name: *mut c_char)>,
    pub draw_image_line_hook: Option<unsafe extern "C" fn(width: INT16, line: INT16, totlines: INT16, pixels: *mut byte)>,
    pub set_image_palette_hook: Option<unsafe extern "C" fn(ncolors: INT16, r: *mut byte, g: *mut byte, b: *mut byte)>,
    pub exit_image_display_hook: Option<unsafe extern "C" fn()>,
    pub clear_cal_display_hook: Option<unsafe extern "C" fn()>,
    pub erase_cal_target_hook: Option<unsafe extern "C" fn()>,
    pub draw_cal_target_hook: Option<unsafe extern "C" fn(x: INT16, y: INT16)>,
    pub cal_target_beep_hook: Option<unsafe extern "C" fn()>,
    pub cal_done_beep_hook: Option<unsafe extern "C" fn(error: INT16)>,
    pub dc_done_beep_hook: Option<unsafe extern "C" fn(error: INT16)>,
    pub dc_target_beep_hook: Option<unsafe extern "C" fn()>,
    pub get_input_key_hook: Option<unsafe extern "C" fn(event: *mut InputEvent) -> c_short>,
    pub alert_printf_hook: Option<unsafe extern "C" fn(arg1: *const c_char)>,
}

@ingroup display \brief Structure used set and get callback functions

Structure used set and get callback functions so that the calibration graphics can be drawn.

Fields

setup_cal_display_hook: Option<unsafe extern "C" fn() -> INT16>

This function is called to setup calibration/validation display. This function called before any calibration routines are called.

exit_cal_display_hook: Option<unsafe extern "C" fn()>

This is called to release any resources that are not required beyond calibration. Beyond this call, no calibration functions will be called.

record_abort_hide_hook: Option<unsafe extern "C" fn()>

This function is called if abort of record. It is used to hide display from subject.

setup_image_display_hook: Option<unsafe extern "C" fn(width: INT16, height: INT16) -> INT16>

This function is responsible for initializing any resources that are required for camera setup.

@param width width of the source image to expect. @param height height of the source image to expect. @return -1 if failed, 0 otherwise.

image_title_hook: Option<unsafe extern "C" fn(threshold: INT16, cam_name: *mut c_char)>

This function is called to update any image title change. @param threshold if -1 the entire tile is in the title string otherwise, the threshold of the current image. @param title if threshold is -1, the title contains the whole title for the image. Otherwise only the camera name is given.

draw_image_line_hook: Option<unsafe extern "C" fn(width: INT16, line: INT16, totlines: INT16, pixels: *mut byte)>

This function is called to supply the image line by line from top to bottom.

@param width width of the picture. Essentially, number of bytes in \c pixels. @param line current line of the image @param totlines total number of lines in the image. This will always equal the height of the image. @param pixels pixel data.

Eg. Say we want to extract pixel at position (20,20) and print it out as rgb values.

@code
if(line == 20) // y = 20
{
byte pix = pixels[19];
printf("RGB %d %d %d\n",r[pix],g[pix],b[pix]);
}
@endcode

@remark certain display draw the image up side down. eg. GDI.

set_image_palette_hook: Option<unsafe extern "C" fn(ncolors: INT16, r: *mut byte, g: *mut byte, b: *mut byte)>

This function is called after setup_image_display and before the first call to draw_image_line. This is responsible to setup the palettes to display the camera image.

@param ncolors number of colors in the palette. @param r red component of rgb. @param g blue component of rgb. @param b green component of rgb.

exit_image_display_hook: Option<unsafe extern "C" fn()>

This is called to notify that all camera setup things are complete. Any resources that are allocated in setup_image_display can be released in this function.

clear_cal_display_hook: Option<unsafe extern "C" fn()>

Called to clear the calibration display.

erase_cal_target_hook: Option<unsafe extern "C" fn()>

This function is responsible for erasing the target that was drawn by the last call to draw_cal_target.

draw_cal_target_hook: Option<unsafe extern "C" fn(x: INT16, y: INT16)>

This function is responsible for the drawing of the target for calibration,validation and drift correct at the given coordinate. @param x x coordinate of the target. @param y y coordinate of the target. @remark The x and y are relative to what is sent to the tracker for the command screen_pixel_coords.

cal_target_beep_hook: Option<unsafe extern "C" fn()>

This function is called to signal new target.

cal_done_beep_hook: Option<unsafe extern "C" fn(error: INT16)>

This function is called to signal end of calibration. @param error if non zero, then the calibration has error.

dc_done_beep_hook: Option<unsafe extern "C" fn(error: INT16)>

This function is called to singnal the end of drift correct. @param error if non zero, then the drift correction failed.

dc_target_beep_hook: Option<unsafe extern "C" fn()>

This function is called to signal a new drift correct target.

get_input_key_hook: Option<unsafe extern "C" fn(event: *mut InputEvent) -> c_short>

This is called to check for keyboard input. In this function: \arg check if there are any input events \arg if there are input events, fill key_input and return 1. otherwise return 0. If 1 is returned this will be called again to check for more events.

@param[out] key_input fill in the InputEvent structure to return key,modifier values. @return if there is a key, return 1 otherwise return 0.

@remark Special keys and modifiers should match the following code.

\b Special \b keys:

@code

#define F1_KEY    0x3B00
#define F2_KEY    0x3C00
#define F3_KEY    0x3D00
#define F4_KEY    0x3E00
#define F5_KEY    0x3F00
#define F6_KEY    0x4000
#define F7_KEY    0x4100
#define F8_KEY    0x4200
#define F9_KEY    0x4300
#define F10_KEY   0x4400

#define PAGE_UP    0x4900
#define PAGE_DOWN  0x5100
#define CURS_UP    0x4800
#define CURS_DOWN  0x5000
#define CURS_LEFT  0x4B00
#define CURS_RIGHT 0x4D00

#define ESC_KEY   0x001B
#define ENTER_KEY 0x000D

@endcode

Modifier: If you are using SDL you do not need to modify the modifier value as they match the value.

@code

#define ELKMOD_NONE   0x0000
#define ELKMOD_LSHIFT 0x0001
#define ELKMOD_RSHIFT 0x0002
#define ELKMOD_LCTRL  0x0040
#define ELKMOD_RCTRL  0x0080
#define ELKMOD_LALT   0x0100
#define ELKMOD_RALT   0x0200
#define ELKMOD_LMETA  0x0400
#define ELKMOD_RMETA  0x0800,
#define ELKMOD_NUM    0x1000
#define ELKMOD_CAPS   0x2000
#define ELKMOD_MODE   0x4000

@endcode
alert_printf_hook: Option<unsafe extern "C" fn(arg1: *const c_char)>

This function is called whenever alert_printf is called. In windows, if no callback is set calls MessageBox function. In other platforms, if no call back is set prints out to console.

Trait Implementations

impl Clone for HOOKFCNS[src]

impl Copy for HOOKFCNS[src]

impl Debug for HOOKFCNS[src]

impl Default for HOOKFCNS[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.