#include "proto_dbg.h" #ifndef max #define max(a,b) (((a) > (b)) ? (a) : (b)) #endif #ifndef min #define min(a,b) (((a) < (b)) ? (a) : (b)) #endif #define INDENTATION 3 #if defined(PROTO_DEBUG) #define log_fmt printf #else #define log_fmt #endif #define log_func_in log_fmt("\n================= + %s + >>>\n", __FUNCTION__) #define log_func_out log_fmt("================= - %s - <<<\n", __FUNCTION__) #if defined(PROTO_DEBUG) static void log_val(const char *prestr, enum LOG_TYPE type, const void *val) { #ifdef WIN32 #define POSFORMAT "(0x%p)" #else #define POSFORMAT "(%p)" #endif if (NULL == val) { log_fmt("%s(null)\n", prestr); return ; } switch (type) { case log_pos: log_fmt("%s" POSFORMAT "\n", prestr, val); break; case log_int: log_fmt("%s%d\n", prestr, *((int*)val)); break; case log_str: log_fmt("%s%s\n", prestr, (char*)val); break; case log_strp: log_fmt("%s%s\n", prestr, *((char**)val)); break; case log_float: log_fmt("%s%f\n", prestr, *((float*)val)); break; case log_bool: log_fmt("%s%s\n", prestr, (*((enum xsd__boolean*)val)) ? "true" : "false" ); break; case log_int64: log_fmt("%s%lld\n", prestr, *((long long*)val)); break; default: assert(0); break; } return ; } static void log_indentation(unsigned int level) { if (level > 0) { log_fmt("%*s%s", level * INDENTATION, "", "|- "); } return ; } static void log_level_fmt(unsigned int level, const char *fmt, ...) { va_list ap; log_indentation(level); va_start(ap, fmt); vprintf(fmt, ap); va_end(ap); return ; } void log_level_val(unsigned int level, const char *prestr, enum LOG_TYPE type, const void *val) { log_indentation(level); log_val(prestr, type, val); return ; } static const char *dump_enum2str_OSDType(enum tt__OSDType t) { switch(t) { case tt__OSDType__Text: return "Text"; case tt__OSDType__Image: return "Image"; case tt__OSDType__Extended: return "Extended"; } return "unknown"; } static const char *dump_enum2str_VideoEncoding(enum tt__VideoEncoding e) { switch(e) { case tt__VideoEncoding__JPEG: return "JPEG"; case tt__VideoEncoding__MPEG4: return "MPEG4"; case tt__VideoEncoding__H264: return "H264"; } return "unknown"; } static const char *dump_enum2str_AudioEncoding(enum tt__AudioEncoding e) { switch (e) { case tt__AudioEncoding__G711: return "G711"; case tt__AudioEncoding__G726: return "G726"; case tt__AudioEncoding__AAC: return "AAC"; } return "unknown"; } static const char *dump_enum2str_H264Profile(enum tt__H264Profile e) { switch (e) { case tt__H264Profile__Baseline: return "Baseline"; case tt__H264Profile__Main: return "Main"; case tt__H264Profile__Extended: return "Extended"; case tt__H264Profile__High: return "High"; } return "unknown"; } static void log_level_struct_tt__IntRange(unsigned int level, struct tt__IntRange *range) { if (NULL != range) { log_level_val(level, "Min: ", log_int, &range->Min); log_level_val(level, "Max: ", log_int, &range->Max); } } static void log_level_struct_tt__VideoEncoderConfiguration(unsigned int level, struct tt__VideoEncoderConfiguration *vecfg) { if (NULL == vecfg) { return; } log_level_val(level, "Name: ", log_str, vecfg->Name); log_level_val(level, "UseCount: ", log_int, &vecfg->UseCount); log_level_val(level, "token: ", log_str, vecfg->token); log_level_val(level, "Encoding: ", log_str, dump_enum2str_VideoEncoding(vecfg->Encoding)); log_level_val(level, "Resolution: ", log_pos, vecfg->Resolution); if (NULL != vecfg->Resolution) { log_level_val(level + 1, "Width: ", log_int, &vecfg->Resolution->Width); log_level_val(level + 1, "Height: ", log_int, &vecfg->Resolution->Height); } log_level_val(level, "Quality: ", log_float, &vecfg->Quality); log_level_val(level, "RateControl: ", log_pos, vecfg->RateControl); if (NULL != vecfg->RateControl) { log_level_val(level + 1, "FrameRateLimit: ", log_int, &vecfg->RateControl->FrameRateLimit); log_level_val(level + 1, "EncodingInterval: ", log_int, &vecfg->RateControl->EncodingInterval); log_level_val(level + 1, "BitrateLimit: ", log_int, &vecfg->RateControl->BitrateLimit); } log_level_val(level, "MPEG4: ", log_pos, vecfg->MPEG4); log_level_val(level, "H264: ", log_pos, vecfg->H264); log_level_val(level, "Multicast: ", log_pos, vecfg->Multicast); log_level_val(level, "SessionTimeout: ", log_int64, &vecfg->SessionTimeout); } static void log_level_struct_wsa__EndpointReferenceType(unsigned int level, struct wsa__EndpointReferenceType *a) { int i; if (NULL == a) { return; } log_level_val(level, "Address: ", log_str, a->Address); log_level_val(level, "ReferenceProperties: ", log_pos, a->ReferenceProperties); if (NULL != a->ReferenceProperties) { log_level_val(level + 1, "__size: ", log_int, &a->ReferenceProperties->__size); log_level_val(level + 1, "__any: ", log_pos, a->ReferenceProperties->__any); for (i = 0; i < a->ReferenceProperties->__size; i++) { log_level_val(level + 2, "", log_str, a->ReferenceProperties->__any[i]); } } log_level_val(level, "ReferenceParameters: ", log_pos, a->ReferenceParameters); if (NULL != a->ReferenceParameters) { log_level_val(level + 1, "__size: ", log_int, &a->ReferenceParameters->__size); log_level_val(level + 1, "__any: ", log_pos, a->ReferenceParameters->__any); for (i = 0; i < a->ReferenceParameters->__size; i++) { log_level_val(level + 2, "", log_str, a->ReferenceParameters->__any[i]); } } log_level_val(level, "PortType: ", log_strp, a->PortType); log_level_val(level, "ServiceName: ", log_pos, a->ServiceName); if (NULL != a->ServiceName) { log_level_val(level + 1, "ServiceName: ", log_str, a->ServiceName->__item); log_level_val(level + 1, "PortName: ", log_str, a->ServiceName->PortName); log_level_val(level + 1, "__anyAttribute: ",log_str, a->ServiceName->__anyAttribute); } log_level_val(level, "__size: ", log_int, &a->__size); log_level_val(level, "__any: ", log_pos, a->__any); for (i = 0; i < a->__size; i++) { log_level_val(level + 1, "", log_str, a->__any[i]); } log_level_val(level, "__anyAttribute: ", log_str, a->__anyAttribute); } void dump__GetPresetsResponse(struct _tptz__GetPresetsResponse *rep) { int i; assert(NULL != rep); log_func_in; log_level_val(0, "sizePresets: ", log_int, &rep->__sizePreset); log_level_val(0, "Presets: ", log_pos, rep->Preset); for(i = 0; i < rep->__sizePreset; i++) { struct tt__PTZPreset *Preset = &rep->Preset[i]; log_level_fmt(1, "%d\n", i); log_level_val(2, "Name: ", log_str, Preset->Name); log_level_val(2, "Token: ", log_str, Preset->token); if (Preset->PTZPosition != NULL) { if (Preset->PTZPosition->PanTilt != NULL) { log_level_val(2, "p: ", log_float, &(Preset->PTZPosition->PanTilt->x)); log_level_val(2, "t: ", log_float, &(Preset->PTZPosition->PanTilt->y)); } if (Preset->PTZPosition->Zoom != NULL) { log_level_val(2, "z: ", log_float, &(Preset->PTZPosition->Zoom->x)); } } } } void dump__wsdd__ProbeMatches(struct __wsdd__ProbeMatches *rep) { int i; struct wsdd__ProbeMatchType* probeMatch; assert(NULL != rep); log_func_in; log_level_val(0, "wsdd__ProbeMatches: ", log_pos, rep->wsdd__ProbeMatches); if (NULL != rep->wsdd__ProbeMatches) { log_level_val(1, "__sizeProbeMatch: ", log_int, &rep->wsdd__ProbeMatches->__sizeProbeMatch); log_level_val(1, "ProbeMatch: ", log_pos, &rep->wsdd__ProbeMatches->ProbeMatch); for(i = 0; i < rep->wsdd__ProbeMatches->__sizeProbeMatch; i++) { probeMatch = rep->wsdd__ProbeMatches->ProbeMatch + i; log_level_fmt(2, "%d\n", i); log_level_val(3, "wsa__EndpointReference: ", log_pos, &probeMatch->wsa__EndpointReference); log_level_struct_wsa__EndpointReferenceType(4, &probeMatch->wsa__EndpointReference); log_level_val(3, "Types: ", log_str, probeMatch->Types); log_level_val(3, "Scopes: ", log_pos, probeMatch->Scopes); if (NULL != probeMatch->Scopes) { log_level_val(4, "__item: ", log_str, probeMatch->Scopes->__item); log_level_val(4, "MatchBy: ", log_str, probeMatch->Scopes->MatchBy); } log_level_val(3, "XAddrs: ", log_str, probeMatch->XAddrs); log_level_val(3, "MetadataVersion: ", log_int, &probeMatch->MetadataVersion); } } log_func_out; } static void log_level_struct_tt__SystemCapabilities(unsigned int level, struct tt__SystemCapabilities *a) { int i; if (NULL == a) { return; } log_level_val(level, "DiscoveryResolve: ", log_bool, &a->DiscoveryResolve); log_level_val(level, "DiscoveryBye: ", log_bool, &a->DiscoveryBye); log_level_val(level, "RemoteDiscovery: ", log_bool, &a->RemoteDiscovery); log_level_val(level, "SystemBackup: ", log_bool, &a->SystemBackup); log_level_val(level, "SystemLogging: ", log_bool, &a->SystemLogging); log_level_val(level, "FirmwareUpgrade: ", log_bool, &a->FirmwareUpgrade); log_level_val(level, "__sizeSupportedVersions: ", log_int, &a->__sizeSupportedVersions); log_level_val(level, "SupportedVersions: ", log_pos, a->SupportedVersions); for (i = 0; i < a->__sizeSupportedVersions; i++) { log_level_fmt(level + 1, "%d.%d\n", a->SupportedVersions[i].Major, a->SupportedVersions[i].Minor); } } static void log_level_struct_tt__DeviceCapabilities(unsigned int level, struct tt__DeviceCapabilities *a) { if (NULL == a) { return; } log_level_val(level, "XAddr: ", log_str, a->XAddr); log_level_val(level, "Network: ", log_pos, a->Network); log_level_val(level, "System: ", log_pos, a->System); log_level_struct_tt__SystemCapabilities(level + 1, a->System); log_level_val(level, "IO: ", log_pos, a->IO); log_level_val(level, "Security: ", log_pos, a->Security); log_level_val(level, "Extension: ", log_pos, a->Extension); } static void log_level_struct_tt__MediaCapabilities(unsigned int level, struct tt__MediaCapabilities *a) { if (NULL == a) { return; } log_level_val(level, "XAddr: ", log_str, a->XAddr); log_level_val(level, "StreamingCapabilities: ", log_pos, a->StreamingCapabilities); log_level_val(level, "Extension: ", log_pos, a->Extension); } void dump_tds__GetCapabilitiesResponse(struct _tds__GetCapabilitiesResponse *rep) { assert(NULL != rep); log_func_in; log_level_val(0, "Capabilities: ", log_pos, rep->Capabilities); if (NULL != rep->Capabilities) { log_level_val(1, "Analytics: ", log_pos, rep->Capabilities->Analytics); if (NULL != rep->Capabilities->Analytics) { log_level_val(2, "XAddr: ", log_str, rep->Capabilities->Analytics->XAddr); } log_level_val(1, "Device: ", log_pos, rep->Capabilities->Device); if (NULL != rep->Capabilities->Device) { log_level_val(2, "XAddr: ", log_str, rep->Capabilities->Device->XAddr); } log_level_val(1, "Events: ", log_pos, rep->Capabilities->Events); if (NULL != rep->Capabilities->Events) { log_level_val(2, "XAddr: ", log_str, rep->Capabilities->Events->XAddr); } log_level_val(1, "Imaging: ", log_pos, rep->Capabilities->Imaging); if (NULL != rep->Capabilities->Imaging) { log_level_val(2, "XAddr: ", log_str, rep->Capabilities->Imaging->XAddr); } log_level_val(1, "Media: ", log_pos, rep->Capabilities->Media); if (NULL != rep->Capabilities->Media) { log_level_val(2, "XAddr: ", log_str, rep->Capabilities->Media->XAddr); } log_level_val(1, "PTZ: ", log_pos, rep->Capabilities->PTZ); if (NULL != rep->Capabilities->PTZ) { log_level_val(2, "XAddr: ", log_str, rep->Capabilities->PTZ->XAddr); } log_level_val(1, "Extension: ", log_pos, rep->Capabilities->Extension); if (NULL != rep->Capabilities->Extension) { log_level_val(2, "DeviceIO: ", log_pos, rep->Capabilities->Extension->DeviceIO); if (NULL != rep->Capabilities->Extension->DeviceIO) { log_level_val(3, "XAddr: ", log_str, rep->Capabilities->Extension->DeviceIO->XAddr); } log_level_val(2, "Display: ", log_pos, rep->Capabilities->Extension->Display); if (NULL != rep->Capabilities->Extension->Display) { log_level_val(3, "XAddr: ", log_str, rep->Capabilities->Extension->Display->XAddr); } log_level_val(2, "Recording: ", log_pos, rep->Capabilities->Extension->Recording); if (NULL != rep->Capabilities->Extension->Recording) { log_level_val(3, "XAddr: ", log_str, rep->Capabilities->Extension->Recording->XAddr); } log_level_val(2, "Search: ", log_pos, rep->Capabilities->Extension->Search); if (NULL != rep->Capabilities->Extension->Search) { log_level_val(3, "XAddr: ", log_str, rep->Capabilities->Extension->Search->XAddr); } log_level_val(2, "Replay: ", log_pos, rep->Capabilities->Extension->Replay); if (NULL != rep->Capabilities->Extension->Replay) { log_level_val(3, "XAddr: ", log_str, rep->Capabilities->Extension->Replay->XAddr); } log_level_val(2, "Receiver: ", log_pos, rep->Capabilities->Extension->Receiver); if (NULL != rep->Capabilities->Extension->Receiver) { log_level_val(3, "XAddr: ", log_str, rep->Capabilities->Extension->Receiver->XAddr); } log_level_val(2, "AnalyticsDevice: ", log_pos, rep->Capabilities->Extension->AnalyticsDevice); if (NULL != rep->Capabilities->Extension->AnalyticsDevice) { log_level_val(3, "XAddr: ", log_str, rep->Capabilities->Extension->AnalyticsDevice->XAddr); } } } log_func_out; } void dump_tds__GetDeviceInformationResponse(struct _tds__GetDeviceInformationResponse *rep) { assert(NULL != rep); log_func_in; log_val("Manufacturer: ", log_str, rep->Manufacturer); log_val("Model: ", log_str, rep->Model); log_val("Serial Number: ", log_str, rep->SerialNumber); log_val("Hardware Id: ", log_str, rep->HardwareId); log_val("Firmware Version: ", log_str, rep->FirmwareVersion); log_func_out; } void dump_trt__GetProfilesResponse(struct _trt__GetProfilesResponse *rep) { int i; assert(NULL != rep); log_func_in; log_level_val(0, "sizeProfiles: ", log_int, &rep->__sizeProfiles); log_level_val(0, "Profiles: ", log_pos, rep->Profiles); for(i = 0; i < rep->__sizeProfiles; i++) { struct tt__Profile *profiles = &rep->Profiles[i]; log_level_fmt(1, "%d\n", i); log_level_val(2, "Name: ", log_str, profiles->Name); log_level_val(2, "token: ", log_str, profiles->token); log_level_val(2, "fixed: ", log_bool, profiles->fixed); log_level_val(2, "VideoSourceConfiguration: ", log_pos, profiles->VideoSourceConfiguration); if (NULL != profiles->VideoSourceConfiguration) { struct tt__VideoSourceConfiguration *vsc = profiles->VideoSourceConfiguration; log_level_val(3, "Name: ", log_str, vsc->Name); log_level_val(3, "UseCount: ", log_int, &vsc->UseCount); log_level_val(3, "token: ", log_str, vsc->token); log_level_val(3, "SourceToken: ", log_str, vsc->SourceToken); log_level_val(3, "Bounds: ", log_pos, vsc->Bounds); if (NULL != vsc->Bounds) { log_level_val(4, "x: ", log_int, &vsc->Bounds->x); log_level_val(4, "y: ", log_int, &vsc->Bounds->y); log_level_val(4, "width: ", log_int, &vsc->Bounds->width); log_level_val(4, "height: ", log_int, &vsc->Bounds->height); } } log_level_val(2, "VideoEncoderConfiguration: ", log_pos, profiles->VideoEncoderConfiguration); if (NULL != profiles->VideoEncoderConfiguration) { struct tt__VideoEncoderConfiguration *vec = profiles->VideoEncoderConfiguration; log_level_val(3, "Name: ", log_str, vec->Name); log_level_val(3, "UseCount: ", log_int, &vec->UseCount); log_level_val(3, "token: ", log_str, vec->token); log_level_val(3, "Encoding: ", log_str, dump_enum2str_VideoEncoding(vec->Encoding)); log_level_val(3, "Quality: ", log_float, &vec->Quality); log_level_val(3, "Resolution: ", log_pos, vec->Resolution); if (NULL != vec->Resolution) { log_level_val(4, "Width: ", log_int, &vec->Resolution->Width); log_level_val(4, "Height: ", log_int, &vec->Resolution->Height); } log_level_val(3, "RateControl: ",log_pos, vec->RateControl); if (NULL != vec->RateControl) { log_level_val(4, "FrameRateLimit: ", log_int, &vec->RateControl->FrameRateLimit); log_level_val(4, "EncodingInterval: ", log_int, &vec->RateControl->EncodingInterval); log_level_val(4, "BitrateLimit: ", log_int, &vec->RateControl->BitrateLimit); } } log_level_val(2, "AudioSourceConfiguration: ", log_pos, profiles->AudioSourceConfiguration); if (NULL != profiles->AudioSourceConfiguration) { struct tt__AudioSourceConfiguration *asc = profiles->AudioSourceConfiguration; log_level_val(3, "Name: ", log_str, asc->Name); log_level_val(3, "UseCount: ", log_int, &asc->UseCount); log_level_val(3, "token: ", log_str, asc->token); log_level_val(3, "SourceToken: ", log_str, asc->SourceToken); } log_level_val(2, "AudioEncoderConfiguration: ", log_pos, profiles->AudioEncoderConfiguration); if (NULL != profiles->AudioEncoderConfiguration) { struct tt__AudioEncoderConfiguration *aec = profiles->AudioEncoderConfiguration; log_level_val(3, "Name: ", log_str, aec->Name); log_level_val(3, "UseCount: ", log_int, &aec->UseCount); log_level_val(3, "token: ", log_str, aec->token); log_level_val(3, "Bitrate: ", log_int, &aec->Bitrate); log_level_val(3, "SampleRate: ", log_int, &aec->SampleRate); log_level_val(3, "Encoding: ", log_str, dump_enum2str_AudioEncoding(aec->Encoding)); } } log_func_out; } void dump_trt__GetStreamUriResponse(struct _trt__GetStreamUriResponse *rep) { assert(NULL != rep); log_func_in; log_level_val(0, "MediaUri: ", log_pos, rep->MediaUri); if (NULL != rep->MediaUri) { log_level_val(1, "Uri: ", log_str, rep->MediaUri->Uri); log_level_val(1, "InvalidAfterConnect: ", log_bool, &rep->MediaUri->InvalidAfterConnect); log_level_val(1, "InvalidAfterReboot: ", log_bool, &rep->MediaUri->InvalidAfterReboot); log_level_val(1, "Timeout: ", log_int64, &rep->MediaUri->Timeout); } log_func_out; } void dump_tds__GetServicesResponse(struct _tds__GetServicesResponse *rep) { int i; assert(NULL != rep); log_func_in; log_level_val(0, "sizeService: ", log_int, &rep->__sizeService); log_level_val(0, "Service: ", log_pos, rep->Service); if (NULL != rep->Service) { for(i = 0; i < rep->__sizeService; i++) { struct tds__Service *s = rep->Service + i; log_level_fmt(1, "%d\n", i); log_level_val(2, "Namespace: ", log_str, s->Namespace); log_level_val(2, "XAddr: ", log_str, s->XAddr); log_level_val(2, "Version: ", log_pos, s->Version); if (NULL != s->Version) { log_level_fmt(3, "%d.%d\n", s->Version->Major, s->Version->Minor); } } } log_func_out; } void dump_tds__GetSystemDateAndTime(struct _tds__GetSystemDateAndTimeResponse *rep) { struct tt__SystemDateTime *systm; assert(NULL != rep); assert(NULL != rep->SystemDateAndTime); systm = rep->SystemDateAndTime; log_func_in; log_val("DateTimeType: ", log_int, &systm->DateTimeType); log_val("DaylightSavings: ", log_int, &systm->DaylightSavings); if (NULL == systm->TimeZone) { log_val("TimeZone: ", log_pos, systm->TimeZone); } else { log_val("TimeZone: ", log_str, systm->TimeZone->TZ); } if (NULL == systm->UTCDateTime) { log_val("UTCDateTime: ", log_pos, systm->UTCDateTime); } else { assert(NULL != systm->UTCDateTime->Date); assert(NULL != systm->UTCDateTime->Time); log_fmt("UTCDateTime: %04d-%02d-%02d %02d:%02d:%02d \n", systm->UTCDateTime->Date->Year, systm->UTCDateTime->Date->Month, systm->UTCDateTime->Date->Day, systm->UTCDateTime->Time->Hour, systm->UTCDateTime->Time->Minute, systm->UTCDateTime->Time->Second); } if (NULL == systm->LocalDateTime) { log_val("LocalDateTime: ", log_pos, systm->LocalDateTime); } else { assert(NULL != systm->LocalDateTime->Date); assert(NULL != systm->LocalDateTime->Time); log_fmt("LocalDateTime: %04d-%02d-%02d %02d:%02d:%02d \n", systm->LocalDateTime->Date->Year, systm->LocalDateTime->Date->Month, systm->LocalDateTime->Date->Day, systm->LocalDateTime->Time->Hour, systm->LocalDateTime->Time->Minute, systm->LocalDateTime->Time->Second); } log_func_out; } void dump_trt__GetOSDOptions(struct _trt__GetOSDOptionsResponse *rep) { int i; struct tt__OSDConfigurationOptions *p; assert(NULL != rep); assert(NULL != rep->OSDOptions); p = rep->OSDOptions; log_func_in; log_level_val(0, "MaximumNumberOfOSDs: ", log_pos, p->MaximumNumberOfOSDs); if (NULL != p->MaximumNumberOfOSDs) { struct tt__MaximumNumberOfOSDs *m = p->MaximumNumberOfOSDs; log_level_val(1, "Total: ", log_int, &(m->Total)); log_level_val(1, "Image: ", log_int, m->Image); log_level_val(1, "PlainText: ", log_int, m->PlainText); log_level_val(1, "Date: ", log_int, m->Date); log_level_val(1, "Time: ", log_int, m->Time); log_level_val(1, "DateAndTime: ", log_int, m->DateAndTime); } log_level_val(0, "sizeType: ", log_int, &p->__sizeType); log_level_val(0, "Type: ", log_pos, p->Type); for (i = 0; i < p->__sizeType; i++) { log_level_fmt(1, "%s\n", dump_enum2str_OSDType(p->Type[i])); } log_level_val(0, "sizePositionOption: ", log_int, &p->__sizePositionOption); log_level_val(0, "PositionOption: ", log_pos, p->PositionOption); for (i = 0; i < p->__sizePositionOption; i++) { log_level_fmt(1, "%s\n", p->PositionOption[i]); } log_level_val(0, "TextOption: ", log_pos, p->TextOption); if (NULL != p->TextOption) { struct tt__OSDTextOptions *to = p->TextOption; log_level_val(1, "sizeType: ", log_int, &(to->__sizeType)); log_level_val(1, "Type: ", log_pos, to->Type); for (i = 0; i < to->__sizeType; i++) { log_level_fmt(2, "%s\n", to->Type[i]); } log_level_val(1, "FontSizeRange: ", log_pos, to->FontSizeRange); log_level_struct_tt__IntRange(2, to->FontSizeRange); log_level_val(1, "sizeDateFormat: ", log_int, &(to->__sizeDateFormat)); log_level_val(1, "DateFormat: ", log_pos, to->DateFormat); for (i = 0; i < to->__sizeDateFormat; i++) { log_level_fmt(2, "%s\n", to->DateFormat[i]); } log_level_val(1, "sizeTimeFormat: ", log_int, &(to->__sizeTimeFormat)); log_level_val(1, "TimeFormat: ", log_pos, to->TimeFormat); for (i = 0; i < to->__sizeTimeFormat; i++) { log_level_fmt(2, "%s\n", to->TimeFormat[i]); } log_level_val(1, "FontColor: ", log_pos, to->FontColor); log_level_val(1, "BackgroundColor: ", log_pos, to->BackgroundColor); } log_level_val(0, "ImageOption: ", log_pos, p->ImageOption); log_func_out; } void dump_trt__GetOSDs(struct _trt__GetOSDsResponse *rep) { int i; assert(NULL != rep); log_func_in; log_level_val(0, "sizeOSDs: ", log_int, &rep->__sizeOSDs); log_level_val(0, "OSDs: ", log_pos, rep->OSDs); for (i = 0; i < rep->__sizeOSDs; i++) { struct tt__OSDConfiguration *o = rep->OSDs + i; log_level_fmt(1, "%d\n", i); log_level_val(2, "token: ", log_str, o->token); log_level_val(2, "VideoSourceConfigurationToken: ", log_pos, o->VideoSourceConfigurationToken); if (NULL != o->VideoSourceConfigurationToken) { log_level_val(3, "item: ", log_str, o->VideoSourceConfigurationToken->__item); } log_level_val(2, "Type: ", log_str, dump_enum2str_OSDType(o->Type)); log_level_val(2, "Position: ", log_pos, o->Position); if (NULL != o->Position) { log_level_val(3, "Type: ", log_str, o->Position->Type); log_level_val(3, "Pos: ", log_pos, o->Position->Pos); if (NULL != o->Position->Pos) { log_level_val(4, "x: ", log_float, o->Position->Pos->x); log_level_val(4, "y: ", log_float, o->Position->Pos->y); } } log_level_val(2, "TextString: ", log_pos, o->TextString); if (NULL != o->TextString) { log_level_val(3, "Type: ", log_str, o->TextString->Type); log_level_val(3, "DateFormat: ", log_str, o->TextString->DateFormat); log_level_val(3, "TimeFormat: ", log_str, o->TextString->TimeFormat); log_level_val(3, "FontSize: ", log_int, o->TextString->FontSize); log_level_val(3, "PlainText: ", log_str, o->TextString->PlainText); log_level_val(3, "FontColor: ", log_pos, o->TextString->FontColor); log_level_val(3, "BackgroundColor: ", log_pos, o->TextString->BackgroundColor); } log_level_val(2, "Image: ", log_pos, o->Image); } log_func_out; } void dump_trt__GetVideoSourcesResponse(struct _trt__GetVideoSourcesResponse *rep) { int i; assert(NULL != rep); log_func_in; log_level_val(0, "sizeVideoSources: ", log_int, &rep->__sizeVideoSources); log_level_val(0, "VideoSources: ", log_pos, rep->VideoSources); for (i = 0; i < rep->__sizeVideoSources; i++) { struct tt__VideoSource *vs = rep->VideoSources + i; log_level_fmt(1, "%d\n", i); log_level_val(2, "token: ", log_str, vs->token); log_level_val(2, "Framerate: ", log_float, &vs->Framerate); log_level_val(2, "Resolution: ", log_pos, vs->Resolution); log_level_val(3, "Width: ", log_int, &vs->Resolution->Width); log_level_val(3, "Height: ", log_int, &vs->Resolution->Height); log_level_val(2, "Imaging: ", log_pos, vs->Imaging); log_level_val(2, "Extension: ", log_pos, vs->Extension); } log_func_out; } void dump_trt__GetVideoSourceConfigurationsResponse(struct _trt__GetVideoSourceConfigurationsResponse *rep) { int i; assert(NULL != rep); log_func_in; log_level_val(0, "sizeConfigurations: ", log_int, &rep->__sizeConfigurations); log_level_val(0, "Configurations: ", log_pos, rep->Configurations); for (i = 0; i < rep->__sizeConfigurations; i++) { struct tt__VideoSourceConfiguration *cfg = rep->Configurations + i; log_level_fmt(1, "%d\n", i); log_level_val(2, "Name: ", log_str, cfg->Name); log_level_val(2, "UseCount: ", log_int, &cfg->UseCount); log_level_val(2, "token: ", log_str, cfg->token); log_level_val(2, "SourceToken: ", log_str, cfg->SourceToken); log_level_val(2, "Bounds: ", log_pos, cfg->Bounds); log_level_val(3, "x: ", log_int, &cfg->Bounds->x); log_level_val(3, "y: ", log_int, &cfg->Bounds->y); log_level_val(3, "width: ", log_int, &cfg->Bounds->width); log_level_val(3, "height: ", log_int, &cfg->Bounds->height); log_level_val(2, "Extension: ", log_pos, cfg->Extension); } log_func_out; } void dump_trt__GetSnapshotUriResponse(struct _trt__GetSnapshotUriResponse *rep) { assert(NULL != rep); log_func_in; log_level_val(0, "MediaUri: ", log_pos, rep->MediaUri); if (NULL != rep->MediaUri) { log_level_val(1, "Uri: ", log_str, rep->MediaUri->Uri); log_level_val(1, "InvalidAfterConnect: ", log_bool, &rep->MediaUri->InvalidAfterConnect); log_level_val(1, "InvalidAfterReboot: ", log_bool, &rep->MediaUri->InvalidAfterReboot); log_level_val(1, "Timeout: ", log_int64, &rep->MediaUri->Timeout); } log_func_out; } void dump_tds__GetNetworkInterfaces(struct _tds__GetNetworkInterfacesResponse *rep) { int i, j; assert(NULL != rep); log_func_in; log_level_val(0, "sizeNetworkInterfaces: ", log_int, &rep->__sizeNetworkInterfaces); log_level_val(0, "NetworkInterfaces: ", log_pos, rep->NetworkInterfaces); for (i=0; i < rep->__sizeNetworkInterfaces; i++) { struct tt__NetworkInterface *ni = rep->NetworkInterfaces + i; log_level_fmt(1, "%d\n", i); log_level_val(2, "token: ", log_str, ni->token); log_level_val(2, "Enabled: ", log_bool, &ni->Enabled); log_level_val(2, "Info: ", log_pos, ni->Info); if (NULL != ni->Info) { log_level_val(3, "Name: ", log_str, ni->Info->Name); log_level_val(3, "HwAddress: ", log_str, ni->Info->HwAddress); log_level_val(3, "MTU: ", log_int, ni->Info->MTU); } log_level_val(1, "Link: ", log_pos, ni->Link); if (NULL != ni->Link) { log_level_val(3, "AdminSettings: ", log_pos, ni->Link->AdminSettings); if (NULL != ni->Link->AdminSettings) { log_level_val(4, "AutoNegotiation: ", log_bool, &ni->Link->AdminSettings->AutoNegotiation); log_level_val(4, "Speed: ", log_int, &ni->Link->AdminSettings->Speed); log_level_val(4, "Duplex: ", log_int, &ni->Link->AdminSettings->Duplex); } log_level_val(3, "OperSettings: ", log_pos, ni->Link->OperSettings); if (NULL != ni->Link->OperSettings) { log_level_val(4, "AutoNegotiation: ", log_bool, &ni->Link->AdminSettings->AutoNegotiation); log_level_val(4, "Speed: ", log_int, &ni->Link->AdminSettings->Speed); log_level_val(4, "Duplex: ", log_int, &ni->Link->AdminSettings->Duplex); } log_level_val(3, "InterfaceType: ", log_int, &ni->Link->InterfaceType); } log_level_val(1, "IPv4: ", log_pos, ni->IPv4); if (NULL != ni->IPv4) { log_level_val(3, "Enabled: ", log_bool, &ni->IPv4->Enabled); log_level_val(3, "Config: ", log_pos, ni->IPv4->Config); if (NULL != ni->IPv4->Config) { log_level_val(4, "sizeManual: ", log_int, &ni->IPv4->Config->__sizeManual); log_level_val(4, "Manual: ", log_pos, ni->IPv4->Config->Manual); for (j=0; j < ni->IPv4->Config->__sizeManual; j++) { log_level_fmt(5, "%d\n", j); log_level_val(6, "Address: ", log_str, ni->IPv4->Config->Manual[j].Address); log_level_val(6, "PrefixLength: ", log_int, &ni->IPv4->Config->Manual[j].PrefixLength); } log_level_val(3, "LinkLocal: ", log_pos, ni->IPv4->Config->LinkLocal); if (NULL != ni->IPv4->Config->LinkLocal) { log_level_val(5, "Address: ", log_str, ni->IPv4->Config->LinkLocal->Address); log_level_val(5, "PrefixLength: ", log_int, &ni->IPv4->Config->LinkLocal->PrefixLength); } log_level_val(3, "FromDHCP: ", log_pos, ni->IPv4->Config->FromDHCP); if (NULL != ni->IPv4->Config->FromDHCP) { log_level_val(5, "Address: ", log_str, ni->IPv4->Config->FromDHCP->Address); log_level_val(5, "PrefixLength: ", log_int, &ni->IPv4->Config->FromDHCP->PrefixLength); } log_level_val(4, "DHCP: ", log_bool, &ni->IPv4->Config->DHCP); } log_level_val(1, "IPv6: ", log_pos, ni->IPv6); if (NULL != ni->IPv6) { log_level_val(3, "Enabled: ", log_bool, &ni->IPv6->Enabled); log_level_val(3, "Config: ", log_pos, ni->IPv6->Config); } log_level_val(1, "Extension: ", log_pos, ni->Extension); } } log_func_out; } void dump_trt__GetServiceCapabilitiesResponse(struct _trt__GetServiceCapabilitiesResponse *rep) { assert(NULL != rep); log_func_in; log_level_val(0, "Capabilities: ", log_pos, rep->Capabilities); if (NULL != rep->Capabilities) { log_level_val(1, "ProfileCapabilities: ", log_pos, rep->Capabilities->ProfileCapabilities); if (NULL != rep->Capabilities->ProfileCapabilities) { log_level_val(2, "MaximumNumberOfProfiles: ", log_int, rep->Capabilities->ProfileCapabilities->MaximumNumberOfProfiles); } log_level_val(1, "StreamingCapabilities: ", log_pos, rep->Capabilities->StreamingCapabilities); if (NULL != rep->Capabilities->StreamingCapabilities) { log_level_val(2, "RTPMulticast: ", log_bool, rep->Capabilities->StreamingCapabilities->RTPMulticast); log_level_val(2, "RTP_USCORETCP: ", log_bool, rep->Capabilities->StreamingCapabilities->RTP_USCORETCP); log_level_val(2, "RTP_USCORERTSP_USCORETCP: ", log_bool, rep->Capabilities->StreamingCapabilities->RTP_USCORERTSP_USCORETCP); log_level_val(2, "NonAggregateControl: ", log_bool, rep->Capabilities->StreamingCapabilities->NonAggregateControl); log_level_val(2, "NoRTSPStreaming: ", log_bool, rep->Capabilities->StreamingCapabilities->NoRTSPStreaming); } log_level_val(1, "SnapshotUri: ", log_bool, rep->Capabilities->SnapshotUri); log_level_val(1, "Rotation: ", log_bool, rep->Capabilities->Rotation); log_level_val(1, "VideoSourceMode: ", log_bool, rep->Capabilities->VideoSourceMode); log_level_val(1, "OSD: ", log_bool, rep->Capabilities->OSD); log_level_val(1, "EXICompression: ", log_bool, rep->Capabilities->EXICompression); } log_func_out; } void dump_trt__GetVideoEncoderConfigurationResponse(struct _trt__GetVideoEncoderConfigurationResponse *rep) { assert(NULL != rep); log_func_in; log_level_struct_tt__VideoEncoderConfiguration(1, rep->Configuration); log_func_out; } void dump_trt__GetVideoEncoderConfigurationsResponse(struct _trt__GetVideoEncoderConfigurationsResponse *rep) { int i; assert(NULL != rep); log_func_in; log_level_val(0, "__sizeConfigurations: ", log_int, &rep->__sizeConfigurations); log_level_val(0, "Configurations: ", log_pos, rep->Configurations); if (NULL != rep->Configurations) { for (i=0; i < rep->__sizeConfigurations; i++) { struct tt__VideoEncoderConfiguration *pcfg = rep->Configurations + i; log_level_fmt(1, "%d\n", i); log_level_struct_tt__VideoEncoderConfiguration(2, pcfg); } } log_func_out; } void dump_trt__GetCompatibleVideoEncoderConfigurationsResponse(struct _trt__GetCompatibleVideoEncoderConfigurationsResponse *rep) { int i; assert(NULL != rep); log_func_in; log_level_val(0, "__sizeConfigurations: ", log_int, &rep->__sizeConfigurations); log_level_val(0, "Configurations: ", log_pos, rep->Configurations); if (NULL != rep->Configurations) { for (i=0; i < rep->__sizeConfigurations; i++) { struct tt__VideoEncoderConfiguration *pcfg = rep->Configurations + i; log_level_fmt(1, "%d\n", i); log_level_struct_tt__VideoEncoderConfiguration(2, pcfg); } } log_func_out; } void dump_trt__GetVideoEncoderConfigurationOptionsResponse(struct _trt__GetVideoEncoderConfigurationOptionsResponse *rep) { int i; assert(NULL != rep); log_func_in; log_level_val(0, "Options: ", log_pos, rep->Options); if (NULL != rep->Options) { log_level_val(1, "QualityRange: ", log_pos, rep->Options->QualityRange); log_level_struct_tt__IntRange(2, rep->Options->QualityRange); log_level_val(1, "JPEG: ", log_pos, rep->Options->JPEG); log_level_val(1, "MPEG4: ", log_pos, rep->Options->MPEG4); log_level_val(1, "H264: ", log_pos, rep->Options->H264); if (NULL != rep->Options->H264) { struct tt__H264Options *pH264 = rep->Options->H264; log_level_val(2, "sizeResolutionsAvailable: ", log_int, &pH264->__sizeResolutionsAvailable); log_level_val(2, "ResolutionsAvailable: ", log_pos, pH264->ResolutionsAvailable); for (i = 0; i < pH264->__sizeResolutionsAvailable; i++) { log_level_fmt(3, "%d * %d\n", pH264->ResolutionsAvailable[i].Width, pH264->ResolutionsAvailable[i].Height); } log_level_val(2, "GovLengthRange: ", log_pos, pH264->GovLengthRange); log_level_struct_tt__IntRange(3, pH264->GovLengthRange); log_level_val(2, "FrameRateRange: ", log_pos, pH264->FrameRateRange); log_level_struct_tt__IntRange(3, pH264->FrameRateRange); log_level_val(2, "EncodingIntervalRange: ", log_pos, pH264->EncodingIntervalRange); log_level_struct_tt__IntRange(3, pH264->EncodingIntervalRange); log_level_val(2, "sizeH264ProfilesSupported: ", log_int, &pH264->__sizeH264ProfilesSupported); log_level_val(2, "H264ProfilesSupported: ", log_pos, &pH264->H264ProfilesSupported); for (i = 0; i < pH264->__sizeH264ProfilesSupported; i++) { log_level_fmt(3, "%s\n", dump_enum2str_H264Profile(pH264->H264ProfilesSupported[i])); } } log_level_val(1, "Extension: ", log_pos, rep->Options->Extension); } log_func_out; } #endif