TNuiInteractionStreamInternal::TNuiInteractionStreamInternal(TNuiSensor *sensor, QObject *parent)
    : TNuiStreamInternal(sensor, parent)
    , m_interactionClient(new TNuiFullscreenClient)
{
    m_interactionClient->AddRef();
    if (S_OK != NuiCreateInteractionStream(sensor->nativeSensor(), m_interactionClient, &m_stream))
        qFatal("Failed to create interaction stream");

    m_depthStream = new TNuiDepthStream(sensor, true);
    connect(m_depthStream, &TNuiDepthStream::readyRead, this, &TNuiInteractionStreamInternal::processDepth);

    m_skeletonStream = new TNuiSkeletonStream(sensor);
    connect(m_skeletonStream, &TNuiSkeletonStream::readyRead, this, &TNuiInteractionStreamInternal::processSkeleton);
}
/// <summary>
/// Start processing stream
/// </summary>
/// <returns>Indicates success or failure</returns>
bool UKinect::setInteractionStream()
{

	hr = NuiCreateInteractionStream(sensor,(INuiInteractionClient *)&nuiIClient,&interactionStream);
	if (FAILED(hr))
	{
		cerr <<"[UKinect] ERROR: Can not initialize interaction stream." << endl;
		return false;
	}

	hr = interactionStream->Enable(interactionNextFrame);
	if (FAILED(hr))
	{
		cerr <<"[UKinect] ERROR: Can not enable interaction stream." << endl;
		return false;
	}

	cout <<"[UKinect] INFO: Interaction stream has been created." << endl;
	return true;
}