Skip to content

Commit

Permalink
Added shutdown code
Browse files Browse the repository at this point in the history
  • Loading branch information
okinp committed Aug 22, 2012
1 parent 041a3b4 commit 8e8d2e8
Show file tree
Hide file tree
Showing 3 changed files with 60 additions and 30 deletions.
44 changes: 22 additions & 22 deletions proj/vc10/_2RealKinect.sln
Expand Up @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_2RealKinect", "_2RealKinect.vcxproj", "{67112A04-6E97-4C40-97EA-2A8FB6C14797}"
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "glSingleKinect", "..\..\samples\glSingleKinect\proj\vc10\glSingleKinect.vcxproj", "{9A71947B-E3A5-C4D0-6A52-D22C44A21233}"
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "glSingleKinect", "..\..\samples\glSingleKinect\proj\vc10\glSingleKinect.vcxproj", "{1D21AB6E-B6BA-A556-7CDF-71133E3D1BFB}"
ProjectSection(ProjectDependencies) = postProject
{67112A04-6E97-4C40-97EA-2A8FB6C14797} = {67112A04-6E97-4C40-97EA-2A8FB6C14797}
EndProjectSection
Expand Down Expand Up @@ -54,26 +54,26 @@ Global
{67112A04-6E97-4C40-97EA-2A8FB6C14797}.Release MTD (OpenNI)|Win32.Build.0 = Release MTD (OpenNI)|Win32
{67112A04-6E97-4C40-97EA-2A8FB6C14797}.Release|Win32.ActiveCfg = Release (OpenNI)|Win32
{67112A04-6E97-4C40-97EA-2A8FB6C14797}.Release|Win32.Build.0 = Release (OpenNI)|Win32
{9A71947B-E3A5-C4D0-6A52-D22C44A21233}.Debug (MS KINECT SDK)|Win32.ActiveCfg = Debug|Win32
{9A71947B-E3A5-C4D0-6A52-D22C44A21233}.Debug (MS KINECT SDK)|Win32.Build.0 = Debug|Win32
{9A71947B-E3A5-C4D0-6A52-D22C44A21233}.Debug (OpenNI)|Win32.ActiveCfg = Debug|Win32
{9A71947B-E3A5-C4D0-6A52-D22C44A21233}.Debug (OpenNI)|Win32.Build.0 = Debug|Win32
{9A71947B-E3A5-C4D0-6A52-D22C44A21233}.Debug MTD (MS KINECT SDK)|Win32.ActiveCfg = Debug|Win32
{9A71947B-E3A5-C4D0-6A52-D22C44A21233}.Debug MTD (MS KINECT SDK)|Win32.Build.0 = Debug|Win32
{9A71947B-E3A5-C4D0-6A52-D22C44A21233}.Debug MTD (OpenNI)|Win32.ActiveCfg = Debug|Win32
{9A71947B-E3A5-C4D0-6A52-D22C44A21233}.Debug MTD (OpenNI)|Win32.Build.0 = Debug|Win32
{9A71947B-E3A5-C4D0-6A52-D22C44A21233}.Debug|Win32.ActiveCfg = Debug|Win32
{9A71947B-E3A5-C4D0-6A52-D22C44A21233}.Debug|Win32.Build.0 = Debug|Win32
{9A71947B-E3A5-C4D0-6A52-D22C44A21233}.Release (MS KINECT SDK)|Win32.ActiveCfg = Release|Win32
{9A71947B-E3A5-C4D0-6A52-D22C44A21233}.Release (MS KINECT SDK)|Win32.Build.0 = Release|Win32
{9A71947B-E3A5-C4D0-6A52-D22C44A21233}.Release (OpenNI)|Win32.ActiveCfg = Release|Win32
{9A71947B-E3A5-C4D0-6A52-D22C44A21233}.Release (OpenNI)|Win32.Build.0 = Release|Win32
{9A71947B-E3A5-C4D0-6A52-D22C44A21233}.Release MTD (MS KINECT SDK)|Win32.ActiveCfg = Release|Win32
{9A71947B-E3A5-C4D0-6A52-D22C44A21233}.Release MTD (MS KINECT SDK)|Win32.Build.0 = Release|Win32
{9A71947B-E3A5-C4D0-6A52-D22C44A21233}.Release MTD (OpenNI)|Win32.ActiveCfg = Release|Win32
{9A71947B-E3A5-C4D0-6A52-D22C44A21233}.Release MTD (OpenNI)|Win32.Build.0 = Release|Win32
{9A71947B-E3A5-C4D0-6A52-D22C44A21233}.Release|Win32.ActiveCfg = Release|Win32
{9A71947B-E3A5-C4D0-6A52-D22C44A21233}.Release|Win32.Build.0 = Release|Win32
{1D21AB6E-B6BA-A556-7CDF-71133E3D1BFB}.Debug (MS KINECT SDK)|Win32.ActiveCfg = Debug|Win32
{1D21AB6E-B6BA-A556-7CDF-71133E3D1BFB}.Debug (MS KINECT SDK)|Win32.Build.0 = Debug|Win32
{1D21AB6E-B6BA-A556-7CDF-71133E3D1BFB}.Debug (OpenNI)|Win32.ActiveCfg = Debug|Win32
{1D21AB6E-B6BA-A556-7CDF-71133E3D1BFB}.Debug (OpenNI)|Win32.Build.0 = Debug|Win32
{1D21AB6E-B6BA-A556-7CDF-71133E3D1BFB}.Debug MTD (MS KINECT SDK)|Win32.ActiveCfg = Debug|Win32
{1D21AB6E-B6BA-A556-7CDF-71133E3D1BFB}.Debug MTD (MS KINECT SDK)|Win32.Build.0 = Debug|Win32
{1D21AB6E-B6BA-A556-7CDF-71133E3D1BFB}.Debug MTD (OpenNI)|Win32.ActiveCfg = Debug|Win32
{1D21AB6E-B6BA-A556-7CDF-71133E3D1BFB}.Debug MTD (OpenNI)|Win32.Build.0 = Debug|Win32
{1D21AB6E-B6BA-A556-7CDF-71133E3D1BFB}.Debug|Win32.ActiveCfg = Debug|Win32
{1D21AB6E-B6BA-A556-7CDF-71133E3D1BFB}.Debug|Win32.Build.0 = Debug|Win32
{1D21AB6E-B6BA-A556-7CDF-71133E3D1BFB}.Release (MS KINECT SDK)|Win32.ActiveCfg = Release|Win32
{1D21AB6E-B6BA-A556-7CDF-71133E3D1BFB}.Release (MS KINECT SDK)|Win32.Build.0 = Release|Win32
{1D21AB6E-B6BA-A556-7CDF-71133E3D1BFB}.Release (OpenNI)|Win32.ActiveCfg = Release|Win32
{1D21AB6E-B6BA-A556-7CDF-71133E3D1BFB}.Release (OpenNI)|Win32.Build.0 = Release|Win32
{1D21AB6E-B6BA-A556-7CDF-71133E3D1BFB}.Release MTD (MS KINECT SDK)|Win32.ActiveCfg = Release|Win32
{1D21AB6E-B6BA-A556-7CDF-71133E3D1BFB}.Release MTD (MS KINECT SDK)|Win32.Build.0 = Release|Win32
{1D21AB6E-B6BA-A556-7CDF-71133E3D1BFB}.Release MTD (OpenNI)|Win32.ActiveCfg = Release|Win32
{1D21AB6E-B6BA-A556-7CDF-71133E3D1BFB}.Release MTD (OpenNI)|Win32.Build.0 = Release|Win32
{1D21AB6E-B6BA-A556-7CDF-71133E3D1BFB}.Release|Win32.ActiveCfg = Release|Win32
{1D21AB6E-B6BA-A556-7CDF-71133E3D1BFB}.Release|Win32.Build.0 = Release|Win32
{7FD42DF7-442E-479A-BA76-D0022F99702A}.Debug (MS KINECT SDK)|Win32.ActiveCfg = Debug|Win32
{7FD42DF7-442E-479A-BA76-D0022F99702A}.Debug (MS KINECT SDK)|Win32.Build.0 = Debug|Win32
{7FD42DF7-442E-479A-BA76-D0022F99702A}.Debug (OpenNI)|Win32.ActiveCfg = Debug|Win32
Expand Down Expand Up @@ -119,7 +119,7 @@ Global
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(NestedProjects) = preSolution
{9A71947B-E3A5-C4D0-6A52-D22C44A21233} = {7922FCA8-9F38-47C9-93D3-D591F6CD3419}
{1D21AB6E-B6BA-A556-7CDF-71133E3D1BFB} = {7922FCA8-9F38-47C9-93D3-D591F6CD3419}
{7FD42DF7-442E-479A-BA76-D0022F99702A} = {7922FCA8-9F38-47C9-93D3-D591F6CD3419}
{01B47039-3133-407A-944A-3F554A017C2C} = {7922FCA8-9F38-47C9-93D3-D591F6CD3419}
EndGlobalSection
Expand Down
16 changes: 14 additions & 2 deletions src/OpenNISpecific/OpenNIDevice.cpp
Expand Up @@ -842,8 +842,20 @@ _2RealTrackedJointRef OpenNIDevice::getUserJoint( const uint32_t userID, XnSkele
getExistingProductionNode( XN_NODE_TYPE_DEPTH, depthGen );
xnConvertRealWorldToProjective( depthGen.GetHandle(), 1, &joint.position.position, &screenPos );
_2RealMatrix3x3 mat;
for( int i=0; i < 9; ++i )
mat.elements[i] = joint.orientation.orientation.elements[i];

//for( int i=0; i < 9; ++i )
// mat.elements[i] = joint.orientation.orientation.elements[i];

mat.m11 = joint.orientation.orientation.elements[0];
mat.m12 = joint.orientation.orientation.elements[1];
mat.m13 = joint.orientation.orientation.elements[2];
mat.m21 = joint.orientation.orientation.elements[3];
mat.m22 = joint.orientation.orientation.elements[4];
mat.m23 = joint.orientation.orientation.elements[5];
mat.m31 = joint.orientation.orientation.elements[6];
mat.m32 = joint.orientation.orientation.elements[7];
mat.m33 = joint.orientation.orientation.elements[8];


_2RealJointConfidence confidence((float)joint.position.fConfidence, (float)joint.orientation.fConfidence);

Expand Down
30 changes: 24 additions & 6 deletions src/OpenNISpecific/_2RealImplementationOpenNI.hpp
Expand Up @@ -54,6 +54,7 @@ class _2RealImplementationOpenNI : public I_2RealImplementation
bool m_IsInitialized;
_2RealTrackedUserVector m_TrackedUserVector;
bool m_ShouldUpdate;
bool m_StopRequested;
boost::thread m_ProcessingThread;
virtual void initialize()
{
Expand Down Expand Up @@ -132,7 +133,7 @@ class _2RealImplementationOpenNI : public I_2RealImplementation

void update()
{
while ( true )
while ( !m_StopRequested )
{
if ( m_ShouldUpdate )
{
Expand All @@ -147,10 +148,11 @@ class _2RealImplementationOpenNI : public I_2RealImplementation
public:
_2RealImplementationOpenNI()
:m_NumDevices( 0 ),
m_IsInitialized( 0 ),
m_IsInitialized( false ),
m_GeneratorConfig( CONFIG_DEFAULT ),
m_ImageConfig( IMAGE_CONFIG_DEFAULT ),
m_ShouldUpdate( false )
m_ShouldUpdate( false ),
m_StopRequested( false )
{
initialize();
}
Expand Down Expand Up @@ -316,7 +318,23 @@ class _2RealImplementationOpenNI : public I_2RealImplementation
}
virtual bool shutdown()
{
m_StopRequested = true;
m_ProcessingThread.join();
return false;

if( m_IsInitialized )
{
_2REAL_LOG( info ) << std::endl << "_2Real: Shutting down system..." << std::endl;
m_StopRequested = true;
m_ProcessingThread.join();
m_IsInitialized = false;
_2REAL_LOG( info ) << "OK" << std::endl;
return true;
}
_2REAL_LOG( warn ) << std::endl << "_2Real: System not shutdown correctly..." << std::endl;
return false;


}
virtual boost::shared_array<unsigned char> getImageData( const uint32_t deviceID, _2RealGenerator type, bool waitAndBlock, const uint8_t userId )
{
Expand Down Expand Up @@ -444,7 +462,7 @@ class _2RealImplementationOpenNI : public I_2RealImplementation
return m_TrackedUserVector[userID]->getJointWorldPosition( type );
}

virtual const _2RealPositionsVector3f& getSkeletonWorldPositions( const uint32_t deviceID, const uint8_t userID )
virtual const _2RealPositionsVector3f getSkeletonWorldPositions( const uint32_t deviceID, const uint8_t userID )
{
checkDeviceRunning(deviceID);

Expand All @@ -470,7 +488,7 @@ class _2RealImplementationOpenNI : public I_2RealImplementation
return m_TrackedUserVector[userID]->getJointScreenPosition( type );
}

virtual const _2RealPositionsVector3f& getSkeletonScreenPositions( const uint32_t deviceID, const uint8_t userID )
virtual const _2RealPositionsVector3f getSkeletonScreenPositions( const uint32_t deviceID, const uint8_t userID )
{
checkDeviceRunning(deviceID);

Expand All @@ -485,7 +503,7 @@ class _2RealImplementationOpenNI : public I_2RealImplementation
return m_TrackedUserVector[userID]->getSkeletonScreenPositions();
}

virtual const _2RealOrientationsMatrix3x3& getSkeletonWorldOrientations( const uint32_t deviceID, const uint8_t userID )
virtual const _2RealOrientationsMatrix3x3 getSkeletonWorldOrientations( const uint32_t deviceID, const uint8_t userID )
{
checkDeviceRunning(deviceID);

Expand Down

0 comments on commit 8e8d2e8

Please sign in to comment.