XnStatus XnPixelStream::Init() { XnStatus nRetVal = XN_STATUS_OK; // init base nRetVal = XnFrameStream::Init(); XN_IS_STATUS_OK(nRetVal); // update set callbacks m_Resolution.UpdateSetCallback(SetResolutionCallback, this); m_XRes.UpdateSetCallback(SetXResCallback, this); m_YRes.UpdateSetCallback(SetYResCallback, this); m_Cropping.UpdateSetCallback(SetCroppingCallback, this); // add properties XN_VALIDATE_ADD_PROPERTIES(this, &m_IsPixelStream, &m_Resolution, &m_XRes, &m_YRes, &m_BytesPerPixel, &m_Cropping, &m_SupportedModesCount, &m_SupportedModes); // register required size properties nRetVal = RegisterRequiredSizeProperty(&m_XRes); XN_IS_STATUS_OK(nRetVal); nRetVal = RegisterRequiredSizeProperty(&m_YRes); XN_IS_STATUS_OK(nRetVal); nRetVal = RegisterRequiredSizeProperty(&m_BytesPerPixel); XN_IS_STATUS_OK(nRetVal); // register for important properties XnCallbackHandle hDummyCallback; nRetVal = m_Resolution.OnChangeEvent().Register(ResolutionValueChangedCallback, this, &hDummyCallback); XN_IS_STATUS_OK(nRetVal); nRetVal = OutputFormatProperty().OnChangeEvent().Register(OutputFormatValueChangedCallback, this, &hDummyCallback); XN_IS_STATUS_OK(nRetVal); nRetVal = m_XRes.OnChangeEvent().Register(FixCroppingCallback, this, &hDummyCallback); XN_IS_STATUS_OK(nRetVal); nRetVal = m_YRes.OnChangeEvent().Register(FixCroppingCallback, this, &hDummyCallback); XN_IS_STATUS_OK(nRetVal); return (XN_STATUS_OK); }
XnStatus XnAudioStream::Init() { XnStatus nRetVal = XN_STATUS_OK; // init base nRetVal = XnStreamingStream::Init(); XN_IS_STATUS_OK(nRetVal); m_SampleRate.UpdateSetCallback(SetSampleRateCallback, this); m_NumberOfChannels.UpdateSetCallback(SetNumberOfChannelsCallback, this); XN_VALIDATE_ADD_PROPERTIES(this, &m_SampleRate, &m_NumberOfChannels); // required size nRetVal = RegisterRequiredSizeProperty(&m_SampleRate); XN_IS_STATUS_OK(nRetVal); return (XN_STATUS_OK); }