XnStatus XnProperty::SetValue(const void* pValue) { if (m_pSetCallback == NULL) { XN_LOG_WARNING_RETURN(XN_STATUS_DEVICE_PROPERTY_READ_ONLY, XN_MASK_DDK, "Property %s.%s is read only.", GetModule(), GetName()); } if (m_LogSeverity != -1) { XnChar strValue[XN_DEVICE_MAX_STRING_LENGTH]; XnBool bValueString = FALSE; if (ConvertValueToString(strValue, pValue)) { xnLogWrite(XN_MASK_DDK, (XnLogSeverity)m_LogSeverity, __FILE__, __LINE__, "Setting %s.%s to %s...", GetModule(), GetName(), strValue); } else { xnLogWrite(XN_MASK_DDK, (XnLogSeverity)m_LogSeverity, __FILE__, __LINE__, "Setting %s.%s...", GetModule(), GetName()); } } XnBool bShouldSet = TRUE; if (!m_bAlwaysSet && IsActual() && IsEqual(m_pValueHolder, pValue)) { xnLogWrite(XN_MASK_DDK, (XnLogSeverity)m_LogSeverity, __FILE__, __LINE__, "%s.%s value did not change.", GetModule(), GetName()); } else { XnStatus nRetVal = CallSetCallback(m_pSetCallback, pValue, m_pSetCallbackCookie); if (nRetVal != XN_STATUS_OK) { if (m_LogSeverity != -1) { xnLogWrite(XN_MASK_DDK, (XnLogSeverity)m_LogSeverity, __FILE__, __LINE__, "Failed setting %s.%s: %s", GetModule(), GetName(), xnGetStatusString(nRetVal)); } return (nRetVal); } else { xnLogWrite(XN_MASK_DDK, (XnLogSeverity)m_LogSeverity, __FILE__, __LINE__, "%s.%s was successfully set.", GetModule(), GetName()); } } return (XN_STATUS_OK); }
XnStatus XnProperty::UnsafeUpdateValue(const void* pValue /* = NULL */) { XnStatus nRetVal = XN_STATUS_OK; XnBool bValueChanged = TRUE; if (IsActual()) { if (IsEqual(m_pValueHolder, pValue)) { bValueChanged = FALSE; } else { // update the value nRetVal = CopyValueImpl(m_pValueHolder, pValue); XN_IS_STATUS_OK(nRetVal); } } if (bValueChanged) { // print a message if (m_LogSeverity != -1) { XnChar strValue[XN_DEVICE_MAX_STRING_LENGTH]; XnBool bValueString = FALSE; if (IsActual()) { bValueString = ConvertValueToString(strValue, pValue); } xnLogWrite(XN_MASK_DDK, (XnLogSeverity)m_LogSeverity, __FILE__, __LINE__, "Property %s.%s was changed%s%s.", GetModule(), GetName(), bValueString ? " to " : "", bValueString ? strValue : ""); } // raise the event nRetVal = m_OnChangeEvent.Raise(this); XN_IS_STATUS_OK(nRetVal); } return XN_STATUS_OK; }
ONI_C_API void oniWriteLogEntry(const char* mask, int severity, const char* message) { xnLogWrite(mask, (XnLogSeverity)severity, "External", 0, message); }