// MULTICAM.H -- MULTICAM DRIVER API
|
|
#ifndef _MULTICAM_
|
#define _MULTICAM_
|
|
#if defined(WINAPI)
|
#define MCAPI WINAPI
|
#elif defined(__BORLANDC__)
|
#if __BORLANDC__ >= 0x0570
|
#define MCAPI __stdcall
|
#else
|
#define MCAPI stdcall
|
#endif
|
#elif defined(__GNUC__)
|
#define MCAPI
|
#else
|
#define MCAPI _stdcall
|
#endif
|
|
#if defined(DLL_EXPORTS) && defined(__GNUC__)
|
#define DLL_API __attribute__((visibility("default")))
|
#elif defined(DLL_EXPORTS)
|
#define DLL_API __declspec(dllexport) MCAPI
|
#elif defined(__BORLANDC__)
|
#define DLL_API _import MCAPI
|
#elif defined(__GNUC__)
|
#define DLL_API
|
#elif defined(EURESYS_STATIC)
|
#define DLL_API
|
#else
|
#define DLL_API __declspec(dllimport) MCAPI
|
#endif
|
|
// MULTICAM PARAMETERS AND DEFINITIONS
|
#include "McParams.h"
|
#include "McDef.h"
|
#include "McIo.h"
|
#if !defined(DLL_EXPORTS)
|
#include "McParamsCompat1x.h"
|
#endif
|
|
#include "MultiCam_DataTypes.h"
|
|
#ifdef __cplusplus
|
extern "C" {
|
#endif
|
|
typedef int MCSTATUS;
|
typedef UINT32 MCHANDLE, *PMCHANDLE;
|
typedef UINT32 MCPARAMID, *PMCPARAMID;
|
typedef int MCEVENT, MCSIGNAL;
|
|
|
// SIGNALING
|
typedef struct _MC_CALLBACK_INFO {
|
PVOID Context;
|
MCHANDLE Instance;
|
MCSIGNAL Signal;
|
UINT32 SignalInfo;
|
UINT32 SignalContext;
|
} MCSIGNALINFO, *PMCSIGNALINFO, *PMCCALLBACKINFO, MCCALLBACKINFO;
|
|
typedef void (MCAPI *PMCCALLBACK)(PMCSIGNALINFO CbInfo);
|
typedef void (MCAPI *PMCCALLBACKEX)(PVOID Context);
|
|
// OBJECT CLASSES
|
#define MC_SURFACE_CLASS 0x4
|
#define MC_CHANNEL_CLASS 0x8
|
#define MC_CONFIG_CLASS 0x2
|
#define MC_BOARD_CLASS 0xE
|
|
|
// DEFAULT INSTANCE TEMPLATES
|
#define MC_DEFAULT_SURFACE_HANDLE (MCHANDLE)((MC_SURFACE_CLASS << 28) | 0x0FFFFFFF)
|
|
#define MC_CONFIGURATION (MCHANDLE)((MC_CONFIG_CLASS << 28) | 0)
|
|
#define MC_BOARD (MCHANDLE)((MC_BOARD_CLASS << 28) | 0)
|
|
// CHANNEL CREATION MODELS
|
#define MC_CHANNEL (MCHANDLE)((MC_CHANNEL_CLASS << 28) | 0x0000FFFF)
|
#define MC_CHANNEL_ALPHA_X (MCHANDLE)((MC_CHANNEL_CLASS << 28) | 0x0007FFFF)
|
#define MC_CHANNEL_ALPHA_Y (MCHANDLE)((MC_CHANNEL_CLASS << 28) | 0x0008FFFF)
|
#define MC_CHANNEL_ALPHA_XBIS (MCHANDLE)((MC_CHANNEL_CLASS << 28) | 0x0015FFFF)
|
#define MC_CHANNEL_ALPHA_YBIS (MCHANDLE)((MC_CHANNEL_CLASS << 28) | 0x0016FFFF)
|
#define MC_CHANNEL_ALPHA_STEREOXY (MCHANDLE)((MC_CHANNEL_CLASS << 28) | 0x001CFFFF)
|
#define MC_CHANNEL_VALUE_M (MCHANDLE)((MC_CHANNEL_CLASS << 28) | 0x0009FFFF)
|
#define MC_CHANNEL_EXPERT_M (MCHANDLE)((MC_CHANNEL_CLASS << 28) | 0x000AFFFF)
|
#define MC_CHANNEL_EXPERT_A (MCHANDLE)((MC_CHANNEL_CLASS << 28) | 0x000BFFFF)
|
#define MC_CHANNEL_EXPERT_B (MCHANDLE)((MC_CHANNEL_CLASS << 28) | 0x000CFFFF)
|
#define MC_CHANNEL_HARMONY (MCHANDLE)((MC_CHANNEL_CLASS << 28) | 0x001EFFFF)
|
#define MC_CHANNEL_MELODY (MCHANDLE)((MC_CHANNEL_CLASS << 28) | 0x001FFFFF)
|
#define MC_CHANNEL_AVENUE (MCHANDLE)((MC_CHANNEL_CLASS << 28) | 0x0024FFFF)
|
|
|
#if !defined(MC_DYNAMIC_BINDING)
|
|
// STATIC INSTANCE OBJECTS
|
// FUNCTIONS
|
|
// Driver connections
|
MCSTATUS DLL_API McOpenDriver(PCCHAR InstanceName);
|
MCSTATUS DLL_API McCloseDriver(void);
|
|
// Object creation / deletion
|
MCSTATUS DLL_API McCreate(MCHANDLE ModelInstance, PMCHANDLE Instance);
|
MCSTATUS DLL_API McCreateNm(PCCHAR ModelInstanceName, PMCHANDLE Instance);
|
MCSTATUS DLL_API McDelete(MCHANDLE Instance);
|
|
// Acquisition control
|
MCSTATUS DLL_API McStartAcq(void);
|
MCSTATUS DLL_API McStopAcq(void);
|
|
// Parameter handling
|
MCSTATUS DLL_API McSetParamInt(MCHANDLE Instance, MCPARAMID Param, INT32 ValueInt);
|
MCSTATUS DLL_API McSetParamNmInt(MCHANDLE Instance, PCCHAR ParamName, INT32 ValueInt);
|
MCSTATUS DLL_API McSetParamStr(MCHANDLE Instance, MCPARAMID Param, PCCHAR ValueStr);
|
MCSTATUS DLL_API McSetParamNmStr(MCHANDLE Instance, PCCHAR ParamName, PCCHAR ValueStr);
|
MCSTATUS DLL_API McSetParamFloat(MCHANDLE Instance, MCPARAMID Param, FLOAT64 ValueFloat);
|
MCSTATUS DLL_API McSetParamNmFloat(MCHANDLE Instance, PCCHAR ParamName, FLOAT64 ValueFloat);
|
MCSTATUS DLL_API McSetParamInst(MCHANDLE Instance, MCPARAMID Param, MCHANDLE ValueInst);
|
MCSTATUS DLL_API McSetParamNmInst(MCHANDLE Instance, PCCHAR ParamName, MCHANDLE ValueInst);
|
MCSTATUS DLL_API McSetParamPtr(MCHANDLE Instance, MCPARAMID Param, PVOID ValuePtr);
|
MCSTATUS DLL_API McSetParamNmPtr(MCHANDLE Instance, PCCHAR ParamName, PVOID ValuePtr);
|
MCSTATUS DLL_API McSetParamInt64(MCHANDLE Instance, MCPARAMID Param, INT64 ValueInt64);
|
MCSTATUS DLL_API McSetParamNmInt64(MCHANDLE Instance, PCCHAR ParamName, INT64 ValueInt64);
|
|
MCSTATUS DLL_API McGetParamInt(MCHANDLE Instance, MCPARAMID Param, PINT32 ValueInt);
|
MCSTATUS DLL_API McGetParamNmInt(MCHANDLE Instance, PCCHAR ParamName, PINT32 ValueInt);
|
MCSTATUS DLL_API McGetParamStr(MCHANDLE Instance, MCPARAMID Param, PCHAR ValueStr, UINT32 MaxLength);
|
MCSTATUS DLL_API McGetParamNmStr(MCHANDLE Instance, PCCHAR ParamName, PCHAR ValueStr, UINT32 MaxLength);
|
MCSTATUS DLL_API McGetParamFloat(MCHANDLE Instance, MCPARAMID Param, PFLOAT64 ValueFloat);
|
MCSTATUS DLL_API McGetParamNmFloat(MCHANDLE Instance, PCCHAR ParamName, PFLOAT64 ValueFloat);
|
MCSTATUS DLL_API McGetParamInst(MCHANDLE Instance, MCPARAMID Param, PMCHANDLE ValueInst);
|
MCSTATUS DLL_API McGetParamNmInst(MCHANDLE Instance, PCCHAR ParamName, PMCHANDLE ValueInst);
|
MCSTATUS DLL_API McGetParamPtr(MCHANDLE Instance, MCPARAMID Param, PVOID *ValuePtr);
|
MCSTATUS DLL_API McGetParamNmPtr(MCHANDLE Instance, PCCHAR ParamName, PVOID *ValuePtr);
|
MCSTATUS DLL_API McGetParamInt64(MCHANDLE Instance, MCPARAMID Param, PINT64 ValueInt64);
|
MCSTATUS DLL_API McGetParamNmInt64(MCHANDLE Instance, PCCHAR ParamName, PINT64 ValueInt64);
|
|
// Callback registration for an object
|
MCSTATUS DLL_API McRegisterCallback(MCHANDLE Instance, PMCCALLBACK CallBackFunction, PVOID Context);
|
MCSTATUS DLL_API McRegisterCallbackEx(MCHANDLE Instance, PMCCALLBACK CallBackFunction, PMCCALLBACKEX ThreadStart, PMCCALLBACKEX ThreadEnd, PVOID Context);
|
|
// Event Management
|
MCSTATUS DLL_API McWaitSignal(MCHANDLE Instance, MCSIGNAL Signal, UINT32 Timeout, PMCSIGNALINFO Info);
|
MCSTATUS DLL_API McGetSignalInfo(MCHANDLE Instance, MCSIGNAL Signal, PMCSIGNALINFO Info);
|
|
#endif // MC_DYNAMIC_BINDING
|
|
#ifdef __cplusplus
|
}
|
#endif // __cplusplus
|
|
#endif // _MULTICAM_
|