Exemplo n.º 1
0
OniStatus XnOniStream::setProperty(int propertyId, const void* data, int dataSize)
{
    xnl::AutoCSLocker locker(*m_pDeviceStream->GetOpenLock());

    // if this stream is open, and not just by me (multiple depth streams for example), don't allow any changes
    XnUInt32 myOpenRefCount = m_started ? 1 : 0;
    if (m_pDeviceStream->GetOpenRefCount() > myOpenRefCount)
    {
        return ONI_STATUS_OUT_OF_FLOW;
    }
    else
    {
        XnStatus nRetVal = SetPropertyImpl(propertyId, data, dataSize);
        switch(nRetVal)
        {
        case XN_STATUS_OK:
            return ONI_STATUS_OK;

        case XN_STATUS_DEVICE_PROPERTY_BAD_TYPE:
            return ONI_STATUS_BAD_PARAMETER;

        case XN_STATUS_BAD_PARAM:
        case XN_STATUS_DEVICE_BAD_PARAM:
        default:
            return ONI_STATUS_NOT_SUPPORTED;
        }
    }
}
Exemplo n.º 2
0
OniStatus XnOniStream::setProperty(int propertyId, const void* data, int dataSize)
{
	xnl::AutoCSLocker locker(*m_pDeviceStream->GetOpenLock());

	// if this stream is open, and not just by me (multiple depth streams for example), don't allow any changes
	XnUInt32 myOpenRefCount = m_started ? 1 : 0;
	if (m_pDeviceStream->GetOpenRefCount() > myOpenRefCount)	
	{
		return ONI_STATUS_OUT_OF_FLOW;
	}
	else
	{
    XnStatus nRetVal;
    if(propertyId == ONI_STREAM_PROPERTY_SOFT_VIDEO_MODE)
      nRetVal = XnSensor::SetSoftVideoMode((OniVideoMode*)data);
    else
      nRetVal = SetPropertyImpl(propertyId, data, dataSize);

    // If the VideoMode was set, update XnSensor::VideoMode accordingly
    if(propertyId == ONI_STREAM_PROPERTY_VIDEO_MODE && nRetVal == XN_STATUS_OK)
    {
      XnSensor::SetVideoMode((OniVideoMode*)data);
    }

		switch(nRetVal)
		{
		case XN_STATUS_OK:
			return ONI_STATUS_OK;
		
		case XN_STATUS_DEVICE_PROPERTY_BAD_TYPE:
			return ONI_STATUS_BAD_PARAMETER;
		
		case XN_STATUS_BAD_PARAM:
		case XN_STATUS_DEVICE_BAD_PARAM:
		default:
			return ONI_STATUS_NOT_SUPPORTED;
		}
	}
}