nt9856x/code/lib/include/nvtcfg_define.h
2023-03-28 15:07:53 +08:00

1557 lines
47 KiB
C
Executable File

#ifndef _NVTCFG_DEFINE_H
#define _NVTCFG_DEFINE_H
/*
Copyright (c) 2015~ Novatek Microelectronics Corporation
@file nvtcfg_define.h
@version
@date
*/
#include <stdio.h>
#include <time.h>
#include "nvt_type.h"
#ifdef __cplusplus
extern "C" {
#endif
#ifdef _FIRMWARE_VERSION_
#define FIRMWARE_VERSION _FIRMWARE_VERSION_
#else
#define FIRMWARE_VERSION "v1.01.001"
#endif
#ifdef _MANUFACTURER_
#define MANUFACTURER _MANUFACTURER_
#else
#define MANUFACTURER "Novatek"
#endif
#ifdef _MODEL_NAME_
#define MODEL_NAME _MODEL_NAME_
#else
#define MODEL_NAME "9668X_IPCAM"
#endif
#if 1
#define LONG64 long long
/* xsd:boolean */
enum xsd__boolean {xsd__boolean__false_ = 0, xsd__boolean__true_ = 1};
/* tt:FactoryDefaultType */
enum tt__FactoryDefaultType {tt__FactoryDefaultType__Hard = 0, tt__FactoryDefaultType__Soft = 1};
/* tt:NetworkProtocolType */
enum tt__NetworkProtocolType {tt__NetworkProtocolType__HTTP = 0, tt__NetworkProtocolType__HTTPS = 1, tt__NetworkProtocolType__RTSP = 2};
/* tt:ScopeDefinition */
enum tt__ScopeDefinition {tt__ScopeDefinition__Fixed = 0, tt__ScopeDefinition__Configurable = 1};
/* tt:DiscoveryMode */
enum tt__DiscoveryMode {tt__DiscoveryMode__NonDiscoverable = 0, tt__DiscoveryMode__Discoverable = 1};
/* tt:VideoEncoding */
enum tt__VideoEncoding {tt__VideoEncoding__JPEG = 0, tt__VideoEncoding__MPEG4 = 1, tt__VideoEncoding__H264 = 2, tt__VideoEncoding__H265 = 3};
/* tt:RateControlMode */
enum tt__RateControlMode {tt__RateControlMode__CBR = 0, tt__RateControlMode__VBR = 1};
/* tt:Mpeg4Profile */
enum tt__Mpeg4Profile {tt__Mpeg4Profile__SP = 0, tt__Mpeg4Profile__ASP = 1};
/* tt:H264Profile */
enum tt__H264Profile {tt__H264Profile__Baseline = 0, tt__H264Profile__Main = 1, tt__H264Profile__Extended = 2, tt__H264Profile__High = 3};
/* tt:AudioDulpexMode */
enum tt__AudioDulpexMode {tt__AudioDulpexMode__Full = 0, tt__AudioDulpexMode__Half = 1};
/* tt:AudioEncoding */
enum tt__AudioEncoding {tt__AudioEncoding__G711 = 0, tt__AudioEncoding__G726 = 1, tt__AudioEncoding__AAC = 2, tt__AudioEncoding__G711alaw = 3, tt__AudioEncoding__PCM = 4, tt__AudioEncoding__PPCM = 5};
/* tt:SendPrimacy */
enum tt__SendPrimacy {tt__SendPrimacy__Audio__Server = 0, tt__SendPrimacy__Audio__Client = 1, tt__SendPrimacy__Audio__Auto = 2};
/* tt:AudioOutputTarget */
enum tt__AudioOutputTarget {tt__AudioOutputTarget__LineOut = 0, tt__AudioOutputTarget__Speaker = 1};
/* tt:NetworkHostType */
enum tt__NetworkHostType {tt__NetworkHostType__IPv4 = 0, tt__NetworkHostType__IPv6 = 1, tt__NetworkHostType__DNS = 2};
/* tt:DataTimeType */
enum tt__DataTimeType {tt__DataTimeType__Manual = 0, tt__DataTimeType__NTP = 1};
/* tt:NTPUpdatePeriod */
enum tt__NTPUpdateCycle {tt__NTPUpdateCycle__hourly = 0, tt__NTPUpdateCycle__daily = 1, tt__NTPUpdateCycle__weekly = 2, tt__NTPUpdateCycle__monthly = 3, tt__NTPUpdateCycle__max = 4};
/* tt:ColorMode */
enum tt__ColorMode {tt__ColorMode__Normal = 0, tt__ColorMode__Gray = 1};
/* tt:OsdUserTextPos */
enum tt__OsdUserTextPos {tt__OsdUserTextPos__UpperLeft = 0, tt__OsdUserTextPos__UpperRight = 1, tt__OsdUserTextPos__LowerLeft = 2, tt__OsdUserTextPos__LowerRight = 3, };
/* tt:OsdDateTimeFmt */
enum tt__OsdDateTimeFmt {tt__OsdDateTimeFmt1 = 0, //YYYY/MM/DD - HH:MM:SS
tt__OsdDateTimeFmt2 = 1, //MM/DD/YYYY - HH:MM:SS
tt__OsdDateTimeFmt3 = 2, //HH:MM:SS - YYYY/MM/DD
tt__OsdDateTimeFmt4 = 3, //HH:MM:SS - MM/DD/YYYY
};
enum tt__UserLevel
{
tt__UserLevel__Anonymous = 1, ///< xs:string value="Anonymous"
tt__UserLevel__User, ///< xs:string value="User"
tt__UserLevel__Operator, ///< xs:string value="Operator"
tt__UserLevel__Administrator, ///< xs:string value="Administrator"
tt__UserLevel__Extended, ///< xs:string value="Extended"
};
/* tt:VideoResolution */
struct tt__VideoResolution
{
int Width; /* required element of type xsd:int */
int Height; /* required element of type xsd:int */
};
/* tt:IntRange */
struct tt__IntRange
{
int Min; /* required element of type xsd:int */
int Max; /* required element of type xsd:int */
};
/* tt:VideoRateControl */
struct tt__VideoRateControl
{
enum tt__RateControlMode RateControlMode; /* required element of type tt:RateControlMode */
int FrameRateLimit; /* required element of type xsd:int */
int EncodingInterval; /* required element of type xsd:int */
int BitrateLimit; /* required element of type xsd:int */
};
/* tt:VideoCropControl */
struct tt__VideoCropControl
{
enum xsd__boolean Enable; /* required element of type xsd:boolean */
int CoordinateX; /* required element of type xsd:int */
int CoordinateY; /* required element of type xsd:int */
};
/* tt:Mpeg4Configuration */
struct tt__Mpeg4Configuration
{
int GovLength; /* required element of type xsd:int */
enum tt__Mpeg4Profile Mpeg4Profile; /* required element of type tt:Mpeg4Profile */
};
/* tt:H264Configuration */
struct tt__H264Configuration
{
int GovLength; /* required element of type xsd:int */
enum tt__H264Profile H264Profile; /* required element of type tt:H264Profile */
};
struct tt__IntRectangle
{
int x; /* required attribute of type xsd:int */
int y; /* required attribute of type xsd:int */
int width; /* required attribute of type xsd:int */
int height; /* required attribute of type xsd:int */
};
struct tt__PTZFilter
{
enum xsd__boolean Status; /* required element of type xsd:boolean */
enum xsd__boolean Position; /* required element of type xsd:boolean */
char *__anyAttribute; /* optional attribute of type xsd:anyType */
};
struct tt__EventSubscription
{
struct wsnt__FilterType *Filter; /* optional element of type wsnt:FilterType */
struct _tt__EventSubscription_SubscriptionPolicy *SubscriptionPolicy; /* optional element of type tt:EventSubscription-SubscriptionPolicy */
int __size; /* sequence of elements <-any> */
char **__any;
char *__anyAttribute; /* optional attribute of type xsd:anyType */
};
#endif
#define SMALL_INFO_LENGTH 20
#define IP_LENGTH 20
#define MAC_LENGTH 6
#define MACH_ADDR_LENGTH 32
#define INFO_LENGTH 100
#define LARGE_INFO_LENGTH 100
#define ONVIF_VERSION_MAJOR 2
#define ONVIF_VERSION_MINOR 4
#define TRUE 1
#define FALSE 0
// user
#define USER_MAX_NUM 5
#define USER_NAME_MAX_LEN 32
#define USER_PWD_MAX_LEN 32
#define USER_NAME_MIN_LEN 5
#define USER_PWD_MIN_LEN 8
// discovery
#define SCOPE_MAX_NUM 8
#define SCOPE_ITEM_MAX_LEN 64
#define PROBE_TYPES_MAX_LEN 64
// network
#define HOSTNAME_MAX_LEN 253 // RFC 1123 section 2.1
#define HOSTNAMECONFIGFILE "/etc/hostname"
#define DNS_MAX_COUNT 4
#define INTERFACE_NAME_MAX_LEN 10
#define SEARCH_DOMAIN_MAX_LEN 64
#define DNSCONFIGFILE "/etc/resolv.conf"
#define DNSKEYWORD "nameserver"
#define DNSSEARCH "search"
#define PROTOCOL_COUNT 3
// event
#define EVENT_FILTER_TYPE_TOPIC 0
#define EVENT_FILTER_TYPE_MESSAGE 1
#define EVENT_MAX_NOTIFY_PRODUCERS 6
#define EVENT_MAX_PULL_POINTS 6
#define EVENT_NOTIFY_START_IDX 0
#define EVENT_NOTIFY_END_IDX EVENT_MAX_NOTIFY_PRODUCERS-1
#define EVENT_PULLPOINT_START_IDX EVENT_MAX_NOTIFY_PRODUCERS
#define EVENT_PULLPOINT_END_IDX EVENT_MAX_NOTIFY_PRODUCERS+EVENT_MAX_PULL_POINTS-1
#define EVENT_START_IDX 0
#define EVENT_END_IDX EVENT_MAX_NOTIFY_PRODUCERS+EVENT_MAX_PULL_POINTS-1
#define EVENT_MAX_NUM EVENT_MAX_NOTIFY_PRODUCERS+EVENT_MAX_PULL_POINTS
#define EVENT_DEFAULT_TIMEOUT 60
#define EVENT_MAX_MESSAGE_LIMIT (3)//temp
#define EVENT_MAX_MESSAGE_TIMEOUT (120)//Shall at least support a Timeout of one minute.
#define TOPIC_0_NAME "tns1:Device/Trigger/DigitalInput"
#define TOPIC_0_SOURCE_NUM 1
#define TOPIC_0_SOURCE_0_NAME "InputToken"
#define TOPIC_0_SOURCE_0_NAME_VALUE "DI_Name1"
#define TOPIC_0_SOURCE_0_TYPE "tt:ReferenceToken"
#define TOPIC_0_KEY_NUM 0
#define TOPIC_0_KEY_0_NAME "Topic0KeyName"
#define TOPIC_0_KEY_0_TYPE "Topic0KeyType"
#define TOPIC_0_DATA_NUM 1
#define TOPIC_0_DATA_0_NAME "LogicalState"
#define TOPIC_0_DATA_0_TYPE "xs:boolean"
#define TOPIC_1_NAME "tns1:VideoSource/MotionAlarm"
#define TOPIC_1_SOURCE_NUM 1
#define TOPIC_1_SOURCE_0_NAME "Source"
#define TOPIC_1_SOURCE_0_NAME_VALUE "MD_Name1"
#define TOPIC_1_SOURCE_0_TYPE "tt:ReferenceToken"
#define TOPIC_1_KEY_NUM 0
#define TOPIC_1_KEY_0_NAME "Topic0KeyName"
#define TOPIC_1_KEY_0_TYPE "Topic0KeyType"
#define TOPIC_1_DATA_NUM 1
#define TOPIC_1_DATA_0_NAME "State"
#define TOPIC_1_DATA_0_TYPE "xs:boolean"
#define EVENT_TOPIC_MOTION 1
#define EVENT_TOPIC_ALARM_INPUT 2
// media service
#define MEDIA_VIDEO_SOURCE_CONFIG_MAX_NUM 2
#define MEDIA_VIDEO_SOURCE_MAX_NUM 1
#define MEDIA_VIDEO_ENCODER_CONFIG_MAX_NUM 16
#define MEDIA_AUDIO_SOURCE_CONFIG_MAX_NUM 1
#define MEDIA_AUDIO_SOURCE_MAX_NUM 1
#define MEDIA_AUDIO_ENCODER_CONFIG_OPTIONS_MAX_NUM 2
#define MEDIA_AUDIO_ENCODER_CONFIG_MAX_NUM 2
#define MEDIA_AUDIO_BITRATE_MAX_NUM 2
#define MEDIA_AUDIO_SAMPLERATE_MAX_NUM 2
#define MEDIA_AUDIO_OUTPUT_CONFIG_MAX_NUM 1
#define MEDIA_AUDIO_OUTPUT_MAX_NUM 1
#define MEDIA_METADATA_CONFIG_MAX_NUM 1
#define MEDIA_PROFILE_MAX_NUM 3
#define MEDIA_NAME_MAX_LEN 64
#define MEDIA_TOKEN_MAX_LEN 64
#define VIDEO_SOURCE_TOKEN_AVAILABLE_NUM 1
#define AUDIO_SOURCE_TOKEN_AVAILABLE_NUM 1
#define AUDIO_OUTPUT_TOKEN_AVAILABLE_NUM 1
#define JPEG_RESOLUTION_MAX_NUM 5
#define MPEG4_RESOLUTION_MAX_NUM 1
#define H264_RESOLUTION_MAX_NUM 5
#define OSD_USER_TEXT_MAX_NUM 16
#define OSD_MAX_CHANNEL (MEDIA_PROFILE_MAX_NUM + 1) //+HDMI
#define OSD_HDMI_CHANNEL (OSD_MAX_CHANNEL - 1) //+HDMI
// ptz service
#define PTZ_TOKEN_MAX_LEN 64
#define MEDIA_PTZ_CONFIG_MAX_NUM 1
#define PTZ_PRESET_MAX_NUM 3
#define PTZ_MAX_NUM 1
// date time
#define FAKE_DST_STRING "M1.1.0,M1.1.1"
typedef struct
{
int isValid;
char Username[USER_NAME_MAX_LEN+1]; /* required element of type xsd:string */
char Password[USER_PWD_MAX_LEN+1]; /* optional element of type xsd:string */
enum tt__UserLevel UserLevel; /* required element of type tt:UserLevel */
}ONVIF_USER;
typedef struct
{
enum tt__ScopeDefinition ScopeDef; /* required element of type tt:ScopeDefinition */
char ScopeItem[SCOPE_ITEM_MAX_LEN+1]; /* required element of type xsd:anyURI */
}ONVIF_SCOPE;
typedef struct
{
enum tt__DiscoveryMode DiscoveryMode; //{tt__DiscoveryMode__Discoverable
ONVIF_SCOPE scopeList[SCOPE_MAX_NUM];
char ProbeTypes[PROBE_TYPES_MAX_LEN];
}ONVIF_DEVICE_DISCOVERY;
typedef struct
{
char Manufacturer[33];
char Model[33];
char FirmwareVersion[11];
char SerialNumber[17];
char HardwareId[17];
}ONVIF_DEVICE_INFO;
typedef struct
{
char name[INTERFACE_NAME_MAX_LEN+1];
char IP[IP_LENGTH+1];
char BroadIP[IP_LENGTH+1];
unsigned char MAC[MAC_LENGTH+1];
char Mask[IP_LENGTH+1];
char GW[IP_LENGTH+1];
enum xsd__boolean DHCPServerEnable;
enum xsd__boolean fromDHCP;
char linkLocal[IP_LENGTH+1];
}ONVIF_NETWORK_INTERFACE_INFO;
typedef struct
{
int isSupport;
enum tt__NetworkProtocolType Type;
int port;
int Enable;
}ONVIF_NETWORK_PROTOCOL_INFO;
typedef struct
{
enum xsd__boolean rtspAuth;
}ONVIF_NETWORK_AUTH_INFO;
typedef struct
{
int isfromDHCP;
enum tt__NetworkHostType NetworkHostType;
char ServerAddress[32];
}ONVIF_NTP_INFO;
typedef struct
{
char hostname[HOSTNAME_MAX_LEN+1];
char DNS1[IP_LENGTH+1];
char DNS2[IP_LENGTH+1];
int DNSfromDHCP;
ONVIF_NETWORK_INTERFACE_INFO interfaceInfo;
ONVIF_NETWORK_PROTOCOL_INFO protocolInfo[PROTOCOL_COUNT];
ONVIF_NTP_INFO NTPInfo;
ONVIF_NETWORK_AUTH_INFO authInfo;
}ONVIF_NETWORK_INFO;
typedef struct
{
int subscribed;
int triggered;
int initTimeout;
time_t expiretime;
char topicFilter[INFO_LENGTH+1];
char messageFilter[INFO_LENGTH+1];
char consumerEndPoint[INFO_LENGTH+1];
}ONVIF_EVENT_INFO;
typedef struct
{
struct tt__VideoResolution ResolutionsAvailable[JPEG_RESOLUTION_MAX_NUM];
struct tt__IntRange FrameRateRange;
struct tt__IntRange EncodingIntervalRange;
struct tt__IntRange BitRateRange;
}ONVIF_VIDEO_ENCODER_JPEG_OPTIONS;
typedef struct
{
struct tt__VideoResolution ResolutionsAvailable[MPEG4_RESOLUTION_MAX_NUM];
struct tt__IntRange GovLengthRange;
struct tt__IntRange FrameRateRange;
struct tt__IntRange EncodingIntervalRange;
struct tt__IntRange BitRateRange;
}ONVIF_VIDEO_ENCODER_MPEG4_OPTIONS;
typedef struct
{
struct tt__VideoResolution ResolutionsAvailable[H264_RESOLUTION_MAX_NUM];
struct tt__IntRange GovLengthRange;
struct tt__IntRange FrameRateRange;
struct tt__IntRange EncodingIntervalRange;
struct tt__IntRange BitRateRange;
}ONVIF_VIDEO_ENCODER_H264_OPTIONS;
typedef struct
{
ONVIF_VIDEO_ENCODER_JPEG_OPTIONS jpegOptions;
ONVIF_VIDEO_ENCODER_MPEG4_OPTIONS mpeg4Options;
ONVIF_VIDEO_ENCODER_H264_OPTIONS h264Options;
}ONVIF_VIDEO_ENCODER_CONFIG_OPTIONS;
typedef struct
{
char Address[IP_LENGTH+1];
int Port;
int TTL;
enum xsd__boolean AutoStart;
}ONVIF_MEDIA_MULTICAST_CONFIG;
typedef struct
{
char Name[MEDIA_NAME_MAX_LEN+1];
int UseCount;
char token[MEDIA_TOKEN_MAX_LEN+1];
enum tt__VideoEncoding Encoding;
struct tt__VideoResolution Resolution;
struct tt__VideoResolution MaxResolution;
float Quality;
struct tt__VideoRateControl RateControl;
struct tt__VideoCropControl CropControl;
struct tt__Mpeg4Configuration MPEG4;
struct tt__H264Configuration H264;
ONVIF_MEDIA_MULTICAST_CONFIG Multicast;
LONG64 SessionTimeout;
}ONVIF_VIDEO_ENCODER_CONFIG;
typedef struct
{
int TotalNumber;
int JPEG;
int H264;
int MPEG4;
}ONVIF_VIDEO_ENCODE_INSTANCE_NUM;
typedef struct
{
struct tt__IntRange XRange;
struct tt__IntRange YRange;
struct tt__IntRange WidthRange;
struct tt__IntRange HeightRange;
char VideoSourceTokensAvailable[VIDEO_SOURCE_TOKEN_AVAILABLE_NUM][MEDIA_TOKEN_MAX_LEN+1];
}ONVIF_VIDEO_SOURCE_CONFIG_OPTIONS;
typedef struct
{
char Name[MEDIA_NAME_MAX_LEN+1];
int UseCount;
char token[MEDIA_TOKEN_MAX_LEN+1];
char SourceToken[MEDIA_TOKEN_MAX_LEN+1];
struct tt__IntRectangle Bounds;
ONVIF_VIDEO_ENCODE_INSTANCE_NUM VideoEncodeInstanceNum;
}ONVIF_VIDEO_SOURCE_CONFIG;
typedef struct
{
char token[MEDIA_TOKEN_MAX_LEN+1];
float Framerate;
struct tt__VideoResolution Resolution;
}ONVIF_VIDEO_SOURCE;
/* tt:CVBSMode */
enum tt__CVBSMode {tt__CVBSMode__OFF = 0, tt__CVBSMode__NTSC = 1, tt__CVBSMode__PAL = 2};
typedef struct
{
enum tt__CVBSMode CVBSMode;
}CVBS_OUTPUT;
typedef struct
{
CVBS_OUTPUT CVBSOutput;
}ONVIF_VIDEO_OUTPUT;
typedef struct
{
char InputTokensAvailable[AUDIO_SOURCE_TOKEN_AVAILABLE_NUM][MEDIA_TOKEN_MAX_LEN+1];
}ONVIF_AUDIO_SOURCE_CONFIG_OPTIONS;
typedef struct
{
char Name[MEDIA_NAME_MAX_LEN+1];
int UseCount;
char token[MEDIA_TOKEN_MAX_LEN+1];
char SourceToken[MEDIA_TOKEN_MAX_LEN+1];
int Volume;
enum tt__AudioDulpexMode DulpexMode;
}ONVIF_AUDIO_SOURCE_CONFIG;
typedef struct
{
char token[MEDIA_TOKEN_MAX_LEN+1];
int Channels;
}ONVIF_AUDIO_SOURCE;
typedef struct
{
enum tt__AudioEncoding Encoding;
int SizeofBitrate;
int BitrateList[MEDIA_AUDIO_BITRATE_MAX_NUM]; // kbps
int SizeofSampleRate;
int SampleRateList[MEDIA_AUDIO_SAMPLERATE_MAX_NUM]; // kHz
}ONVIF_AUDIO_ENCODER_CONFIG_OPTIONS;
typedef struct
{
char Name[MEDIA_NAME_MAX_LEN+1];
int UseCount;
char token[MEDIA_TOKEN_MAX_LEN+1];
enum tt__AudioEncoding Encoding;
int Bitrate; // kbps
float SampleRate; // kHz
ONVIF_MEDIA_MULTICAST_CONFIG Multicast;
LONG64 SessionTimeout;
}ONVIF_AUDIO_ENCODER_CONFIG;
typedef struct
{
char TokensAvailable[AUDIO_OUTPUT_TOKEN_AVAILABLE_NUM][MEDIA_TOKEN_MAX_LEN+1];
enum tt__SendPrimacy SendPrimacy;
struct tt__IntRange outputlevelrange;// Range of values greater equal Min value and less equal Max value.
}ONVIF_AUDIO_OUTPUT_CONFIG_OPTIONS;
typedef struct
{
char Name[MEDIA_NAME_MAX_LEN+1];
int UseCount;
char token[MEDIA_TOKEN_MAX_LEN+1];
char OutputToken[MEDIA_TOKEN_MAX_LEN+1];
enum tt__SendPrimacy SendPrimacy;
enum tt__AudioOutputTarget OutputTarget;
int OutputLevel;
}ONVIF_AUDIO_OUTPUT_CONFIG;
typedef struct
{
char token[MEDIA_TOKEN_MAX_LEN+1];
}ONVIF_AUDIO_OUTPUT;
typedef struct
{
char Name[MEDIA_NAME_MAX_LEN+1];
int UseCount;
char token[MEDIA_TOKEN_MAX_LEN+1];
struct tt__PTZFilter PTZStatus;
struct tt__EventSubscription Events;
ONVIF_MEDIA_MULTICAST_CONFIG Multicast;
LONG64 SessionTimeout;
}ONVIF_METADATA_CONFIG;
typedef struct
{
char Name[MEDIA_NAME_MAX_LEN+1];
char token[MEDIA_TOKEN_MAX_LEN+1];
enum xsd__boolean fixed;
char VideoEncoderConfigToken[MEDIA_TOKEN_MAX_LEN+1];
char VideoSourceConfigToken[MEDIA_TOKEN_MAX_LEN+1];
char AudioEncoderConfigToken[MEDIA_TOKEN_MAX_LEN+1];
char AudioSourceConfigToken[MEDIA_TOKEN_MAX_LEN+1];
char AudioOutputConfigToken[MEDIA_TOKEN_MAX_LEN+1];
char MetadataConfigToken[MEDIA_TOKEN_MAX_LEN+1];
char PtzConfigToken[MEDIA_TOKEN_MAX_LEN+1];
struct tt__VideoResolution MaxResolution;
}ONVIF_MEDIA_PROFILE;
typedef struct
{
unsigned long UserText[OSD_USER_TEXT_MAX_NUM+1];
enum tt__OsdUserTextPos OsdUserTextPos;
int FontSize;
int DateTime_On;
int UserText_On;
unsigned int FontColor;
enum tt__OsdDateTimeFmt OsdDateTimeFmt;
int ImgWidth;
int ImgHeight;
}OSD_CONFIG;
typedef struct
{
char rtspServerIP[IP_LENGTH+1];
char rtspMulticastIP[IP_LENGTH+1];
}
ONVIF_STREAM_INFO;
//////////////////////////////////////////////////////////////
//
// PTZ PART
//
/////////////////////////////////////////////////////////////
/* tt:PTZSpace */
enum tt__PTZSpace
{
tt__NSS = 0, //not support space
tt__PT_PositionGenericSpace = 1,
tt__PT_TranslationGenericSpace = 2,
tt__PT_SphericalTranslationSpaceDegrees = 3,
tt__PT_TranslationSpaceFov = 4,
tt__PT_VelocityGenericSpace = 5,
tt__PT_GenericSpeedSpace = 6,
tt__PT_SphericalPositionSpace = 7,
tt__Z_PositionGenericSpace = 8,
tt__Z_TranslationGenericSpace = 9,
tt__Z_VelocityGenericSpace = 10,
tt__Z_ZoomGenericSpeedSpace = 11
};
enum tt__PTZ_TOUR_DIRECTION
{
tt__PTZ_TOUR_DIRECTION_UNUSED = 0,
tt__PTZ_TOUR_DIRECTION_FORWARD,
tt__PTZ_TOUR_DIRECTION_BACKWARD,
tt__PTZ_TOUR_DIRECTION_EXTENEDED
}
;
enum tt__PTZ_ELIIP
{
tt__PTZ_ELIIP_UNUSED = 0,
tt__PTZ_ELIIP_OFF,
tt__PTZ_ELIIP_ON,
tt__PTZ_ELIIP_EXTENEDED,
}
;
enum tt__PTZ_REVERSE
{
tt__PTZ_REVERSE_UNUSED = 0,
tt__PTZ_REVERSE_OFF,
tt__PTZ_REVERSE_ON,
tt__PTZ_REVERSE_AUTO,
tt__PTZ_REVERSE_EXTENEDED,
}
;
enum tt__PTZ_RS485_PROTOCOL
{
tt__PTZ_RS485_PROTOCOL_PELCO_D,
tt__PTZ_RS485_PROTOCOL_PELCO_P,
tt__PTZ_RS485_PROTOCOL_PELCO_MAX,
}
;
enum tt__RS485_BAUDRATE
{
tt__RS485_BAUDRATE_110 = 110,
tt__RS485_BAUDRATE_300 = 300,
tt__RS485_BAUDRATE_600 = 600,
tt__RS485_BAUDRATE_1200 = 1200,
tt__RS485_BAUDRATE_2400 = 2400,
tt__RS485_BAUDRATE_4800 = 4800,
tt__RS485_BAUDRATE_9600 = 9600,
tt__RS485_BAUDRATE_19200 = 19200,
tt__RS485_BAUDRATE_38400 = 38400,
tt__RS485_BAUDRATE_57600 = 57600,
tt__RS485_BAUDRATE_115200 = 115200,
tt__RS485_BAUDRATE_MAX,
}
;
enum tt__RS485_DATA_BIT
{
tt__RS485_DATA_BIT_5 = 5,
tt__RS485_DATA_BIT_6 = 6,
tt__RS485_DATA_BIT_7 = 7,
tt__RS485_DATA_BIT_8 = 8,
tt__RS485_DATA_BIT_MAX,
}
;
enum tt__RS485_PARITY_BIT
{
tt__RS485_PARITY_BIT_NONE,
tt__RS485_PARITY_BIT_ODD,
tt__RS485_PARITY_BIT_EVEN,
tt__RS485_PARITY_BIT_SPACE,
tt__RS485_PARITY_BIT_MAX,
}
;
enum tt__RS485_STOP_BIT
{
tt__RS485_STOP_BIT_1 = 1,
tt__RS485_STOP_BIT_2 = 2,
tt__RS485_DATABIT_MAX,
}
;
/* tt:FloatRange */
typedef struct
{
int bUsed;
float Min; /* required element of type xsd:float */
float Max; /* required element of type xsd:float */
}
tt__FloatRange;
typedef struct _ONVIF_VECTOR_2D
{
enum tt__PTZSpace Space;
float x_float;
float y_float;
}
ONVIF_VECTOR_2D;
typedef struct _ONVIF_VECTOR_1D
{
enum tt__PTZSpace Space;
float x_float;
}
ONVIF_VECTOR_1D;
typedef struct
{
ONVIF_VECTOR_2D PT_pVector;
ONVIF_VECTOR_1D Z_pVector;
}
ONVIF_PTZ_SPEED;
typedef struct
{
enum tt__PTZSpace anySpace; // A URI of coordinate systems, [1~1]
tt__FloatRange xrange; // A range of x-axis, [1~1]
tt__FloatRange yrange; // A range of y-axis, [1~1]
}
ONVIF_SPACE2D_DESC;
typedef struct
{
enum tt__PTZSpace anySpace; // A URI of coordinate systems, [1~1]
tt__FloatRange xrange; // A range of x-axis, [1~1]
}
ONVIF_SPACE1D_DESC;
typedef struct
{
ONVIF_SPACE2D_DESC range; // A range of pan tilt limits, [1~1]
}
ONVIF_PT_LIMIT;
typedef struct
{
ONVIF_SPACE1D_DESC range; // A range of zoom limit, [1~1]
}
ONVIF_Z_LIMIT;
typedef struct
{
char min[10]; // Range of duration greater equal Min duration and less equal Max duration, [1~1]
char max[10]; // Range of duration greater equal Min duration and less equal Max duration, [1~1]
}
ONVIF_PTZ_DURATION_RANGE;
#define PTZ_COUNT 16
typedef struct
{
enum tt__PTZ_ELIIP EflipMode; // config just only index = 0
enum tt__PTZ_REVERSE ReverseMode; // config just only index = 0
}
ONVIF_PTZ_PTCTRL_DIRECTION;
typedef struct
{
ONVIF_PTZ_PTCTRL_DIRECTION PTDirect;
}
ONVIF_PTZ_EXTENSION;
typedef struct
{
ONVIF_SPACE2D_DESC BoundAbsolutePantTiltPositionSpace;
ONVIF_SPACE1D_DESC BoundAbsoluteZoomPositionSpace;
ONVIF_SPACE2D_DESC BoundRelativePanTiltTranslationSpace;
ONVIF_SPACE1D_DESC BoundRelativeZoomTranslationSpace;
ONVIF_SPACE2D_DESC BoundContinuousPanTiltVelocitySpace;
ONVIF_SPACE1D_DESC BoundContinuousZoomVelocitySpace;
ONVIF_SPACE1D_DESC BoundPTSpeed;
ONVIF_SPACE1D_DESC BoundZSpeed;
}
ONVIF_PTZ_SPACE_BOUND;
typedef struct
{
ONVIF_PTZ_SPACE_BOUND PTZSpaceBound;
#if 0
ONVIF_PTZ_DURATION_RANGE PTZTimeout;
ONVIF_PTZ_PTCTRL_DIRECTION PTDirect;
#endif
}
ONVIF_PTZ_CONFIG_OPTIONS;
typedef struct
{
unsigned int ttyNumber;
unsigned int deviceID;
enum tt__PTZ_RS485_PROTOCOL protocol;
enum tt__RS485_BAUDRATE baudrate;
enum tt__RS485_DATA_BIT dataBit;
enum tt__RS485_STOP_BIT stopBit;
enum tt__RS485_PARITY_BIT parityBit;
}
ONVIF_RS485_CONFIG;
typedef struct
{
char nodeToken[PTZ_TOKEN_MAX_LEN+1];
char token[PTZ_TOKEN_MAX_LEN+1];
char Name[PTZ_TOKEN_MAX_LEN+1];
int UseCount;
enum tt__PTZSpace DefaultAbsolutePantTiltPositionSpace; //if supports absolute Pan/Tilt movements
enum tt__PTZSpace DefaultAbsoluteZoomPositionSpace; //if supports absolute zoom movements
enum tt__PTZSpace DefaultRelativePanTiltTranslationSpace; //if supports relative Pan/Tilt movements
enum tt__PTZSpace DefaultRelativeZoomTranslationSpace; //if supports relative zoom movements
enum tt__PTZSpace DefaultContinuousPanTiltVelocitySpace; //if supports continuous Pan/Tilt movements
enum tt__PTZSpace DefaultContinuousZoomVelocitySpace; //if supports continuous zoom movements
ONVIF_PTZ_SPEED DefaultPTZSpeed; //if supports absolute or relative PTZ movements
char DefaultPTZTimeout[10]; //if supports continuous movements
ONVIF_PT_LIMIT PanTiltLimits;//if supports an absolute Pan/Tilt
ONVIF_Z_LIMIT ZoomLimits; //if supports absolute zoom
ONVIF_RS485_CONFIG RS485Config;
#if 0
ONVIF_PTZ_EXTENSION Extension;
#endif
int isForcePersistence;
}
ONVIF_PTZ_CONFIG;
typedef struct
{
ONVIF_VECTOR_2D PT_pVector;
ONVIF_VECTOR_1D Z_pVector;
}
ONVIF_PTZ_POSITION;
typedef struct
{
char token[PTZ_TOKEN_MAX_LEN+1];
char Name[PTZ_TOKEN_MAX_LEN+1];
ONVIF_PTZ_POSITION pos;
}
ONVIF_PTZ_PRESET;
typedef struct
{
ONVIF_PTZ_SPEED speed;
ONVIF_PTZ_PRESET preset[PTZ_PRESET_MAX_NUM];
}
ONVIF_PTZ_INFO;
//////////////////////////////////////////////////////////////
//
// IMAGE PART
//
/////////////////////////////////////////////////////////////
#define IMAGE_SETTING_UPDATE_FLAG_ALL 0xffffffff
#define IMAGE_SETTING_UPDATE_FLAG_BACKLIGHTCOMPENSATION 0x00000001
#define IMAGE_SETTING_UPDATE_FLAG_BRIGHTNESS 0x00000002
#define IMAGE_SETTING_UPDATE_FLAG_COLORSATURATION 0x00000004
#define IMAGE_SETTING_UPDATE_FLAG_CONTRAST 0x00000008
#define IMAGE_SETTING_UPDATE_FLAG_EXPOSURE 0x00000010
#define IMAGE_SETTING_UPDATE_FLAG_EXPOSURE_WINDOW 0x00000020
#define IMAGE_SETTING_UPDATE_FLAG_FOCUS 0x00000040
#define IMAGE_SETTING_UPDATE_FLAG_IRCUT 0x00000080
#define IMAGE_SETTING_UPDATE_FLAG_WDR 0x00000100
#define IMAGE_SETTING_UPDATE_FLAG_WHITEBALANCE 0x00000200
#define IMAGE_SETTING_UPDATE_FLAG_IMAGESTABILIZATION 0x00000400
#define IMAGE_SETTING_UPDATE_FLAG_SHARPNESS 0x00000800
#define IMAGE_FOCUSMOVE_EXE_FLAG_ABSOLUTE 0x00000001
#define IMAGE_FOCUSMOVE_EXE_FLAG_RELATIVE 0x00000002
#define IMAGE_FOCUSMOVE_EXE_FLAG_CONTINUOUS 0x00000004
#define IMAGE_FOCUSMOVE_EXE_FLAG_STOP 0x00000008
#define IMAGE_CHECK_RANGE_OK 0
#define IMAGE_CHECK_RANGE_NOTSUPPORT -1
#define IMAGE_CHECK_RANGE_OUTRANGE -2
#define IMAGE_SIZE_MAX_NUM 2
typedef enum
{
ONVIF_IMAGE_EXPOSUREMODE_AUTO = 0,
ONVIF_IMAGE_EXPOSUREMODE_MANUAL = 1,
ONVIF_IMAGE_EXPOSUREMODE_MAXNUM
} ONVIF_IMAGE_EXPOSUREMODE;
typedef enum
{
ONVIF_IMAGE_EXPOSUREPRIORITY_LowNoise = 0,
ONVIF_IMAGE_EXPOSUREPRIORITY_FrameRate = 1,
ONVIF_IMAGE_EXPOSUREPRIORITY_MAXNUM
} ONVIF_IMAGE_EXPOSUREPRIORITY;
typedef enum
{
ONVIF_IMAGE_EXPOSURESTRATEGY_LOWLIGHT = 0,
ONVIF_IMAGE_EXPOSURESTRATEGY_HIGHLIGHT = 1,
ONVIF_IMAGE_EXPOSURESTRATEGY_MAXNUM
} ONVIF_IMAGE_EXPOSURESTRATEGY;
typedef enum
{
ONVIF_IMAGE_EXPOSUREANTIFLICKER_50HZ = 0,
ONVIF_IMAGE_EXPOSUREANTIFLICKER_60HZ = 1,
ONVIF_IMAGE_EXPOSUREANTIFLICKER_AUTO = 2,
ONVIF_IMAGE_EXPOSUREANTIFLICKER_NONE = 3,
ONVIF_IMAGE_EXPOSUREANTIFLICKER_MAXNUM
} ONVIF_IMAGE_EXPOSUREANTIFLICKER;
typedef enum
{
ONVIF_IMAGE_AUTOFOCUSMODE_AUTO = 0,
ONVIF_IMAGE_AUTOFOCUSMODE_MANUAL = 1,
ONVIF_IMAGE_AUTOFOCUSMODE_MAXNUM
} ONVIF_IMAGE_AUTOFOCUSMODE;
typedef enum
{
ONVIF_IMAGE_STABILIZATION_MODE_OFF = 0,
ONVIF_IMAGE_STABILIZATION_MODE_ON = 1,
ONVIF_IMAGE_STABILIZATION_MODE_AUTO,
ONVIF_IMAGE_STABILIZATION_MODE_Extended,
ONVIF_IMAGE_STABILIZATION_MODE_MAXNUM
} ONVIF_IMAGE_STABILIZATION_MODE;
typedef enum
{
ONVIF_IMAGE_IRCUTFILTERMODE_OFF = 0,
ONVIF_IMAGE_IRCUTFILTERMODE_ON = 1,
ONVIF_IMAGE_IRCUTFILTERMODE_AUTO,
ONVIF_IMAGE_IRCUTFILTERMODE_MAXNUM
} ONVIF_IMAGE_IRCUTFILTERMODE;
typedef enum
{
ONVIF_IMAGE_IRCUTAUTOSUBMODE_IMAGESENSOR,
ONVIF_IMAGE_IRCUTAUTOSUBMODE_SCHEDULE,
ONVIF_IMAGE_IRCUTAUTOSUBMODE_DI,
ONVIF_IMAGE_IRCUTAUTOSUBMODE_MAXNUM,
} ONVIF_IMAGE_IRCUTAUTOSUBMODE;
typedef struct
{
ONVIF_IMAGE_IRCUTFILTERMODE ircutfiltermodes_int;
ONVIF_IMAGE_IRCUTAUTOSUBMODE ircutautosubmodes_int;
unsigned int daytonighttimehour_uint;
unsigned int daytonighttimeminute_uint;
unsigned int nighttodaytimehour_uint;
unsigned int nighttodaytimeminute_uint;
} ONVIF_IMAGE_IRCUT_INFO;
typedef enum
{
ONVIF_IMAGE_WHITEBALANCE_AUTO = 0,
ONVIF_IMAGE_WHITEBALANCE_MANUAL = 1,
ONVIF_IMAGE_WHITEBALANCE_MAXNUM
} ONVIF_IMAGE_WHITEBALANCE;
typedef struct
{
enum xsd__boolean backlightcompensation_int;
float lv_float;
} ONVIF_IMAGE_SETTING_BACKLIGHTCOMPENSATION_INFO;
typedef struct
{
float bottom_float;
float top_float;
float right_float;
float left_float;
} ONVIF_IMAGE_EXPOSURE_WINRECT;
typedef struct
{
ONVIF_IMAGE_EXPOSUREMODE mode_int;
ONVIF_IMAGE_EXPOSUREPRIORITY priority_int;
ONVIF_IMAGE_EXPOSURESTRATEGY strategy_int;
ONVIF_IMAGE_EXPOSUREANTIFLICKER antiflicker_int;
ONVIF_IMAGE_EXPOSURE_WINRECT window_struct;
float ev_float;
float convergencespeed_float;
float tolerance_float;
float delay_float;
float minexposuretime_float;
float maxexposuretime_float;
float mingain_float ;
float maxgain_float ;
float miniris_float ;
float maxiris_float ;
float exposuretime_float;
float gain_float;
float iris_float;
} ONVIF_IMAGE_SETTING_EXPOSURE_INFO;
typedef struct
{
ONVIF_IMAGE_AUTOFOCUSMODE autofocus_int;
float defaultspeed_float;
float nearlimit_float;
float farlimit_float;
} ONVIF_IMAGE_SETTING_FOCUSCONFIGURATION_INFO;
typedef struct
{
enum xsd__boolean widedynamicmode_int;
float lv_float;
} ONVIF_IMAGE_SETTING_WIDEDYNAMICRANGE_INFO;
typedef struct
{
ONVIF_IMAGE_WHITEBALANCE mode_int;
float convergencespeed_float;
float convergencestep_float;
float crgain_float;
float cbgain_float;
} ONVIF_IMAGE_SETTING_WHITEBALANCE_INFO;
typedef struct
{
float nr2Dstrength_float;
float nr3Dstrength_float;
} ONVIF_IMAGE_SETTING_NOISEREDUCTION_INFO;
typedef struct
{
ONVIF_IMAGE_STABILIZATION_MODE mode_int;
float level_float;
} ONVIF_IMAGE_SETTING_IMAGESTABILIZATION_INFO;
typedef struct
{
char boundarytype_achar[MEDIA_TOKEN_MAX_LEN+1];
float boundaryoffset_float;
char responsetime_achar[MEDIA_TOKEN_MAX_LEN+1];
} ONVIF_IMAGE_SETTING_EXT202_INFO;
typedef struct
{
ONVIF_IMAGE_SETTING_IMAGESTABILIZATION_INFO ImageStabilization_struct;
ONVIF_IMAGE_SETTING_EXT202_INFO extension_struct;
} ONVIF_IMAGE_SETTING_EXT20_INFO;
typedef enum {
NAR_9_16,
NAR_2_3,
NAR_3_4,
NAR_1_1,
NAR_4_3,
NAR_3_2,
NAR_16_9,
} NVT_ASPECT_RATIO;
typedef struct
{
ONVIF_IMAGE_SETTING_BACKLIGHTCOMPENSATION_INFO BacklightCompensation_struct;
float brightness_float;
float colorsaturation_float;
float contrast_float;
float sharpness_float;
float hue_float;
enum xsd__boolean mirror_bool;
enum xsd__boolean flip_bool;
enum tt__ColorMode color_int;
ONVIF_IMAGE_SETTING_EXPOSURE_INFO exposure_struct;
ONVIF_IMAGE_SETTING_FOCUSCONFIGURATION_INFO focus_struct;
ONVIF_IMAGE_IRCUT_INFO ircutfilter_struct;
ONVIF_IMAGE_SETTING_WIDEDYNAMICRANGE_INFO widedynamicRange_struct;
ONVIF_IMAGE_SETTING_WIDEDYNAMICRANGE_INFO highdynamicRange_struct;
ONVIF_IMAGE_SETTING_WHITEBALANCE_INFO whitebalance_struct;
ONVIF_IMAGE_SETTING_NOISEREDUCTION_INFO noisereduction_struct;
enum xsd__boolean forcepersistence_bool;
ONVIF_IMAGE_SETTING_EXT20_INFO extension_struct;
NVT_ASPECT_RATIO aspect_ratio;
}ONVIF_IMAGE_SETTING_INFO;
typedef enum
{
ONVIF_MOVESTATUS_IDLE,
ONVIF_MOVESTATUS_MOVING,
ONVIF_MOVESTATUS_UNKNOWN
} ONVIF_MOVESTATUS;
typedef struct
{
float position_float;
ONVIF_MOVESTATUS movestatus_int;
char error_pchar[64];
} ONVIF_IMAGE_FOCUS_STATUS_INFO;
typedef struct
{
char toke_achar[MEDIA_TOKEN_MAX_LEN+1];
ONVIF_IMAGE_FOCUS_STATUS_INFO FocusStatus;
}ONVIF_IMAGE_STATUSDATA_INFO;
typedef struct
{
enum xsd__boolean used_int;
float min_float;
float max_float;
} ONVIF_FLOAT_RANGE;
typedef struct
{
ONVIF_FLOAT_RANGE position_struct;
ONVIF_FLOAT_RANGE speed_struct;
} ONVIF_IMAGE_MOVEOPTIONS_ABSOLUTE;
typedef struct
{
ONVIF_FLOAT_RANGE distance_struct;
ONVIF_FLOAT_RANGE speed_struct;
} ONVIF_IMAGE_MOVEOPTIONS_RELATIVE;
typedef struct
{
ONVIF_FLOAT_RANGE speed_struct;
} ONVIF_IMAGE_MOVEOPTIONS_CONTINUOUS;
typedef struct
{
ONVIF_IMAGE_MOVEOPTIONS_ABSOLUTE absolute_struct;
ONVIF_IMAGE_MOVEOPTIONS_RELATIVE relative_struct;
ONVIF_IMAGE_MOVEOPTIONS_CONTINUOUS continuous_struct;
} ONVIF_IMAGE_MOVEOPTIONS20_INFO;
typedef struct
{
int sizeofbacklightcompensation_int;
enum xsd__boolean backlightcompensation_aint[IMAGE_SIZE_MAX_NUM];
ONVIF_FLOAT_RANGE lv_struct;
} ONVIF_IMAGE_OPTIONS_BACKLIGHTCOMPENSATION;
typedef struct
{
ONVIF_IMAGE_EXPOSUREMODE mode_aint[ONVIF_IMAGE_EXPOSUREMODE_MAXNUM];
ONVIF_IMAGE_EXPOSUREPRIORITY priority_aint[ONVIF_IMAGE_EXPOSUREPRIORITY_MAXNUM];
ONVIF_FLOAT_RANGE maxexposuretime_struct;
ONVIF_FLOAT_RANGE minexposuretime_struct;
ONVIF_FLOAT_RANGE maxgain_struct;
ONVIF_FLOAT_RANGE mingain_struct;
ONVIF_FLOAT_RANGE maxiris_struct;
ONVIF_FLOAT_RANGE miniris_struct;
ONVIF_FLOAT_RANGE exposuretime_struct;
ONVIF_FLOAT_RANGE gain_struct;
ONVIF_FLOAT_RANGE iris_struct;
} ONVIF_IMAGE_OPTIONS_EXPOSURE;
typedef struct
{
ONVIF_IMAGE_AUTOFOCUSMODE autofocus_aint[ONVIF_IMAGE_AUTOFOCUSMODE_MAXNUM];
ONVIF_FLOAT_RANGE defaultspeed_struct;
ONVIF_FLOAT_RANGE nearlimit_struct;
ONVIF_FLOAT_RANGE farlimit_struct;
} ONVIF_IMAGE_OPTIONS_FOCUS;
typedef struct
{
int sizeofwidedynamicmode_int;
enum xsd__boolean widedynamicmode_aint[IMAGE_SIZE_MAX_NUM];
ONVIF_FLOAT_RANGE lv_struct;
} ONVIF_IMAGE_OPTIONS_WIDEDYNAMICRANGE;
typedef struct
{
ONVIF_IMAGE_WHITEBALANCE mode_aint[ONVIF_IMAGE_WHITEBALANCE_MAXNUM];
ONVIF_FLOAT_RANGE yrgain_struct;
ONVIF_FLOAT_RANGE ybgain_struct;
} ONVIF_IMAGE_OPTIONS_WHITEBALANCE;
typedef struct
{
ONVIF_IMAGE_STABILIZATION_MODE mode_aint[ONVIF_IMAGE_STABILIZATION_MODE_MAXNUM];
ONVIF_FLOAT_RANGE lv_struct;
} ONVIF_IMAGE_OPTIONS_STABILIZATION;
typedef struct
{
ONVIF_IMAGE_OPTIONS_STABILIZATION imagestabilization_struct;
} ONVIF_IMAGE_OPTIONS_EXT;
typedef struct
{
ONVIF_IMAGE_OPTIONS_BACKLIGHTCOMPENSATION backlight_struct;
ONVIF_FLOAT_RANGE brightness_struct;
ONVIF_FLOAT_RANGE colorsaturation_struct;
ONVIF_FLOAT_RANGE contrast_struct;
ONVIF_IMAGE_OPTIONS_EXPOSURE exposure_struct;
ONVIF_IMAGE_OPTIONS_FOCUS focus_struct;
ONVIF_IMAGE_IRCUTFILTERMODE ircutfiltermodes_aint[ONVIF_IMAGE_IRCUTFILTERMODE_MAXNUM];
ONVIF_FLOAT_RANGE sharpness_struct;
ONVIF_IMAGE_OPTIONS_WIDEDYNAMICRANGE widedynamicrange_struct;
ONVIF_IMAGE_OPTIONS_WHITEBALANCE whitebalance_struct;
ONVIF_IMAGE_OPTIONS_EXT ext_sturct;
} ONVIF_IMAGE_OPTIONS_INFO ;
typedef struct
{
char token[64];
ONVIF_IMAGE_OPTIONS_INFO opts_struct;
} ONVIF_IMAGE_OPTIONSDATA_INFO ;
typedef struct
{
char token[64];
ONVIF_IMAGE_MOVEOPTIONS20_INFO focus_struct;
} ONVIF_IMAGE_MOVEOPTIONS20DATA_INFO ;
typedef struct
{
char token[64];
ONVIF_IMAGE_SETTING_INFO set_struct;
} ONVIF_IMAGE_SETTINGDATA_INFO ;
#if 0
typedef enum
{
OnvifFocusMove_CmdType_Stop = 0,
OnvifFocusMove_CmdType_Absolute,
OnvifFocusMove_CmdType_Relative,
OnvifFocusMove_CmdType_Continuous
} ONVIF_FOCUSMOVE_CMDTYPE;
#endif
typedef struct
{
float position_float;
float speed_float;
} ONVIF_FOCUSMOVE_ABSOLUTE_INFO;
typedef struct
{
float distance_float;
float speed_float;
} ONVIF_FOCUSMOVE_RELATIVE_INFO;
typedef struct
{
float speed_float;
} ONVIF_FOCUSMOVE_CONTINUOUS_INFO;
typedef struct
{
ONVIF_FOCUSMOVE_ABSOLUTE_INFO absolute_struct; // Parameters for the absolute focus control, [0~1]
ONVIF_FOCUSMOVE_RELATIVE_INFO relative_struct; // Parameters for the relative focus control, [0~1]
ONVIF_FOCUSMOVE_CONTINUOUS_INFO continuous_struct; // Parameter for the continuous focus control, [0~1]
} ONVIF_FOCUSMOVE_INFO;
typedef struct
{
char token_achar[64];
ONVIF_FOCUSMOVE_INFO focus_struct;
} ONVIF_FOCUSMOVEDATA_INFO;
typedef struct
{
ONVIF_IMAGE_SETTINGDATA_INFO ImageSettingInfo;
ONVIF_IMAGE_STATUSDATA_INFO ImageStatusInfo;
ONVIF_IMAGE_MOVEOPTIONS20DATA_INFO ImageMoveOptions;
ONVIF_IMAGE_OPTIONSDATA_INFO ImageOptions;
ONVIF_FOCUSMOVEDATA_INFO ImageFocusMove;
}ONVIF_IMAGE_INFO;
//////////////////////////////////////////////////////////////
//
// TOTAL INFO
//
/////////////////////////////////////////////////////////////
typedef struct
{
ONVIF_VIDEO_SOURCE_CONFIG_OPTIONS videoSourceConfigOptions;
ONVIF_VIDEO_SOURCE_CONFIG videoSourceConfig[MEDIA_VIDEO_SOURCE_CONFIG_MAX_NUM];
ONVIF_VIDEO_SOURCE videoSource[MEDIA_VIDEO_SOURCE_MAX_NUM];
ONVIF_VIDEO_ENCODER_CONFIG_OPTIONS videoEncoderConfigOptions;
ONVIF_VIDEO_ENCODER_CONFIG videoEncoderConfig[MEDIA_VIDEO_ENCODER_CONFIG_MAX_NUM];
ONVIF_VIDEO_ENCODER_CONFIG videoEncoderConfigExtra;
ONVIF_VIDEO_OUTPUT videoOutputConfig;
ONVIF_AUDIO_SOURCE_CONFIG_OPTIONS audioSourceConfigOptions;
ONVIF_AUDIO_SOURCE_CONFIG audioSourceConfig[MEDIA_AUDIO_SOURCE_CONFIG_MAX_NUM];
ONVIF_AUDIO_SOURCE audioSource[MEDIA_AUDIO_SOURCE_MAX_NUM];
ONVIF_AUDIO_ENCODER_CONFIG_OPTIONS audioEncoderConfigOptions[MEDIA_AUDIO_ENCODER_CONFIG_OPTIONS_MAX_NUM];
ONVIF_AUDIO_ENCODER_CONFIG audioEncoderConfig[MEDIA_AUDIO_ENCODER_CONFIG_MAX_NUM];
ONVIF_AUDIO_OUTPUT_CONFIG_OPTIONS audioOutputConfigOptions;
ONVIF_AUDIO_OUTPUT_CONFIG audioOutputConfig[MEDIA_AUDIO_OUTPUT_CONFIG_MAX_NUM];
ONVIF_AUDIO_OUTPUT audioOutput[MEDIA_AUDIO_OUTPUT_MAX_NUM];
ONVIF_PTZ_CONFIG_OPTIONS ptzConfigOptions;
ONVIF_PTZ_CONFIG ptzConfig[MEDIA_PTZ_CONFIG_MAX_NUM];
ONVIF_METADATA_CONFIG metadataConfig[MEDIA_METADATA_CONFIG_MAX_NUM];
ONVIF_MEDIA_PROFILE mediaProfile[MEDIA_PROFILE_MAX_NUM];
OSD_CONFIG osdConfig[OSD_MAX_CHANNEL];
char currentProfiletoken_achar[MEDIA_TOKEN_MAX_LEN+1];
}ONVIF_MEDIA_INFO;
typedef struct
{
enum tt__DataTimeType dateTimeType;
enum tt__NTPUpdateCycle NTPUpdateCycle;
enum xsd__boolean daylightSavings;
char timeZone[64];
char dayLightSavingInfo[64];
}ONVIF_DATETIME_INFO;
typedef enum _EVENT_ENABLE {EE_DISABLE, EE_ENABLE}EVENT_ENABLE;
typedef enum _RECORD_ENABLE {RE_DISABLE, RE_ENABLE}RECORD_ENABLE;
typedef enum _EVENT_ALARM_OUTPUT_CFG{EAOC_OPEN, EAOC_GROUND}EVENT_ALARM_OUTPUT_CFG;
typedef enum _EVENT_ALARM_INPUT_CFG{EAIC_HIGH, EAIC_LOW}EVENT_ALARM_INPUT_CFG;
#define BUF_MAX_NAME_SIZE 128
#define RECV_MAX_SIZE 256
#define EVT_FTP_BUF_SIZE_128 128
#define BUF_ALARM_CFG_SIZE 64
#define EVT_SMTP_BUF_SIZE_128 128
#define EVT_SD_BUF_SIZE_128 128
#define EVT_HTTP_BUF_SIZE_128 128
#define EVT_ISCSI_BUF_SIZE_128 128
#define EVT_MAX_EVENT_NUM 5
#define EVT_MAX_FTP_NUM 3
#define EVT_MAX_SMTP_NUM 3
#define EVT_MAX_SD_NUM 3
#define EVT_MAX_HTTP_NUM 3
#define EVT_MAX_ISCSI_NUM 1
/*
alarm input : ES_HIGH, ES_LOW
motion : ES_NO_TRIGGER, ES_TRIGGER
network loss: ES_NETWORK_LOSS , ES_NETWORK_NORMAL
*/
typedef enum {ES_HIGH, ES_LOW ,ES_NO_TRIGGER, ES_TRIGGER, ES_NETWORK_LOSS, ES_NETWORK_NORMAL, ES_ERROR} EVT_STATUS;
typedef enum {CC_DI0, CC_MD0, CC_NL0, CC_SYNC, CC_PULL_CMD, CC_ERROR} CURRENT_CHANGE;
typedef enum {MD_TYPE, DI_TYPE, NL_TYPE } EVENT_TYPE; //motion detection type, digital input type, network loss type
typedef enum {ALL_EVENT, MD_EVENT, DI_EVENT, NL_EVENT} REGISTER_TYPE;
typedef enum {AOS_GROUNDED, AOS_OPEN}ALARM_OUTPUT_STATUS;
typedef enum {
EVENT_ER_OK = 0, // ok
EVENT_ER_GRR = -1, //general error
EVENT_ER_TIME_OUT = -2, // time out
EVENT_ER_NAME_ERROR = -3, //name exist or name error
EVENT_ER_LIMITATION_ERROR = -4 ////out of limitation
}EVENT_ER;
typedef struct _EVENT_INFO{
///CC_DI0: notify cmd,is DI0 changed CC_MD0: notify cmd,is MD0 change CC_NL0: notify cmd, is NL0 changed CC_PULL_CMD: is pull cmd
CURRENT_CHANGE current_changed;
EVT_STATUS DI0;//digital input
EVT_STATUS MD0;//motion detect
EVT_STATUS NL0;//network loss
}EVENT_INFO;
typedef struct _EVENT_CFG{
int enable;
char name[BUF_MAX_NAME_SIZE];
int schedule_always;
int schedule[7];//for Monday ~Sunday, using 24 bits to set 24 hours
EVENT_TYPE event_type;
int action_type; //first bit:FTP second bit:SMTP third bit: HTTP 4th bit: SD card 5th:DIgital output 6th: ISCSI value:0~63
int triggered; // 0: no trigger 1: trigger
time_t trigger_time; ///the time when last event trigger
int delay_time; // the event interval time
char ftp_name[BUF_MAX_NAME_SIZE]; //ftp name
char smtp_name[BUF_MAX_NAME_SIZE]; //SMTP name
char http_name[BUF_MAX_NAME_SIZE]; //HTTP name
char iscsi_name[BUF_MAX_NAME_SIZE]; //ISCSI name
char sd_name[BUF_MAX_NAME_SIZE]; //SD card name
char action[BUF_MAX_NAME_SIZE]; //value: log, snapshot, video
int video_presecond; // if action == "video", set presecond vaule:0~10 sec
int video_postsecond; // if action == "video", set postsecond value: 1~30 sec
} EVENT_CFG;
typedef struct _MOTION_CFG{
char level[RECV_MAX_SIZE]; //value: "High,9,8,7,6,5,4,3,2,1,Low"
char wnd[RECV_MAX_SIZE]; //value: "0~65535,0~65535,0~65535,0~65535,0~65535,0~65535,0~65535,0~65535,0~65535,0~65535,0~65535,0~65535"
char enable[RECV_MAX_SIZE]; //value:"on" or "off"
}MOTION_CFG;
typedef struct _EVENT_FTP_CFG{
char ftp_name[EVT_FTP_BUF_SIZE_128];
int port;
char ftp_addr[EVT_FTP_BUF_SIZE_128];
char user_name[EVT_FTP_BUF_SIZE_128];
char password[EVT_FTP_BUF_SIZE_128];
char folder_name[EVT_FTP_BUF_SIZE_128];
}EVENT_FTP_CFG;
typedef struct _EVENT_ALARMINPUT_CFG{
char enable[BUF_ALARM_CFG_SIZE];//value :"on" or "off" , now not using this parameter
char cfg[BUF_ALARM_CFG_SIZE];//value : "HIGH" or "LOW"
}EVENT_ALARMINPUT_CFG;
typedef struct _EVENT_SMTP_CFG{
char smtp_name[EVT_SMTP_BUF_SIZE_128];
int server_port;
char sender_addr[EVT_SMTP_BUF_SIZE_128];
char recipient_addr[EVT_SMTP_BUF_SIZE_128];
char server_addr[EVT_SMTP_BUF_SIZE_128];
char user_name[EVT_SMTP_BUF_SIZE_128];
char password[EVT_SMTP_BUF_SIZE_128];
int ssl;//0 : STARTTLS 1: SSL
}EVENT_SMTP_CFG;
typedef struct _EVENT_SD_CFG{
char sd_name[EVT_SD_BUF_SIZE_128];
char sd_path[EVT_SD_BUF_SIZE_128];
}EVENT_SD_CFG;
typedef struct _EVENT_HTTP_CFG{
char http_name[EVT_HTTP_BUF_SIZE_128];
char http_url[EVT_HTTP_BUF_SIZE_128];
char http_user[EVT_HTTP_BUF_SIZE_128];
char http_password[EVT_HTTP_BUF_SIZE_128];
}EVENT_HTTP_CFG;
typedef struct _EVENT_ISCSI_CFG{
char iscsi_name[EVT_ISCSI_BUF_SIZE_128];
char iscsi_ip[EVT_ISCSI_BUF_SIZE_128];
char iscsi_target_name[EVT_ISCSI_BUF_SIZE_128];
char iscsi_user[EVT_ISCSI_BUF_SIZE_128];
char iscsi_password[EVT_ISCSI_BUF_SIZE_128];
int iscsi_bmount;////0:not mount on ip cam 1: mount on ip cam
}EVENT_ISCSI_CFG;
typedef struct
{
EVENT_ENABLE MD0_enable;
char MD0_level[32];
char MD0_wnd[256];
EVENT_ALARM_OUTPUT_CFG DO0_CFG;
EVENT_ALARM_INPUT_CFG DI0_CFG;
EVENT_ENABLE DI0_enable;
}ONVIF_DETECTION_INFO;
typedef struct
{
EVENT_CFG event_list[EVT_MAX_EVENT_NUM];
int event_list_num;
EVENT_SMTP_CFG smtp_list[EVT_MAX_SMTP_NUM];
int smtp_list_num;
EVENT_SD_CFG sd_list[EVT_MAX_SD_NUM];
int sd_list_num;
EVENT_HTTP_CFG http_list[EVT_MAX_HTTP_NUM];
int http_list_num;
EVENT_ISCSI_CFG iscsi_list[EVT_MAX_ISCSI_NUM];
int iscsi_list_num;
EVENT_FTP_CFG ftp_list[EVT_MAX_FTP_NUM];
int ftp_list_num;
}ONVIF_EVENT_CONFIG;
typedef enum { NRT_SD_CARD, NRT_ISCSI} NVT_RECORD_TYPE;
typedef struct
{
RECORD_ENABLE enable;
RECORD_ENABLE schedule_always;
int schedule[7];////for Monday ~Sunday, using 24 bits to set 24 hours
int video_len;
NVT_RECORD_TYPE record_type;
char sd_name[128];
char iscsi_name[128];
}ONVIF_RECORD_CONFIG;
typedef struct
{
ONVIF_DEVICE_INFO deviceInfo;
ONVIF_USER userList[USER_MAX_NUM];
ONVIF_NETWORK_INFO networkInfo;
ONVIF_DEVICE_DISCOVERY deviceDiscovery;
ONVIF_EVENT_INFO eventInfo[EVENT_MAX_NUM];
ONVIF_MEDIA_INFO mediaInfo;
ONVIF_STREAM_INFO streamInfo;
ONVIF_PTZ_INFO ptzInfo;
ONVIF_IMAGE_INFO imageInfo;
ONVIF_DATETIME_INFO datetimeInfo;
ONVIF_DETECTION_INFO detectionInfo;
ONVIF_EVENT_CONFIG eventConfig;
ONVIF_RECORD_CONFIG recordConfig;
}ONVIF_INFO;
#ifdef __cplusplus
}
#endif
/* ----------------------------------------------------------------- */
#endif /* _NVTDEVINFO_DEFINE_H */