Skip to content
Browse files

initial commit

  • Loading branch information...
0 parents commit 59252a4ad49676ab48399f3aaddb81bd6c1a3945 @ofTheo ofTheo committed Nov 13, 2010
0 bin/data/.gitignore
No changes.
1,087 ofxKinect.xcodeproj/project.pbxproj
@@ -0,0 +1,1087 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 42;
+ objects = {
+
+/* Begin PBXBuildFile section */
+ 307525F511CA84AF007EB8FF /* ofxThread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 307525F311CA84AF007EB8FF /* ofxThread.cpp */; };
+ 3077439D11CC21820022444F /* openCV.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 3077438B11CC21820022444F /* openCV.a */; };
+ 3077439E11CC21820022444F /* ofxCvColorImage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3077438E11CC21820022444F /* ofxCvColorImage.cpp */; };
+ 3077439F11CC21820022444F /* ofxCvContourFinder.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3077439111CC21820022444F /* ofxCvContourFinder.cpp */; };
+ 307743A011CC21820022444F /* ofxCvFloatImage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3077439311CC21820022444F /* ofxCvFloatImage.cpp */; };
+ 307743A111CC21820022444F /* ofxCvGrayscaleImage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3077439511CC21820022444F /* ofxCvGrayscaleImage.cpp */; };
+ 307743A211CC21820022444F /* ofxCvImage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3077439711CC21820022444F /* ofxCvImage.cpp */; };
+ 307743A311CC21820022444F /* ofxCvShortImage.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 3077439A11CC21820022444F /* ofxCvShortImage.cpp */; };
+ 30F4C320128DF7C400C3D35A /* ofxKinect.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 30F4C31C128DF7C400C3D35A /* ofxKinect.cpp */; };
+ E45BE0AA0E8CC67C009D7055 /* GLee.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE0A90E8CC67C009D7055 /* GLee.a */; };
+ E45BE2E40E8CC69C009D7055 /* rtAudio.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE2E30E8CC69C009D7055 /* rtAudio.a */; };
+ E45BE97B0E8CC7DD009D7055 /* AGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9710E8CC7DD009D7055 /* AGL.framework */; };
+ E45BE97C0E8CC7DD009D7055 /* ApplicationServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9720E8CC7DD009D7055 /* ApplicationServices.framework */; };
+ E45BE97D0E8CC7DD009D7055 /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9730E8CC7DD009D7055 /* AudioToolbox.framework */; };
+ E45BE97E0E8CC7DD009D7055 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9740E8CC7DD009D7055 /* Carbon.framework */; };
+ E45BE97F0E8CC7DD009D7055 /* CoreAudio.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9750E8CC7DD009D7055 /* CoreAudio.framework */; };
+ E45BE9800E8CC7DD009D7055 /* CoreFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9760E8CC7DD009D7055 /* CoreFoundation.framework */; };
+ E45BE9810E8CC7DD009D7055 /* CoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9770E8CC7DD009D7055 /* CoreServices.framework */; };
+ E45BE9830E8CC7DD009D7055 /* OpenGL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE9790E8CC7DD009D7055 /* OpenGL.framework */; };
+ E45BE9840E8CC7DD009D7055 /* QuickTime.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E45BE97A0E8CC7DD009D7055 /* QuickTime.framework */; };
+ E49DA7BE10CD396F0006B5A8 /* freeimage.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E49DA7BD10CD396F0006B5A8 /* freeimage.a */; };
+ E4B69E200A3A1BDC003C02F2 /* main.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E4B69E1D0A3A1BDC003C02F2 /* main.cpp */; };
+ E4B69E210A3A1BDC003C02F2 /* testApp.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E4B69E1E0A3A1BDC003C02F2 /* testApp.cpp */; };
+ E4C2422B10CC554B004149E2 /* openFrameworks.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2421E10CC549C004149E2 /* openFrameworks.a */; };
+ E4C2424710CC5A17004149E2 /* AppKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2424410CC5A17004149E2 /* AppKit.framework */; };
+ E4C2424810CC5A17004149E2 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2424510CC5A17004149E2 /* Cocoa.framework */; };
+ E4C2424910CC5A17004149E2 /* IOKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2424610CC5A17004149E2 /* IOKit.framework */; };
+ E4C2426610CC5A78004149E2 /* GLUT.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2425F10CC5A78004149E2 /* GLUT.framework */; };
+ E4C2426B10CC5AA6004149E2 /* GLUT.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = E4C2425F10CC5A78004149E2 /* GLUT.framework */; };
+ E4C2427F10CC5B66004149E2 /* CppUnit.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2427A10CC5B66004149E2 /* CppUnit.a */; };
+ E4C2428010CC5B66004149E2 /* PocoFoundation.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2427B10CC5B66004149E2 /* PocoFoundation.a */; };
+ E4C2428110CC5B66004149E2 /* PocoNet.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2427C10CC5B66004149E2 /* PocoNet.a */; };
+ E4C2428210CC5B66004149E2 /* PocoUtil.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2427D10CC5B66004149E2 /* PocoUtil.a */; };
+ E4C2428310CC5B66004149E2 /* PocoXML.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2427E10CC5B66004149E2 /* PocoXML.a */; };
+ E4C2429410CC5C38004149E2 /* freetype.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C2429310CC5C38004149E2 /* freetype.a */; };
+ E4C242CD10CC650E004149E2 /* libfmodex.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = E4C242CC10CC650E004149E2 /* libfmodex.dylib */; };
+ E4C2443910CC7693004149E2 /* openFrameworks-Info.plist in CopyFiles */ = {isa = PBXBuildFile; fileRef = E4B6FCAD0C3E899E008CF71C /* openFrameworks-Info.plist */; };
+ E4CEEF2C128F4402008B24E7 /* usb-1.0.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E4CEEF2B128F4402008B24E7 /* usb-1.0.a */; };
+ E4CEEF85128F4649008B24E7 /* cameras.c in Sources */ = {isa = PBXBuildFile; fileRef = 30F4C317128DF7C400C3D35A /* cameras.c */; };
+ E4CEEF86128F4649008B24E7 /* inits.c in Sources */ = {isa = PBXBuildFile; fileRef = 30F4C319128DF7C400C3D35A /* inits.c */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXContainerItemProxy section */
+ E4C2421D10CC549C004149E2 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = E4C2421610CC549C004149E2 /* openFrameworksLib.xcodeproj */;
+ proxyType = 2;
+ remoteGlobalIDString = E4B27C1510CBEB8E00536013;
+ remoteInfo = openFrameworks;
+ };
+ E4C2422710CC54DA004149E2 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = E4C2421610CC549C004149E2 /* openFrameworksLib.xcodeproj */;
+ proxyType = 1;
+ remoteGlobalIDString = E4B27C1410CBEB8E00536013;
+ remoteInfo = openFrameworks;
+ };
+/* End PBXContainerItemProxy section */
+
+/* Begin PBXCopyFilesBuildPhase section */
+ E4C2427710CC5ABF004149E2 /* CopyFiles */ = {
+ isa = PBXCopyFilesBuildPhase;
+ buildActionMask = 2147483647;
+ dstPath = "";
+ dstSubfolderSpec = 10;
+ files = (
+ E4C2443910CC7693004149E2 /* openFrameworks-Info.plist in CopyFiles */,
+ E4C2426B10CC5AA6004149E2 /* GLUT.framework in CopyFiles */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXCopyFilesBuildPhase section */
+
+/* Begin PBXFileReference section */
+ 307525F011CA84AF007EB8FF /* Instructions.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = Instructions.txt; sourceTree = "<group>"; };
+ 307525F311CA84AF007EB8FF /* ofxThread.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ofxThread.cpp; sourceTree = "<group>"; };
+ 307525F411CA84AF007EB8FF /* ofxThread.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxThread.h; sourceTree = "<group>"; };
+ 3077437511CC21810022444F /* install.xml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xml; path = install.xml; sourceTree = "<group>"; };
+ 3077437911CC21810022444F /* cv.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cv.h; sourceTree = "<group>"; };
+ 3077437A11CC21810022444F /* cv.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = cv.hpp; sourceTree = "<group>"; };
+ 3077437B11CC21810022444F /* cvaux.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cvaux.h; sourceTree = "<group>"; };
+ 3077437C11CC21810022444F /* cvaux.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = cvaux.hpp; sourceTree = "<group>"; };
+ 3077437D11CC21810022444F /* cvcompat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cvcompat.h; sourceTree = "<group>"; };
+ 3077437E11CC21810022444F /* cvmat.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = cvmat.hpp; sourceTree = "<group>"; };
+ 3077437F11CC21810022444F /* cvstreams.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cvstreams.h; sourceTree = "<group>"; };
+ 3077438011CC21810022444F /* cvtypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cvtypes.h; sourceTree = "<group>"; };
+ 3077438111CC21810022444F /* cvver.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cvver.h; sourceTree = "<group>"; };
+ 3077438211CC21810022444F /* cvvidsurv.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = cvvidsurv.hpp; sourceTree = "<group>"; };
+ 3077438311CC21810022444F /* cvwimage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cvwimage.h; sourceTree = "<group>"; };
+ 3077438411CC21810022444F /* cxcore.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cxcore.h; sourceTree = "<group>"; };
+ 3077438511CC21810022444F /* cxcore.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; path = cxcore.hpp; sourceTree = "<group>"; };
+ 3077438611CC21810022444F /* cxerror.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cxerror.h; sourceTree = "<group>"; };
+ 3077438711CC21810022444F /* cxmisc.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cxmisc.h; sourceTree = "<group>"; };
+ 3077438811CC21810022444F /* cxtypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cxtypes.h; sourceTree = "<group>"; };
+ 3077438B11CC21820022444F /* openCV.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = openCV.a; sourceTree = "<group>"; };
+ 3077438D11CC21820022444F /* ofxCvBlob.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxCvBlob.h; sourceTree = "<group>"; };
+ 3077438E11CC21820022444F /* ofxCvColorImage.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ofxCvColorImage.cpp; sourceTree = "<group>"; };
+ 3077438F11CC21820022444F /* ofxCvColorImage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxCvColorImage.h; sourceTree = "<group>"; };
+ 3077439011CC21820022444F /* ofxCvConstants.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxCvConstants.h; sourceTree = "<group>"; };
+ 3077439111CC21820022444F /* ofxCvContourFinder.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ofxCvContourFinder.cpp; sourceTree = "<group>"; };
+ 3077439211CC21820022444F /* ofxCvContourFinder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxCvContourFinder.h; sourceTree = "<group>"; };
+ 3077439311CC21820022444F /* ofxCvFloatImage.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ofxCvFloatImage.cpp; sourceTree = "<group>"; };
+ 3077439411CC21820022444F /* ofxCvFloatImage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxCvFloatImage.h; sourceTree = "<group>"; };
+ 3077439511CC21820022444F /* ofxCvGrayscaleImage.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ofxCvGrayscaleImage.cpp; sourceTree = "<group>"; };
+ 3077439611CC21820022444F /* ofxCvGrayscaleImage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxCvGrayscaleImage.h; sourceTree = "<group>"; };
+ 3077439711CC21820022444F /* ofxCvImage.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ofxCvImage.cpp; sourceTree = "<group>"; };
+ 3077439811CC21820022444F /* ofxCvImage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxCvImage.h; sourceTree = "<group>"; };
+ 3077439911CC21820022444F /* ofxCvMain.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxCvMain.h; sourceTree = "<group>"; };
+ 3077439A11CC21820022444F /* ofxCvShortImage.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ofxCvShortImage.cpp; sourceTree = "<group>"; };
+ 3077439B11CC21820022444F /* ofxCvShortImage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxCvShortImage.h; sourceTree = "<group>"; };
+ 3077439C11CC21820022444F /* ofxOpenCv.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxOpenCv.h; sourceTree = "<group>"; };
+ 30F4C317128DF7C400C3D35A /* cameras.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = cameras.c; sourceTree = "<group>"; };
+ 30F4C318128DF7C400C3D35A /* cameras.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = cameras.h; sourceTree = "<group>"; };
+ 30F4C319128DF7C400C3D35A /* inits.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = inits.c; sourceTree = "<group>"; };
+ 30F4C31A128DF7C400C3D35A /* inits.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = inits.txt; sourceTree = "<group>"; };
+ 30F4C31B128DF7C400C3D35A /* libfreenect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = libfreenect.h; sourceTree = "<group>"; };
+ 30F4C31C128DF7C400C3D35A /* ofxKinect.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ofxKinect.cpp; sourceTree = "<group>"; };
+ 30F4C31D128DF7C400C3D35A /* ofxKinect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ofxKinect.h; sourceTree = "<group>"; };
+ 30F4C347128DF93400C3D35A /* libusb.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = libusb.h; sourceTree = "<group>"; };
+ E45BE0390E8CC647009D7055 /* FreeImage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = FreeImage.h; path = ../../../libs/freeimage/include/FreeImage.h; sourceTree = SOURCE_ROOT; };
+ E45BE03F0E8CC650009D7055 /* fmod.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = fmod.h; path = ../../../libs/fmodex/include/fmod.h; sourceTree = SOURCE_ROOT; };
+ E45BE0400E8CC650009D7055 /* fmod.hpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = fmod.hpp; path = ../../../libs/fmodex/include/fmod.hpp; sourceTree = SOURCE_ROOT; };
+ E45BE0410E8CC650009D7055 /* fmod_codec.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = fmod_codec.h; path = ../../../libs/fmodex/include/fmod_codec.h; sourceTree = SOURCE_ROOT; };
+ E45BE0420E8CC650009D7055 /* fmod_dsp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = fmod_dsp.h; path = ../../../libs/fmodex/include/fmod_dsp.h; sourceTree = SOURCE_ROOT; };
+ E45BE0430E8CC650009D7055 /* fmod_errors.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = fmod_errors.h; path = ../../../libs/fmodex/include/fmod_errors.h; sourceTree = SOURCE_ROOT; };
+ E45BE0440E8CC650009D7055 /* fmod_output.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = fmod_output.h; path = ../../../libs/fmodex/include/fmod_output.h; sourceTree = SOURCE_ROOT; };
+ E45BE0A70E8CC67C009D7055 /* GLee.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = GLee.h; path = ../../../libs/GLee/include/GLee.h; sourceTree = SOURCE_ROOT; };
+ E45BE0A90E8CC67C009D7055 /* GLee.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = GLee.a; path = ../../../libs/GLee/lib/osx/GLee.a; sourceTree = SOURCE_ROOT; };
+ E45BE2E00E8CC69C009D7055 /* RtAudio.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RtAudio.h; path = ../../../libs/rtAudio/include/RtAudio.h; sourceTree = SOURCE_ROOT; };
+ E45BE2E10E8CC69C009D7055 /* RtError.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = RtError.h; path = ../../../libs/rtAudio/include/RtError.h; sourceTree = SOURCE_ROOT; };
+ E45BE2E30E8CC69C009D7055 /* rtAudio.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = rtAudio.a; path = ../../../libs/rtAudio/lib/osx/rtAudio.a; sourceTree = SOURCE_ROOT; };
+ E45BE9710E8CC7DD009D7055 /* AGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AGL.framework; path = /System/Library/Frameworks/AGL.framework; sourceTree = "<absolute>"; };
+ E45BE9720E8CC7DD009D7055 /* ApplicationServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ApplicationServices.framework; path = /System/Library/Frameworks/ApplicationServices.framework; sourceTree = "<absolute>"; };
+ E45BE9730E8CC7DD009D7055 /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = /System/Library/Frameworks/AudioToolbox.framework; sourceTree = "<absolute>"; };
+ E45BE9740E8CC7DD009D7055 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = /System/Library/Frameworks/Carbon.framework; sourceTree = "<absolute>"; };
+ E45BE9750E8CC7DD009D7055 /* CoreAudio.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreAudio.framework; path = /System/Library/Frameworks/CoreAudio.framework; sourceTree = "<absolute>"; };
+ E45BE9760E8CC7DD009D7055 /* CoreFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreFoundation.framework; path = /System/Library/Frameworks/CoreFoundation.framework; sourceTree = "<absolute>"; };
+ E45BE9770E8CC7DD009D7055 /* CoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreServices.framework; path = /System/Library/Frameworks/CoreServices.framework; sourceTree = "<absolute>"; };
+ E45BE9790E8CC7DD009D7055 /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = /System/Library/Frameworks/OpenGL.framework; sourceTree = "<absolute>"; };
+ E45BE97A0E8CC7DD009D7055 /* QuickTime.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuickTime.framework; path = /System/Library/Frameworks/QuickTime.framework; sourceTree = "<absolute>"; };
+ E49DA7BD10CD396F0006B5A8 /* freeimage.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = freeimage.a; path = ../../../libs/FreeImage/lib/osx/freeimage.a; sourceTree = SOURCE_ROOT; };
+ E4B69B5B0A3A1756003C02F2 /* ofxKinect.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ofxKinect.app; sourceTree = BUILT_PRODUCTS_DIR; };
+ E4B69E1D0A3A1BDC003C02F2 /* main.cpp */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.cpp; name = main.cpp; path = src/main.cpp; sourceTree = SOURCE_ROOT; };
+ E4B69E1E0A3A1BDC003C02F2 /* testApp.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = testApp.cpp; path = src/testApp.cpp; sourceTree = SOURCE_ROOT; };
+ E4B69E1F0A3A1BDC003C02F2 /* testApp.h */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.c.h; name = testApp.h; path = src/testApp.h; sourceTree = SOURCE_ROOT; };
+ E4B6FCAD0C3E899E008CF71C /* openFrameworks-Info.plist */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = text.plist.xml; path = "openFrameworks-Info.plist"; sourceTree = "<group>"; };
+ E4C2421610CC549C004149E2 /* openFrameworksLib.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = openFrameworksLib.xcodeproj; path = ../../../libs/openFrameworksCompiled/project/osx/openFrameworksLib.xcodeproj; sourceTree = SOURCE_ROOT; };
+ E4C2424410CC5A17004149E2 /* AppKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AppKit.framework; path = /System/Library/Frameworks/AppKit.framework; sourceTree = "<absolute>"; };
+ E4C2424510CC5A17004149E2 /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; };
+ E4C2424610CC5A17004149E2 /* IOKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IOKit.framework; path = /System/Library/Frameworks/IOKit.framework; sourceTree = "<absolute>"; };
+ E4C2425F10CC5A78004149E2 /* GLUT.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GLUT.framework; path = ../../../libs/glut/lib/osx/GLUT.framework; sourceTree = SOURCE_ROOT; };
+ E4C2427A10CC5B66004149E2 /* CppUnit.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = CppUnit.a; path = ../../../libs/poco/lib/osx/CppUnit.a; sourceTree = SOURCE_ROOT; };
+ E4C2427B10CC5B66004149E2 /* PocoFoundation.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = PocoFoundation.a; path = ../../../libs/poco/lib/osx/PocoFoundation.a; sourceTree = SOURCE_ROOT; };
+ E4C2427C10CC5B66004149E2 /* PocoNet.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = PocoNet.a; path = ../../../libs/poco/lib/osx/PocoNet.a; sourceTree = SOURCE_ROOT; };
+ E4C2427D10CC5B66004149E2 /* PocoUtil.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = PocoUtil.a; path = ../../../libs/poco/lib/osx/PocoUtil.a; sourceTree = SOURCE_ROOT; };
+ E4C2427E10CC5B66004149E2 /* PocoXML.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = PocoXML.a; path = ../../../libs/poco/lib/osx/PocoXML.a; sourceTree = SOURCE_ROOT; };
+ E4C2429310CC5C38004149E2 /* freetype.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = freetype.a; path = ../../../libs/freetype/lib/osx/freetype.a; sourceTree = SOURCE_ROOT; };
+ E4C242CC10CC650E004149E2 /* libfmodex.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libfmodex.dylib; path = ../../../libs/fmodex/lib/osx/libfmodex.dylib; sourceTree = SOURCE_ROOT; };
+ E4CEEF2B128F4402008B24E7 /* usb-1.0.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = "usb-1.0.a"; path = "libs/usb-1.0.a"; sourceTree = "<group>"; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+ E4B69B590A3A1756003C02F2 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ E4C2422B10CC554B004149E2 /* openFrameworks.a in Frameworks */,
+ E45BE0AA0E8CC67C009D7055 /* GLee.a in Frameworks */,
+ E45BE2E40E8CC69C009D7055 /* rtAudio.a in Frameworks */,
+ E45BE97B0E8CC7DD009D7055 /* AGL.framework in Frameworks */,
+ E45BE97C0E8CC7DD009D7055 /* ApplicationServices.framework in Frameworks */,
+ E45BE97D0E8CC7DD009D7055 /* AudioToolbox.framework in Frameworks */,
+ E45BE97E0E8CC7DD009D7055 /* Carbon.framework in Frameworks */,
+ E45BE97F0E8CC7DD009D7055 /* CoreAudio.framework in Frameworks */,
+ E45BE9800E8CC7DD009D7055 /* CoreFoundation.framework in Frameworks */,
+ E45BE9810E8CC7DD009D7055 /* CoreServices.framework in Frameworks */,
+ E45BE9830E8CC7DD009D7055 /* OpenGL.framework in Frameworks */,
+ E45BE9840E8CC7DD009D7055 /* QuickTime.framework in Frameworks */,
+ E4C2424710CC5A17004149E2 /* AppKit.framework in Frameworks */,
+ E4C2424810CC5A17004149E2 /* Cocoa.framework in Frameworks */,
+ E4C2424910CC5A17004149E2 /* IOKit.framework in Frameworks */,
+ E4C2426610CC5A78004149E2 /* GLUT.framework in Frameworks */,
+ E4C2427F10CC5B66004149E2 /* CppUnit.a in Frameworks */,
+ E4C2428010CC5B66004149E2 /* PocoFoundation.a in Frameworks */,
+ E4C2428110CC5B66004149E2 /* PocoNet.a in Frameworks */,
+ E4C2428210CC5B66004149E2 /* PocoUtil.a in Frameworks */,
+ E4C2428310CC5B66004149E2 /* PocoXML.a in Frameworks */,
+ E4C2429410CC5C38004149E2 /* freetype.a in Frameworks */,
+ E4C242CD10CC650E004149E2 /* libfmodex.dylib in Frameworks */,
+ E49DA7BE10CD396F0006B5A8 /* freeimage.a in Frameworks */,
+ 3077439D11CC21820022444F /* openCV.a in Frameworks */,
+ E4CEEF2C128F4402008B24E7 /* usb-1.0.a in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+ 307525EE11CA84AF007EB8FF /* ofxThread */ = {
+ isa = PBXGroup;
+ children = (
+ 307525EF11CA84AF007EB8FF /* docs */,
+ 307525F211CA84AF007EB8FF /* src */,
+ );
+ path = ofxThread;
+ sourceTree = "<group>";
+ };
+ 307525EF11CA84AF007EB8FF /* docs */ = {
+ isa = PBXGroup;
+ children = (
+ 307525F011CA84AF007EB8FF /* Instructions.txt */,
+ );
+ path = docs;
+ sourceTree = "<group>";
+ };
+ 307525F211CA84AF007EB8FF /* src */ = {
+ isa = PBXGroup;
+ children = (
+ 307525F311CA84AF007EB8FF /* ofxThread.cpp */,
+ 307525F411CA84AF007EB8FF /* ofxThread.h */,
+ );
+ path = src;
+ sourceTree = "<group>";
+ };
+ 3077437411CC21810022444F /* ofxOpenCv */ = {
+ isa = PBXGroup;
+ children = (
+ 3077437511CC21810022444F /* install.xml */,
+ 3077437611CC21810022444F /* libs */,
+ 3077438C11CC21820022444F /* src */,
+ );
+ path = ofxOpenCv;
+ sourceTree = "<group>";
+ };
+ 3077437611CC21810022444F /* libs */ = {
+ isa = PBXGroup;
+ children = (
+ 3077437711CC21810022444F /* opencv */,
+ );
+ path = libs;
+ sourceTree = "<group>";
+ };
+ 3077437711CC21810022444F /* opencv */ = {
+ isa = PBXGroup;
+ children = (
+ 3077437811CC21810022444F /* include */,
+ 3077438911CC21820022444F /* lib */,
+ );
+ path = opencv;
+ sourceTree = "<group>";
+ };
+ 3077437811CC21810022444F /* include */ = {
+ isa = PBXGroup;
+ children = (
+ 3077437911CC21810022444F /* cv.h */,
+ 3077437A11CC21810022444F /* cv.hpp */,
+ 3077437B11CC21810022444F /* cvaux.h */,
+ 3077437C11CC21810022444F /* cvaux.hpp */,
+ 3077437D11CC21810022444F /* cvcompat.h */,
+ 3077437E11CC21810022444F /* cvmat.hpp */,
+ 3077437F11CC21810022444F /* cvstreams.h */,
+ 3077438011CC21810022444F /* cvtypes.h */,
+ 3077438111CC21810022444F /* cvver.h */,
+ 3077438211CC21810022444F /* cvvidsurv.hpp */,
+ 3077438311CC21810022444F /* cvwimage.h */,
+ 3077438411CC21810022444F /* cxcore.h */,
+ 3077438511CC21810022444F /* cxcore.hpp */,
+ 3077438611CC21810022444F /* cxerror.h */,
+ 3077438711CC21810022444F /* cxmisc.h */,
+ 3077438811CC21810022444F /* cxtypes.h */,
+ );
+ path = include;
+ sourceTree = "<group>";
+ };
+ 3077438911CC21820022444F /* lib */ = {
+ isa = PBXGroup;
+ children = (
+ 3077438A11CC21820022444F /* osx */,
+ );
+ path = lib;
+ sourceTree = "<group>";
+ };
+ 3077438A11CC21820022444F /* osx */ = {
+ isa = PBXGroup;
+ children = (
+ 3077438B11CC21820022444F /* openCV.a */,
+ );
+ path = osx;
+ sourceTree = "<group>";
+ };
+ 3077438C11CC21820022444F /* src */ = {
+ isa = PBXGroup;
+ children = (
+ 3077438D11CC21820022444F /* ofxCvBlob.h */,
+ 3077438E11CC21820022444F /* ofxCvColorImage.cpp */,
+ 3077438F11CC21820022444F /* ofxCvColorImage.h */,
+ 3077439011CC21820022444F /* ofxCvConstants.h */,
+ 3077439111CC21820022444F /* ofxCvContourFinder.cpp */,
+ 3077439211CC21820022444F /* ofxCvContourFinder.h */,
+ 3077439311CC21820022444F /* ofxCvFloatImage.cpp */,
+ 3077439411CC21820022444F /* ofxCvFloatImage.h */,
+ 3077439511CC21820022444F /* ofxCvGrayscaleImage.cpp */,
+ 3077439611CC21820022444F /* ofxCvGrayscaleImage.h */,
+ 3077439711CC21820022444F /* ofxCvImage.cpp */,
+ 3077439811CC21820022444F /* ofxCvImage.h */,
+ 3077439911CC21820022444F /* ofxCvMain.h */,
+ 3077439A11CC21820022444F /* ofxCvShortImage.cpp */,
+ 3077439B11CC21820022444F /* ofxCvShortImage.h */,
+ 3077439C11CC21820022444F /* ofxOpenCv.h */,
+ );
+ path = src;
+ sourceTree = "<group>";
+ };
+ 30F4C316128DF7C400C3D35A /* libfreenect */ = {
+ isa = PBXGroup;
+ children = (
+ 30F4C317128DF7C400C3D35A /* cameras.c */,
+ 30F4C318128DF7C400C3D35A /* cameras.h */,
+ 30F4C319128DF7C400C3D35A /* inits.c */,
+ 30F4C31A128DF7C400C3D35A /* inits.txt */,
+ 30F4C31B128DF7C400C3D35A /* libfreenect.h */,
+ );
+ name = libfreenect;
+ path = src/libfreenect;
+ sourceTree = "<group>";
+ };
+ 30F4C345128DF93400C3D35A /* libusb-osx */ = {
+ isa = PBXGroup;
+ children = (
+ E4CEEF2B128F4402008B24E7 /* usb-1.0.a */,
+ 30F4C346128DF93400C3D35A /* include */,
+ );
+ path = "libusb-osx";
+ sourceTree = "<group>";
+ };
+ 30F4C346128DF93400C3D35A /* include */ = {
+ isa = PBXGroup;
+ children = (
+ 30F4C347128DF93400C3D35A /* libusb.h */,
+ );
+ path = include;
+ sourceTree = "<group>";
+ };
+ E44665C70F5B3E03005D0BF0 /* addons */ = {
+ isa = PBXGroup;
+ children = (
+ 3077437411CC21810022444F /* ofxOpenCv */,
+ 307525EE11CA84AF007EB8FF /* ofxThread */,
+ );
+ name = addons;
+ path = ../../../addons;
+ sourceTree = SOURCE_ROOT;
+ };
+ E45BE0360E8CC5DE009D7055 /* libs */ = {
+ isa = PBXGroup;
+ children = (
+ E45BEED60E8CCB34009D7055 /* core */,
+ );
+ name = libs;
+ sourceTree = "<group>";
+ };
+ E45BE0370E8CC647009D7055 /* freeimage */ = {
+ isa = PBXGroup;
+ children = (
+ E49DA7BC10CD396F0006B5A8 /* osx */,
+ E45BE0380E8CC647009D7055 /* include */,
+ );
+ name = freeimage;
+ path = ../../../libs/freeimage;
+ sourceTree = SOURCE_ROOT;
+ };
+ E45BE0380E8CC647009D7055 /* include */ = {
+ isa = PBXGroup;
+ children = (
+ E45BE0390E8CC647009D7055 /* FreeImage.h */,
+ );
+ name = include;
+ path = ../../../libs/freeimage/include;
+ sourceTree = SOURCE_ROOT;
+ };
+ E45BE03D0E8CC650009D7055 /* fmodex */ = {
+ isa = PBXGroup;
+ children = (
+ E45BE03E0E8CC650009D7055 /* inc */,
+ E4C2428E10CC5C18004149E2 /* osx */,
+ );
+ name = fmodex;
+ path = ../../../libs/fmodex;
+ sourceTree = SOURCE_ROOT;
+ };
+ E45BE03E0E8CC650009D7055 /* inc */ = {
+ isa = PBXGroup;
+ children = (
+ E45BE03F0E8CC650009D7055 /* fmod.h */,
+ E45BE0400E8CC650009D7055 /* fmod.hpp */,
+ E45BE0410E8CC650009D7055 /* fmod_codec.h */,
+ E45BE0420E8CC650009D7055 /* fmod_dsp.h */,
+ E45BE0430E8CC650009D7055 /* fmod_errors.h */,
+ E45BE0440E8CC650009D7055 /* fmod_output.h */,
+ );
+ name = inc;
+ path = ../../../libs/fmodex/include;
+ sourceTree = SOURCE_ROOT;
+ };
+ E45BE0480E8CC657009D7055 /* core libraries */ = {
+ isa = PBXGroup;
+ children = (
+ E4C2425B10CC5A78004149E2 /* glut */,
+ E45BEC7B0E8CC911009D7055 /* poco */,
+ E45BE2D50E8CC69C009D7055 /* rtAudio */,
+ E45BE0A50E8CC67C009D7055 /* GLee */,
+ E45BE0490E8CC676009D7055 /* freetype */,
+ E45BE03D0E8CC650009D7055 /* fmodex */,
+ E45BE0370E8CC647009D7055 /* freeimage */,
+ );
+ name = "core libraries";
+ sourceTree = "<group>";
+ };
+ E45BE0490E8CC676009D7055 /* freetype */ = {
+ isa = PBXGroup;
+ children = (
+ E4C2429210CC5C38004149E2 /* osx */,
+ );
+ name = freetype;
+ path = ../../../libs/freetype;
+ sourceTree = SOURCE_ROOT;
+ };
+ E45BE0A50E8CC67C009D7055 /* GLee */ = {
+ isa = PBXGroup;
+ children = (
+ E45BE0A60E8CC67C009D7055 /* include */,
+ E45BE0A80E8CC67C009D7055 /* lib */,
+ );
+ name = GLee;
+ path = ../../../libs/GLee;
+ sourceTree = SOURCE_ROOT;
+ };
+ E45BE0A60E8CC67C009D7055 /* include */ = {
+ isa = PBXGroup;
+ children = (
+ E45BE0A70E8CC67C009D7055 /* GLee.h */,
+ );
+ name = include;
+ path = ../../../libs/GLee/include;
+ sourceTree = SOURCE_ROOT;
+ };
+ E45BE0A80E8CC67C009D7055 /* lib */ = {
+ isa = PBXGroup;
+ children = (
+ E45BE0A90E8CC67C009D7055 /* GLee.a */,
+ );
+ name = lib;
+ path = ../../../libs/GLee/lib/osx;
+ sourceTree = SOURCE_ROOT;
+ };
+ E45BE2D50E8CC69C009D7055 /* rtAudio */ = {
+ isa = PBXGroup;
+ children = (
+ E45BE2D60E8CC69C009D7055 /* include */,
+ E45BE2E20E8CC69C009D7055 /* lib */,
+ );
+ name = rtAudio;
+ path = ../../../libs/rtAudio;
+ sourceTree = SOURCE_ROOT;
+ };
+ E45BE2D60E8CC69C009D7055 /* include */ = {
+ isa = PBXGroup;
+ children = (
+ E45BE2D70E8CC69C009D7055 /* asio */,
+ E45BE2E00E8CC69C009D7055 /* RtAudio.h */,
+ E45BE2E10E8CC69C009D7055 /* RtError.h */,
+ );
+ name = include;
+ path = ../../../libs/rtAudio/include;
+ sourceTree = SOURCE_ROOT;
+ };
+ E45BE2D70E8CC69C009D7055 /* asio */ = {
+ isa = PBXGroup;
+ children = (
+ );
+ name = asio;
+ path = ../../../libs/rtAudio/include/asio;
+ sourceTree = SOURCE_ROOT;
+ };
+ E45BE2E20E8CC69C009D7055 /* lib */ = {
+ isa = PBXGroup;
+ children = (
+ E45BE2E30E8CC69C009D7055 /* rtAudio.a */,
+ );
+ name = lib;
+ path = ../../../libs/rtAudio/lib/osx;
+ sourceTree = SOURCE_ROOT;
+ };
+ E45BE5980E8CC70C009D7055 /* core frameworks */ = {
+ isa = PBXGroup;
+ children = (
+ E4C2424410CC5A17004149E2 /* AppKit.framework */,
+ E4C2424510CC5A17004149E2 /* Cocoa.framework */,
+ E4C2424610CC5A17004149E2 /* IOKit.framework */,
+ E45BE9710E8CC7DD009D7055 /* AGL.framework */,
+ E45BE9720E8CC7DD009D7055 /* ApplicationServices.framework */,
+ E45BE9730E8CC7DD009D7055 /* AudioToolbox.framework */,
+ E45BE9740E8CC7DD009D7055 /* Carbon.framework */,
+ E45BE9750E8CC7DD009D7055 /* CoreAudio.framework */,
+ E45BE9760E8CC7DD009D7055 /* CoreFoundation.framework */,
+ E45BE9770E8CC7DD009D7055 /* CoreServices.framework */,
+ E45BE9790E8CC7DD009D7055 /* OpenGL.framework */,
+ E45BE97A0E8CC7DD009D7055 /* QuickTime.framework */,
+ );
+ name = "core frameworks";
+ sourceTree = "<group>";
+ };
+ E45BEC7B0E8CC911009D7055 /* poco */ = {
+ isa = PBXGroup;
+ children = (
+ E4C2427910CC5B66004149E2 /* osx */,
+ );
+ name = poco;
+ path = ../../../libs/poco;
+ sourceTree = SOURCE_ROOT;
+ };
+ E45BEED60E8CCB34009D7055 /* core */ = {
+ isa = PBXGroup;
+ children = (
+ E45BE0480E8CC657009D7055 /* core libraries */,
+ E45BE5980E8CC70C009D7055 /* core frameworks */,
+ );
+ name = core;
+ sourceTree = "<group>";
+ };
+ E49DA7BC10CD396F0006B5A8 /* osx */ = {
+ isa = PBXGroup;
+ children = (
+ E49DA7BD10CD396F0006B5A8 /* freeimage.a */,
+ );
+ name = osx;
+ path = ../../../libs/FreeImage/lib/osx;
+ sourceTree = SOURCE_ROOT;
+ };
+ E4B69B4A0A3A1720003C02F2 = {
+ isa = PBXGroup;
+ children = (
+ 30F4C345128DF93400C3D35A /* libusb-osx */,
+ E4B69B5B0A3A1756003C02F2 /* ofxKinect.app */,
+ E4B6FCAD0C3E899E008CF71C /* openFrameworks-Info.plist */,
+ 30F4C316128DF7C400C3D35A /* libfreenect */,
+ E4B69E1C0A3A1BDC003C02F2 /* src */,
+ E4C2422310CC54B6004149E2 /* openFrameworks */,
+ E44665C70F5B3E03005D0BF0 /* addons */,
+ E45BE0360E8CC5DE009D7055 /* libs */,
+ );
+ sourceTree = "<group>";
+ };
+ E4B69E1C0A3A1BDC003C02F2 /* src */ = {
+ isa = PBXGroup;
+ children = (
+ 30F4C31C128DF7C400C3D35A /* ofxKinect.cpp */,
+ 30F4C31D128DF7C400C3D35A /* ofxKinect.h */,
+ E4B69E1D0A3A1BDC003C02F2 /* main.cpp */,
+ E4B69E1E0A3A1BDC003C02F2 /* testApp.cpp */,
+ E4B69E1F0A3A1BDC003C02F2 /* testApp.h */,
+ );
+ path = src;
+ sourceTree = SOURCE_ROOT;
+ };
+ E4C2421710CC549C004149E2 /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ E4C2421E10CC549C004149E2 /* openFrameworks.a */,
+ );
+ name = Products;
+ sourceTree = "<group>";
+ };
+ E4C2422310CC54B6004149E2 /* openFrameworks */ = {
+ isa = PBXGroup;
+ children = (
+ E4C2421610CC549C004149E2 /* openFrameworksLib.xcodeproj */,
+ );
+ name = openFrameworks;
+ sourceTree = "<group>";
+ };
+ E4C2425B10CC5A78004149E2 /* glut */ = {
+ isa = PBXGroup;
+ children = (
+ E4C2425D10CC5A78004149E2 /* lib */,
+ );
+ name = glut;
+ path = ../../../libs/glut;
+ sourceTree = SOURCE_ROOT;
+ };
+ E4C2425D10CC5A78004149E2 /* lib */ = {
+ isa = PBXGroup;
+ children = (
+ E4C2425E10CC5A78004149E2 /* osx */,
+ );
+ name = lib;
+ path = ../../../libs/glut/lib;
+ sourceTree = SOURCE_ROOT;
+ };
+ E4C2425E10CC5A78004149E2 /* osx */ = {
+ isa = PBXGroup;
+ children = (
+ E4C2425F10CC5A78004149E2 /* GLUT.framework */,
+ );
+ name = osx;
+ path = ../../../libs/glut/lib/osx;
+ sourceTree = SOURCE_ROOT;
+ };
+ E4C2427910CC5B66004149E2 /* osx */ = {
+ isa = PBXGroup;
+ children = (
+ E4C2427A10CC5B66004149E2 /* CppUnit.a */,
+ E4C2427B10CC5B66004149E2 /* PocoFoundation.a */,
+ E4C2427C10CC5B66004149E2 /* PocoNet.a */,
+ E4C2427D10CC5B66004149E2 /* PocoUtil.a */,
+ E4C2427E10CC5B66004149E2 /* PocoXML.a */,
+ );
+ name = osx;
+ path = ../../../libs/poco/lib/osx;
+ sourceTree = SOURCE_ROOT;
+ };
+ E4C2428E10CC5C18004149E2 /* osx */ = {
+ isa = PBXGroup;
+ children = (
+ E4C242CC10CC650E004149E2 /* libfmodex.dylib */,
+ );
+ name = osx;
+ path = ../../../libs/fmodex/lib/osx;
+ sourceTree = SOURCE_ROOT;
+ };
+ E4C2429210CC5C38004149E2 /* osx */ = {
+ isa = PBXGroup;
+ children = (
+ E4C2429310CC5C38004149E2 /* freetype.a */,
+ );
+ name = osx;
+ path = ../../../libs/freetype/lib/osx;
+ sourceTree = SOURCE_ROOT;
+ };
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+ E4B69B5A0A3A1756003C02F2 /* ofxKinect */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = E4B69B5F0A3A1757003C02F2 /* Build configuration list for PBXNativeTarget "ofxKinect" */;
+ buildPhases = (
+ E4B69B580A3A1756003C02F2 /* Sources */,
+ E4B69B590A3A1756003C02F2 /* Frameworks */,
+ E4B6FFFD0C3F9AB9008CF71C /* ShellScript */,
+ E4C2427710CC5ABF004149E2 /* CopyFiles */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ E4C2422810CC54DA004149E2 /* PBXTargetDependency */,
+ );
+ name = ofxKinect;
+ productName = myOFApp;
+ productReference = E4B69B5B0A3A1756003C02F2 /* ofxKinect.app */;
+ productType = "com.apple.product-type.application";
+ };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+ E4B69B4C0A3A1720003C02F2 /* Project object */ = {
+ isa = PBXProject;
+ buildConfigurationList = E4B69B4D0A3A1720003C02F2 /* Build configuration list for PBXProject "ofxKinect" */;
+ compatibilityVersion = "Xcode 2.4";
+ developmentRegion = English;
+ hasScannedForEncodings = 0;
+ knownRegions = (
+ English,
+ Japanese,
+ French,
+ German,
+ );
+ mainGroup = E4B69B4A0A3A1720003C02F2;
+ productRefGroup = E4B69B4A0A3A1720003C02F2;
+ projectDirPath = "";
+ projectReferences = (
+ {
+ ProductGroup = E4C2421710CC549C004149E2 /* Products */;
+ ProjectRef = E4C2421610CC549C004149E2 /* openFrameworksLib.xcodeproj */;
+ },
+ );
+ projectRoot = "";
+ targets = (
+ E4B69B5A0A3A1756003C02F2 /* ofxKinect */,
+ );
+ };
+/* End PBXProject section */
+
+/* Begin PBXReferenceProxy section */
+ E4C2421E10CC549C004149E2 /* openFrameworks.a */ = {
+ isa = PBXReferenceProxy;
+ fileType = archive.ar;
+ path = openFrameworks.a;
+ remoteRef = E4C2421D10CC549C004149E2 /* PBXContainerItemProxy */;
+ sourceTree = BUILT_PRODUCTS_DIR;
+ };
+/* End PBXReferenceProxy section */
+
+/* Begin PBXShellScriptBuildPhase section */
+ E4B6FFFD0C3F9AB9008CF71C /* ShellScript */ = {
+ isa = PBXShellScriptBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ inputPaths = (
+ );
+ outputPaths = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ shellPath = /bin/sh;
+ shellScript = "cp -f ../../../libs/fmodex/lib/osx/libfmodex.dylib \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/MacOS/libfmodex.dylib\"\ninstall_name_tool -change ./libfmodex.dylib @executable_path/libfmodex.dylib \"$TARGET_BUILD_DIR/$PRODUCT_NAME.app/Contents/MacOS/$PRODUCT_NAME\" ";
+ };
+/* End PBXShellScriptBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+ E4B69B580A3A1756003C02F2 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ E4CEEF85128F4649008B24E7 /* cameras.c in Sources */,
+ E4CEEF86128F4649008B24E7 /* inits.c in Sources */,
+ E4B69E200A3A1BDC003C02F2 /* main.cpp in Sources */,
+ E4B69E210A3A1BDC003C02F2 /* testApp.cpp in Sources */,
+ 307525F511CA84AF007EB8FF /* ofxThread.cpp in Sources */,
+ 3077439E11CC21820022444F /* ofxCvColorImage.cpp in Sources */,
+ 3077439F11CC21820022444F /* ofxCvContourFinder.cpp in Sources */,
+ 307743A011CC21820022444F /* ofxCvFloatImage.cpp in Sources */,
+ 307743A111CC21820022444F /* ofxCvGrayscaleImage.cpp in Sources */,
+ 307743A211CC21820022444F /* ofxCvImage.cpp in Sources */,
+ 307743A311CC21820022444F /* ofxCvShortImage.cpp in Sources */,
+ 30F4C320128DF7C400C3D35A /* ofxKinect.cpp in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXTargetDependency section */
+ E4C2422810CC54DA004149E2 /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ name = openFrameworks;
+ targetProxy = E4C2422710CC54DA004149E2 /* PBXContainerItemProxy */;
+ };
+/* End PBXTargetDependency section */
+
+/* Begin XCBuildConfiguration section */
+ E4B27CA010CBF8A600536013 /* ReleaseUniversal */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ARCHS = i386;
+ CONFIGURATION_BUILD_DIR = "$(SRCROOT)/bin/";
+ COPY_PHASE_STRIP = YES;
+ DEAD_CODE_STRIPPING = YES;
+ GCC_AUTO_VECTORIZATION = YES;
+ GCC_ENABLE_SSE3_EXTENSIONS = YES;
+ GCC_ENABLE_SUPPLEMENTAL_SSE3_INSTRUCTIONS = YES;
+ GCC_INLINES_ARE_PRIVATE_EXTERN = NO;
+ GCC_MODEL_TUNING = G5;
+ GCC_OPTIMIZATION_LEVEL = 3;
+ GCC_SYMBOLS_PRIVATE_EXTERN = NO;
+ GCC_UNROLL_LOOPS = YES;
+ GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO;
+ GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO = NO;
+ GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL = NO;
+ GCC_WARN_UNINITIALIZED_AUTOS = NO;
+ GCC_WARN_UNUSED_VALUE = NO;
+ GCC_WARN_UNUSED_VARIABLE = NO;
+ HEADER_SEARCH_PATHS = (
+ "../../../libs/openFrameworks/**",
+ ../../../libs/freetype/include/,
+ ../../../libs/freetype/include/freetype2,
+ ../../../libs/poco/include,
+ ../../../addons/,
+ );
+ OTHER_CPLUSPLUSFLAGS = (
+ "-D__MACOSX_CORE__",
+ "-lpthread",
+ );
+ OTHER_LDFLAGS = "";
+ PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = YES;
+ SDKROOT = /Developer/SDKs/MacOSX10.5.sdk;
+ VALID_ARCHS = i386;
+ };
+ name = ReleaseUniversal;
+ };
+ E4B27CA110CBF8A600536013 /* ReleaseUniversal */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ COPY_PHASE_STRIP = YES;
+ FRAMEWORK_SEARCH_PATHS = (
+ "$(inherited)",
+ "$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1)",
+ );
+ FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(SRCROOT)/../../../libs/glut/lib/osx\"";
+ GCC_ENABLE_FIX_AND_CONTINUE = NO;
+ GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
+ GCC_MODEL_TUNING = G4;
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/Carbon.framework/Headers/Carbon.h";
+ INFOPLIST_FILE = "openFrameworks-Info.plist";
+ INSTALL_PATH = "$(HOME)/Applications";
+ LIBRARY_SEARCH_PATHS = (
+ "$(inherited)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_1)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_4)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_5)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_6)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_7)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_8)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_10)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_11)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_12)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_13)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_14)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_15)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_7)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_8)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_2)",
+ );
+ LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(SRCROOT)/libusb-osx/libs\"";
+ LIBRARY_SEARCH_PATHS_QUOTED_2 = "\"$(SRCROOT)/libusb-osx/libs\"";
+ LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(SRCROOT)/../../../libs/freeimage/lib/osx\"";
+ LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_10 = "\"$(SRCROOT)/bin\"";
+ LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_12 = "\"$(SRCROOT)/../../../addons/ofxOpenCv/libs/opencv/lib/osx\"";
+ LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_13 = "\"$(SRCROOT)/../../../addons/ofxOsc/libs/oscpack/lib/osx\"";
+ LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_15 = "\"$(SRCROOT)/../../../libs/freetype/lib/osx\"";
+ LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2 = "\"$(SRCROOT)/../../../libs/fmodex/lib/osx\"";
+ LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3 = "\"$(SRCROOT)/../../../libs/FreeImage/lib/osx\"";
+ LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_4 = "\"$(SRCROOT)/../../../libs/GLee/lib/osx\"";
+ LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_5 = "\"$(SRCROOT)/../../../libs/poco/lib/osx\"";
+ LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_6 = "\"$(SRCROOT)/../../../libs/rtAudio/lib/osx\"";
+ LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_7 = "\"$(SRCROOT)/../../../addons/ofxOpenCv/libs/opencv/lib/osx\"";
+ LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_8 = "\"$(SRCROOT)/libusb-osx/libs32\"";
+ LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9 = "\"$(SRCROOT)/libusb-osx/libs\"";
+ PREBINDING = NO;
+ PRODUCT_NAME = ofxKinectUniversal;
+ WRAPPER_EXTENSION = app;
+ ZERO_LINK = NO;
+ };
+ name = ReleaseUniversal;
+ };
+ E4B69B4E0A3A1720003C02F2 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ARCHS = i386;
+ CONFIGURATION_BUILD_DIR = "$(SRCROOT)/bin/";
+ COPY_PHASE_STRIP = NO;
+ DEAD_CODE_STRIPPING = YES;
+ GCC_AUTO_VECTORIZATION = YES;
+ GCC_ENABLE_SSE3_EXTENSIONS = YES;
+ GCC_ENABLE_SUPPLEMENTAL_SSE3_INSTRUCTIONS = YES;
+ GCC_INLINES_ARE_PRIVATE_EXTERN = NO;
+ GCC_MODEL_TUNING = G5;
+ GCC_SYMBOLS_PRIVATE_EXTERN = NO;
+ GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO;
+ GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO = NO;
+ GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL = NO;
+ GCC_WARN_UNINITIALIZED_AUTOS = NO;
+ GCC_WARN_UNUSED_VALUE = NO;
+ GCC_WARN_UNUSED_VARIABLE = NO;
+ HEADER_SEARCH_PATHS = (
+ "../../../libs/openFrameworks/**",
+ ../../../libs/freetype/include/,
+ ../../../libs/freetype/include/freetype2,
+ ../../../libs/poco/include,
+ ../../../addons/,
+ );
+ OTHER_CPLUSPLUSFLAGS = (
+ "-D__MACOSX_CORE__",
+ "-lpthread",
+ );
+ OTHER_LDFLAGS = "";
+ PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = YES;
+ SDKROOT = /Developer/SDKs/MacOSX10.5.sdk;
+ VALID_ARCHS = i386;
+ };
+ name = Debug;
+ };
+ E4B69B4F0A3A1720003C02F2 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ARCHS = i386;
+ CONFIGURATION_BUILD_DIR = "$(SRCROOT)/bin/";
+ COPY_PHASE_STRIP = YES;
+ DEAD_CODE_STRIPPING = YES;
+ GCC_AUTO_VECTORIZATION = YES;
+ GCC_ENABLE_SSE3_EXTENSIONS = YES;
+ GCC_ENABLE_SUPPLEMENTAL_SSE3_INSTRUCTIONS = YES;
+ GCC_INLINES_ARE_PRIVATE_EXTERN = NO;
+ GCC_MODEL_TUNING = G5;
+ GCC_OPTIMIZATION_LEVEL = 3;
+ GCC_SYMBOLS_PRIVATE_EXTERN = NO;
+ GCC_UNROLL_LOOPS = YES;
+ GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO;
+ GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO = NO;
+ GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL = NO;
+ GCC_WARN_UNINITIALIZED_AUTOS = NO;
+ GCC_WARN_UNUSED_VALUE = NO;
+ GCC_WARN_UNUSED_VARIABLE = NO;
+ HEADER_SEARCH_PATHS = (
+ "../../../libs/openFrameworks/**",
+ ../../../libs/freetype/include/,
+ ../../../libs/freetype/include/freetype2,
+ ../../../libs/poco/include,
+ ../../../addons/,
+ );
+ OTHER_CPLUSPLUSFLAGS = (
+ "-D__MACOSX_CORE__",
+ "-lpthread",
+ );
+ OTHER_LDFLAGS = "";
+ PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR = YES;
+ SDKROOT = /Developer/SDKs/MacOSX10.5.sdk;
+ VALID_ARCHS = i386;
+ };
+ name = Release;
+ };
+ E4B69B600A3A1757003C02F2 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ COPY_PHASE_STRIP = NO;
+ FRAMEWORK_SEARCH_PATHS = (
+ "$(inherited)",
+ "$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1)",
+ );
+ FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(SRCROOT)/../../../libs/glut/lib/osx\"";
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_ENABLE_FIX_AND_CONTINUE = YES;
+ GCC_GENERATE_DEBUGGING_SYMBOLS = YES;
+ GCC_MODEL_TUNING = G4;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/Carbon.framework/Headers/Carbon.h";
+ INFOPLIST_FILE = "openFrameworks-Info.plist";
+ INSTALL_PATH = "$(HOME)/Applications";
+ LIBRARY_SEARCH_PATHS = (
+ "$(inherited)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_1)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_4)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_5)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_6)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_7)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_8)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_10)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_11)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_12)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_13)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_14)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_15)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_7)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_8)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_11)",
+ );
+ LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(SRCROOT)/../../../libs/freeimage/lib/osx\"";
+ LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_10 = "\"$(SRCROOT)/bin\"";
+ LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_11 = "\"$(SRCROOT)/libusb-osx/libs\"";
+ LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_12 = "\"$(SRCROOT)/../../../addons/ofxOpenCv/libs/opencv/lib/osx\"";
+ LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_13 = "\"$(SRCROOT)/../../../addons/ofxOsc/libs/oscpack/lib/osx\"";
+ LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_15 = "\"$(SRCROOT)/../../../libs/freetype/lib/osx\"";
+ LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2 = "\"$(SRCROOT)/../../../libs/fmodex/lib/osx\"";
+ LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3 = "\"$(SRCROOT)/../../../libs/FreeImage/lib/osx\"";
+ LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_4 = "\"$(SRCROOT)/../../../libs/GLee/lib/osx\"";
+ LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_5 = "\"$(SRCROOT)/../../../libs/poco/lib/osx\"";
+ LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_6 = "\"$(SRCROOT)/../../../libs/rtAudio/lib/osx\"";
+ LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_7 = "\"$(SRCROOT)/../../../addons/ofxOpenCv/libs/opencv/lib/osx\"";
+ LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_8 = "\"$(SRCROOT)/libusb-osx/libs\"";
+ LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9 = "\"$(SRCROOT)/libusb-osx/libs\"";
+ OTHER_LDFLAGS = "-lfreenect";
+ PREBINDING = NO;
+ PRODUCT_NAME = ofxKinectDebug;
+ WRAPPER_EXTENSION = app;
+ ZERO_LINK = NO;
+ };
+ name = Debug;
+ };
+ E4B69B610A3A1757003C02F2 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ COPY_PHASE_STRIP = YES;
+ FRAMEWORK_SEARCH_PATHS = (
+ "$(inherited)",
+ "$(FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1)",
+ );
+ FRAMEWORK_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(SRCROOT)/../../../libs/glut/lib/osx\"";
+ GCC_ENABLE_FIX_AND_CONTINUE = NO;
+ GCC_GENERATE_DEBUGGING_SYMBOLS = NO;
+ GCC_MODEL_TUNING = G4;
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = "$(SYSTEM_LIBRARY_DIR)/Frameworks/Carbon.framework/Headers/Carbon.h";
+ INFOPLIST_FILE = "openFrameworks-Info.plist";
+ INSTALL_PATH = "$(HOME)/Applications";
+ LIBRARY_SEARCH_PATHS = (
+ "$(inherited)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_1)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_4)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_5)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_6)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_7)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_8)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_10)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_11)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_12)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_13)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_14)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_15)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_7)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_1)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_8)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9)",
+ "$(LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_11)",
+ );
+ LIBRARY_SEARCH_PATHS_QUOTED_1 = "\"$(SRCROOT)/libusb-osx/libs\"";
+ LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_1 = "\"$(SRCROOT)/../../../libs/freeimage/lib/osx\"";
+ LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_10 = "\"$(SRCROOT)/bin\"";
+ LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_11 = "\"$(SRCROOT)/libusb-osx/libs\"";
+ LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_12 = "\"$(SRCROOT)/../../../addons/ofxOpenCv/libs/opencv/lib/osx\"";
+ LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_13 = "\"$(SRCROOT)/../../../addons/ofxOsc/libs/oscpack/lib/osx\"";
+ LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_15 = "\"$(SRCROOT)/../../../libs/freetype/lib/osx\"";
+ LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_2 = "\"$(SRCROOT)/../../../libs/fmodex/lib/osx\"";
+ LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_3 = "\"$(SRCROOT)/../../../libs/FreeImage/lib/osx\"";
+ LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_4 = "\"$(SRCROOT)/../../../libs/GLee/lib/osx\"";
+ LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_5 = "\"$(SRCROOT)/../../../libs/poco/lib/osx\"";
+ LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_6 = "\"$(SRCROOT)/../../../libs/rtAudio/lib/osx\"";
+ LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_7 = "\"$(SRCROOT)/../../../addons/ofxOpenCv/libs/opencv/lib/osx\"";
+ LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_8 = "\"$(SRCROOT)/libusb-osx/libs32\"";
+ LIBRARY_SEARCH_PATHS_QUOTED_FOR_TARGET_9 = "\"$(SRCROOT)/libusb-osx/libs\"";
+ PREBINDING = NO;
+ PRODUCT_NAME = ofxKinect;
+ WRAPPER_EXTENSION = app;
+ ZERO_LINK = NO;
+ };
+ name = Release;
+ };
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+ E4B69B4D0A3A1720003C02F2 /* Build configuration list for PBXProject "ofxKinect" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ E4B69B4E0A3A1720003C02F2 /* Debug */,
+ E4B69B4F0A3A1720003C02F2 /* Release */,
+ E4B27CA010CBF8A600536013 /* ReleaseUniversal */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ E4B69B5F0A3A1757003C02F2 /* Build configuration list for PBXNativeTarget "ofxKinect" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ E4B69B600A3A1757003C02F2 /* Debug */,
+ E4B69B610A3A1757003C02F2 /* Release */,
+ E4B27CA110CBF8A600536013 /* ReleaseUniversal */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+/* End XCConfigurationList section */
+ };
+ rootObject = E4B69B4C0A3A1720003C02F2 /* Project object */;
+}
20 openFrameworks-Info.plist
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>CFBundleDevelopmentRegion</key>
+ <string>English</string>
+ <key>CFBundleExecutable</key>
+ <string>${EXECUTABLE_NAME}</string>
+ <key>CFBundleIdentifier</key>
+ <string>com.yourcompany.openFrameworks</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>6.0</string>
+ <key>CFBundlePackageType</key>
+ <string>APPL</string>
+ <key>CFBundleSignature</key>
+ <string>????</string>
+ <key>CFBundleVersion</key>
+ <string>1.0</string>
+</dict>
+</plist>
16 src/main.cpp
@@ -0,0 +1,16 @@
+#include "ofMain.h"
+#include "testApp.h"
+#include "ofAppGlutWindow.h"
+
+//========================================================================
+int main( ){
+
+ ofAppGlutWindow window;
+ ofSetupOpenGL(&window, 1024,768, OF_WINDOW); // <-------- setup the GL context
+
+ // this kicks off the running of my app
+ // can be OF_WINDOW or OF_FULLSCREEN
+ // pass in width and height too:
+ ofRunApp( new testApp());
+
+}
331 src/ofxKinect/libs/libfreenect/cameras.c
@@ -0,0 +1,331 @@
+/* libfreenect - an open source Kinect driver
+
+Copyright (C) 2010 Hector Martin "marcan" <hector@marcansoft.com>
+
+This code is licensed to you under the terms of the GNU GPL, version 2 or version 3;
+see:
+ http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt
+ http://www.gnu.org/licenses/gpl-3.0.txt
+*/
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <libusb.h>
+#include "libfreenect.h"
+#include "cameras.h"
+#include <unistd.h>
+
+#if defined(__APPLE__)
+/* OS X likes things on powers of 2 boundaries, and needs WAY larger
+ packets/xfers to deal with what it's getting. Feel free to play
+ with these numbers, but keep them in multiples of 8, otherwise you
+ may get weirdness only seen with USB Prober on level 4 or
+ higher. */
+#define DEPTH_LEN 2048
+#define RGB_LEN 2048
+#define PKTS_PER_XFER 512
+#define NUM_XFERS 64
+#else
+#define DEPTH_LEN 1760
+#define RGB_LEN 1920
+#define PKTS_PER_XFER 16
+#define NUM_XFERS 32
+#endif
+
+static struct libusb_transfer *depth_xfers[NUM_XFERS];
+static struct libusb_transfer *rgb_xfers[NUM_XFERS];
+
+static void *rgb_bufs[NUM_XFERS];
+static void *depth_bufs[NUM_XFERS];
+
+static depthcb depth_cb;
+static rgbcb rgb_cb;
+
+static libusb_device_handle *dev;
+
+struct frame_hdr {
+ uint8_t magic[2];
+ uint8_t pad;
+ uint8_t flag;
+ uint8_t unk1;
+ uint8_t seq;
+ uint8_t unk2;
+ uint8_t unk3;
+ uint32_t timestamp;
+};
+
+uint8_t depth_buf[2*422400];
+uint16_t depth_frame[640*480];
+int depth_pos = 0;
+
+uint8_t rgb_buf[2*307200];
+uint8_t rgb_frame[640*480*4];
+int rgb_pos = 0;
+
+extern const struct caminit inits[];
+extern const int num_inits;
+
+static void depth_process(uint8_t *buf, size_t len)
+{
+ int i;
+ if (len == 0)
+ return;
+
+ struct frame_hdr *hdr = (void*)buf;
+ uint8_t *data = buf + sizeof(*hdr);
+ int datalen = len - sizeof(*hdr);
+
+ //printf("%02x %x\n", hdr->flag, depth_pos);
+ switch (hdr->flag) {
+ case 0x71:
+ depth_pos = 0;
+ case 0x72:
+ case 0x75:
+ memcpy(&depth_buf[depth_pos], data, datalen);
+ depth_pos += datalen;
+ break;
+ }
+
+ if (hdr->flag != 0x75)
+ return;
+
+#if defined(__APPLE__)
+ /* For some reason, we're getting two end (0x75/0x85) packets on OS
+ X. This is causing the frame rendering function to fire twice,
+ which makes things render glitchy. This needs to be debugged,
+ but for the moment this patch fixes it.
+ */
+ if (depth_pos != 422400)
+ {
+ printf("DROPPED DEPTH FRAME %d bytes\n", depth_pos);
+ return;
+ }
+#endif
+
+ printf("GOT DEPTH FRAME, %d bytes\n", depth_pos);
+
+ int bitshift = 0;
+ for (i=0; i<(640*480); i++) {
+ int idx = (i*11)/8;
+ uint32_t word = (depth_buf[idx]<<16) | (depth_buf[idx+1]<<8) | depth_buf[idx+2];
+ depth_frame[i] = ((word >> (13-bitshift)) & 0x7ff);
+ bitshift = (bitshift + 11) % 8;
+ }
+
+ depth_cb(depth_frame, 640, 480);
+}
+
+static void rgb_process(uint8_t *buf, size_t len)
+{
+ int x,y,i;
+ if (len == 0)
+ return;
+
+ struct frame_hdr *hdr = (void*)buf;
+ uint8_t *data = buf + sizeof(*hdr);
+ int datalen = len - sizeof(*hdr);
+
+ //printf("%02x %x\n", hdr->flag, depth_pos);
+ switch (hdr->flag) {
+ case 0x81:
+ rgb_pos = 0;
+ case 0x82:
+ case 0x85:
+ memcpy(&rgb_buf[rgb_pos], data, datalen);
+ rgb_pos += datalen;
+ break;
+ }
+
+ if (hdr->flag != 0x85)
+ return;
+
+#if defined(__APPLE__)
+ /* For some reason, we're getting two end (0x75/0x85) packets on OS
+ X. This is causing the frame rendering function to fire twice,
+ which makes things render glitchy. This needs to be debugged,
+ but for the moment this patch fixes it.
+ */
+ if (rgb_pos != 307200)
+ {
+ printf("DROPPED RGB FRAME %d bytes\n", depth_pos);
+ return;
+ }
+#endif
+
+ printf("GOT RGB FRAME, %d bytes\n", rgb_pos);
+
+ // horrible bayer to RGB conversion, but does the job for now
+ for (y=0; y<480; y++) {
+ for (x=0; x<640; x++) {
+ i = y*640+x;
+ if (x&1) {
+ if (y&1) {
+ rgb_frame[3*i+1] = rgb_buf[i];
+ rgb_frame[3*i+4] = rgb_buf[i];
+ } else {
+ rgb_frame[3*i] = rgb_buf[i];
+ rgb_frame[3*i+3] = rgb_buf[i];
+ rgb_frame[3*(i-640)] = rgb_buf[i];
+ rgb_frame[3*(i-640)+3] = rgb_buf[i];
+ }
+ } else {
+ if (y&1) {
+ rgb_frame[3*i+2] = rgb_buf[i];
+ rgb_frame[3*i-1] = rgb_buf[i];
+ rgb_frame[3*(i+640)+2] = rgb_buf[i];
+ rgb_frame[3*(i+640)-1] = rgb_buf[i];
+ } else {
+ rgb_frame[3*i+1] = rgb_buf[i];
+ rgb_frame[3*i-2] = rgb_buf[i];
+ }
+ }
+ }
+ }
+
+ rgb_cb(rgb_frame, 640, 480);
+}
+
+/*static void rgb_process(uint8_t *buf, size_t len)
+{
+ int i;
+ if (len == 0)
+ return;
+
+ printf("RGB %ld %02x\n", len, buf[0]);
+
+ for (i=0; i<32; i++) {
+ printf("%02x ", buf[i]);
+ }
+ printf("\n");
+}*/
+
+static void depth_callback(struct libusb_transfer *xfer)
+{
+ int i;
+ if(xfer->status == LIBUSB_TRANSFER_COMPLETED) {
+ uint8_t *buf = (void*)xfer->buffer;
+ for (i=0; i<PKTS_PER_XFER; i++) {
+ //printf("DCB %p %d\n", buf, xfer->iso_packet_desc[i].actual_length);
+ depth_process(buf, xfer->iso_packet_desc[i].actual_length);
+ buf += DEPTH_LEN;
+ }
+ libusb_submit_transfer(xfer);
+ } else {
+ printf("Xfer error: %d\n", xfer->status);
+ }
+}
+
+static void rgb_callback(struct libusb_transfer *xfer)
+{
+ int i;
+ if(xfer->status == LIBUSB_TRANSFER_COMPLETED) {
+ uint8_t *buf = (void*)xfer->buffer;
+ for (i=0; i<PKTS_PER_XFER; i++) {
+ rgb_process(buf, xfer->iso_packet_desc[i].actual_length);
+ buf += RGB_LEN;
+ }
+ libusb_submit_transfer(xfer);
+ } else {
+ printf("Xfer error: %d\n", xfer->status);
+ }
+}
+
+struct cam_hdr {
+ uint8_t magic[2];
+ uint16_t len;
+ uint16_t cmd;
+ uint16_t tag;
+};
+
+void send_init(void)
+{
+ int i, j, ret;
+ uint8_t obuf[0x2000];
+ uint8_t ibuf[0x2000];
+ struct cam_hdr *chdr = (void*)obuf;
+ struct cam_hdr *rhdr = (void*)ibuf;
+
+ ret = libusb_control_transfer(dev, 0x80, 0x06, 0x3ee, 0, ibuf, 0x12, 0);
+ printf("First xfer: %d\n", ret);
+
+ chdr->magic[0] = 0x47;
+ chdr->magic[1] = 0x4d;
+
+ for (i=0; i<num_inits; i++) {
+ const struct caminit *ip = &inits[i];
+ chdr->cmd = ip->command;
+ chdr->tag = ip->tag;
+ chdr->len = ip->cmdlen / 2;
+ memcpy(obuf+sizeof(*chdr), ip->cmddata, ip->cmdlen);
+ ret = libusb_control_transfer(dev, 0x40, 0, 0, 0, obuf, ip->cmdlen + sizeof(*chdr), 0);
+ printf("CTL CMD %04x %04x = %d\n", chdr->cmd, chdr->tag, ret);
+ do {
+ ret = libusb_control_transfer(dev, 0xc0, 0, 0, 0, ibuf, 0x200, 0);
+ } while (ret == 0);
+ printf("CTL RES = %d\n", ret);
+ if (rhdr->magic[0] != 0x52 || rhdr->magic[1] != 0x42) {
+ printf("Bad magic %02x %02x\n", rhdr->magic[0], rhdr->magic[1]);
+ continue;
+ }
+ if (rhdr->cmd != chdr->cmd) {
+ printf("Bad cmd %02x != %02x\n", rhdr->cmd, chdr->cmd);
+ continue;
+ }
+ if (rhdr->tag != chdr->tag) {
+ printf("Bad tag %04x != %04x\n", rhdr->tag, chdr->tag);
+ continue;
+ }
+ if (rhdr->len != (ret-sizeof(*rhdr))/2) {
+ printf("Bad len %04x != %04x\n", rhdr->len, (int)(ret-sizeof(*rhdr))/2);
+ continue;
+ }
+ if (rhdr->len != (ip->replylen/2) || memcmp(ibuf+sizeof(*rhdr), ip->replydata, ip->replylen)) {
+ printf("Expected: ");
+ for (j=0; j<ip->replylen; j++) {
+ printf("%02x ", ip->replydata[j]);
+ }
+ printf("\nGot: ");
+ for (j=0; j<(rhdr->len*2); j++) {
+ printf("%02x ", ibuf[j+sizeof(*rhdr)]);
+ }
+ printf("\n");
+ }
+ }
+}
+
+void cams_init(libusb_device_handle *d, depthcb dcb, rgbcb rcb)
+{
+ int i, ret;
+ dev = d;
+
+ depth_cb = dcb;
+ rgb_cb = rcb;
+
+ for (i=0; i<NUM_XFERS; i++) {
+ printf("Creating RGB and depth transfers #%d\n", i);
+ rgb_bufs[i] = malloc(RGB_LEN*PKTS_PER_XFER);
+ depth_bufs[i] = malloc(DEPTH_LEN*PKTS_PER_XFER);
+
+ rgb_xfers[i] = libusb_alloc_transfer(PKTS_PER_XFER);
+ depth_xfers[i] = libusb_alloc_transfer(PKTS_PER_XFER);
+
+ libusb_fill_iso_transfer(rgb_xfers[i], dev, 0x81, rgb_bufs[i], PKTS_PER_XFER*RGB_LEN, PKTS_PER_XFER, rgb_callback, NULL, 0);
+ libusb_fill_iso_transfer(depth_xfers[i], dev, 0x82, depth_bufs[i], PKTS_PER_XFER*DEPTH_LEN, PKTS_PER_XFER, depth_callback, NULL, 0);
+
+ libusb_set_iso_packet_lengths(rgb_xfers[i], RGB_LEN);
+ libusb_set_iso_packet_lengths(depth_xfers[i], DEPTH_LEN);
+
+ ret = libusb_submit_transfer(rgb_xfers[i]);
+ if (ret)
+ printf("Failed to submit RGB xfer %d: %d\n", i, ret);
+ ret = libusb_submit_transfer(depth_xfers[i]);
+ if (ret)
+ printf("Failed to submit Depth xfer %d: %d\n", i, ret);
+ }
+
+ send_init();
+
+}
+
+
25 src/ofxKinect/libs/libfreenect/cameras.h
@@ -0,0 +1,25 @@
+/* libfreenect - an open source Kinect driver
+
+Copyright (C) 2010 Hector Martin "marcan" <hector@marcansoft.com>
+
+This code is licensed to you under the terms of the GNU GPL, version 2 or version 3;
+see:
+ http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt
+ http://www.gnu.org/licenses/gpl-3.0.txt
+*/
+
+#ifndef CAMERAS_H
+#define CAMERAS_H
+
+#include <stdint.h>
+
+struct caminit {
+ uint16_t command;
+ uint16_t tag;
+ int cmdlen;
+ int replylen;
+ uint8_t cmddata[1024];
+ uint8_t replydata[1024];
+};
+
+#endif
147 src/ofxKinect/libs/libfreenect/inits.c
@@ -0,0 +1,147 @@
+#include "cameras.h"
+
+const struct caminit inits[] = {
+ {
+ 0x03, 0x1267, 4, 2,
+ {0x06, 0x00, 0x00, 0x00},
+ {0x00, 0x00},
+ },
+ {
+ 0x03, 0x1268, 4, 2,
+ {0x12, 0x00, 0x03, 0x00},
+ {0x00, 0x00},
+ },
+ {
+ 0x03, 0x1269, 4, 2,
+ {0x13, 0x00, 0x01, 0x00},
+ {0x00, 0x00},
+ },
+ {
+ 0x03, 0x126a, 4, 2,
+ {0x14, 0x00, 0x1e, 0x00},
+ {0x00, 0x00},
+ },
+ {
+ 0x03, 0x126b, 4, 2,
+ {0x06, 0x00, 0x02, 0x00},
+ {0x00, 0x00},
+ },
+ {
+ 0x03, 0x126e, 4, 2,
+ {0x06, 0x00, 0x00, 0x00},
+ {0x00, 0x00},
+ },
+ {
+ 0x03, 0x126f, 4, 2,
+ {0x12, 0x00, 0x03, 0x00},
+ {0x00, 0x00},
+ },
+ {
+ 0x03, 0x1270, 4, 2,
+ {0x13, 0x00, 0x01, 0x00},
+ {0x00, 0x00},
+ },
+ {
+ 0x03, 0x1271, 4, 2,
+ {0x14, 0x00, 0x1e, 0x00},
+ {0x00, 0x00},
+ },
+ {
+ 0x03, 0x1272, 4, 2,
+ {0x16, 0x00, 0x01, 0x00},
+ {0x00, 0x00},
+ },
+ {
+ 0x03, 0x1273, 4, 2,
+ {0x18, 0x00, 0x00, 0x00},
+ {0x00, 0x00},
+ },
+ {
+ 0x03, 0x1274, 4, 2,
+ {0x02, 0x00, 0x00, 0x00},
+ {0x00, 0x00},
+ },
+ {
+ 0x03, 0x1275, 4, 2,
+ {0x05, 0x01, 0x00, 0x00},
+ {0x00, 0x00},
+ },
+ {
+ 0x03, 0x1276, 4, 2,
+ {0x24, 0x00, 0x01, 0x00},
+ {0x00, 0x00},
+ },
+ {
+ 0x03, 0x1277, 4, 2,
+ {0x2d, 0x00, 0x01, 0x00},
+ {0x00, 0x00},
+ },
+ {
+ 0x03, 0x1278, 4, 2,
+ {0x06, 0x00, 0x02, 0x00},
+ {0x00, 0x00},
+ },
+ {
+ 0x03, 0x1279, 4, 2,
+ {0x05, 0x00, 0x00, 0x00},
+ {0x00, 0x00},
+ },
+ {
+ 0x03, 0x127a, 4, 2,
+ {0x0c, 0x00, 0x01, 0x00},
+ {0x00, 0x00},
+ },
+ {
+ 0x03, 0x127b, 4, 2,
+ {0x0d, 0x00, 0x01, 0x00},
+ {0x00, 0x00},
+ },
+ {
+ 0x03, 0x127c, 4, 2,
+ {0x0e, 0x00, 0x1e, 0x00},
+ {0x00, 0x00},
+ },
+ {
+ 0x03, 0x127d, 4, 2,
+ {0x05, 0x00, 0x01, 0x00},
+ {0x00, 0x00},
+ },
+ {
+ 0x03, 0x127e, 4, 2,
+ {0x47, 0x00, 0x00, 0x00},
+ {0x00, 0x00},
+ },
+ {
+ 0x03, 0x127f, 4, 2,
+ {0x0c, 0x00, 0x00, 0x00},
+ {0x00, 0x00},
+ },
+ {
+ 0x03, 0x1280, 4, 2,
+ {0x05, 0x00, 0x00, 0x00},
+ {0x00, 0x00},
+ },
+ {
+ 0x03, 0x1281, 4, 2,
+ {0x0d, 0x00, 0x01, 0x00},
+ {0x00, 0x00},
+ },
+ {
+ 0x03, 0x1282, 4, 2,
+ {0x0e, 0x00, 0x1e, 0x00},
+ {0x00, 0x00},
+ },
+ {
+ 0x03, 0x1283, 4, 2,
+ {0x05, 0x00, 0x01, 0x00},
+ {0x00, 0x00},
+ },
+ {
+ 0x03, 0x1284, 4, 2,
+ {0x47, 0x00, 0x00, 0x00},
+ {0x00, 0x00},
+ },
+};
+
+const int num_inits = 28;
+
55 src/ofxKinect/libs/libfreenect/inits.txt
@@ -0,0 +1,55 @@
+#00,1258,,000001050400202020000b010700010125200000
+#05,1259,,00000100
+#94,125a,25200101ffffffff,00000000
+#13,125b,0000,00000000000079563412002000000010000041d80080000001000100000000000080070000800000000000800000020007000416010100640000a00000001175008000000300020004160101000000004d000000a4bd00800000040002000416010100f80000470000006b53008000000500050004160101000200006d02000076a600800000060003000416010100800000a3340000cd340080000007000c0025200101005407006e0000008f760080000008000a000416010100660000c803000072ef0080000009000b0004160101006f0000b2000000e5d0008000000a000c0004160101100c0000c201000086bd008000000b0004000416010100f00000300000002c48008000000c0006000416010100000100a8f400004f9f008000000d00110004160101006000006d0200003415008000000e00090004160101006300000e000000f02c008000000f0012000416010110060000370300001af50080000010000e0000000000000003000000030056a70080000011001400041601015005000016000000dce40080000012001500041601018005000004000000a50b008000001300160004160101b005000010000000e585008000001400170004160101e00500000c000000fb96008000001500130004160101100a0000c3000000e05300800000
+#13,125c,1600,00001600090025200101004307000e000000f02c0080000017000b0025200101004f07003c000000cdb700800000180007002520010100440700a0000000117500800000190012002520010100500700a7000000aed6008000001a000a002520010100460700c803000072ef008000001b00110025200101004007007e00000082b6008000001c000600252001010000060098f70000261f00800000
+#13,125d,1d00,0000
+#01,125e,,00000000
+#06,125f,0300,0000
+#01,1260,,00000000
+#04,1261,1700,00000000f040333313400000f042cf66d53d13000400040000000500000005000000000000002c0100002c010000140000000000000001000000000000000100000000000000d0070000c8000000c80000000100000032000000f40100000a00000005000000f4010000701700000100000000000000d00700000f00000000000000640000002c010000ed1700005a0000005a000000c8000000c8000000140500002300000064000000a08601000500000000000000ffff000001000000010000005e040000ae020000640000000200000005000000010000000a0000003200000000000000
+#16,1262,0000000001001e000000,0000c800
+#16,1263,c000000001001e000000,000001000000dbaf813fde9fcec1
+#16,1264,4000000001001e000000,0000200b1b724307000094ffffff1000000010020000d303000037000000990a00006f0200001a000000571c00004e270000f1fe01000000000000000000aa0000008800000036fd1f00de030000d5020000c9fc1f00b3f5ff07b4fdff0738fdff075ffcff0700000000b7fdff0700000000e2f4ff07
+#16,1265,0100000001001e00fb00,05000000
+#04,1266,0000,000000000000404b4c0001000000ffff0f0000000000050000000500000001000000060000000600000001000000000000000100000001000000010000005d000000000000000100000001000000010000004800000001000000010000000000f040333313400000f042cf66d53d13000400040000000500000005000000000000002c0100002c010000140000000000000001000000000000000100000000000000d0070000c8000000c80000000100000032000000f40100000a00000005000000f4010000701700000100000000000000d00700000f00000000000000640000002c010000ed1700005a0000005a000000c8000000c8000000140500002300000064000000a08601000500000000000000ffff000001000000010000005e040000ae020000640000000200000005000000010000000a0000003200000000000000
+03,1267,06000000,0000
+03,1268,12000300,0000
+03,1269,13000100,0000
+03,126a,14001e00,0000
+03,126b,06000200,0000
+#91,126c,0100,0200
+#8d,126d,,000001000000000800089b005a00580084030000
+03,126e,06000000,0000
+03,126f,12000300,0000
+03,1270,13000100,0000
+03,1271,14001e00,0000
+03,1272,16000100,0000
+03,1273,18000000,0000
+03,1274,02000000,0000
+03,1275,05010000,0000
+03,1276,24000100,0000
+03,1277,2d000100,0000
+03,1278,06000200,0000
+03,1279,05000000,0000
+03,127a,0c000100,0000
+03,127b,0d000100,0000
+03,127c,0e001e00,0000
+03,127d,05000100,0000
+03,127e,47000000,0000
+03,127f,0c000000,0000
+03,1280,05000000,0000
+03,1281,0d000100,0000
+03,1282,0e001e00,0000
+03,1283,05000100,0000
+03,1284,47000000,0000
+#95,1605,010038824004,000038c24004
+#95,1606,0c0021800080048000050380000407808e0208805f000b80460039821605578264025882e0025c8210155d82151a3b82e604,000021c0008004c0000503c0000407c08e0208c05f000bc0460039c2160557c2640258c2e0025cc210155dc2151a3bc2e604
+#95,1607,0c000280680001801c002581050005810300478130109d81ae3c5381102054814060558180a05681c0d05781e0f0588100ff,000002c0680001c01c0025c1050005c1030047c130109dc1ae3c53c1102054c1406055c180a056c1c0d057c1e0f058c100ff
+#95,1608,0600068182742e8244102f82009126820c7327820c7337828080,000006c182742ec244102fc2009126c20c7327c20c7337c28080
+#22,1285,5f0000000000,0000
+#95,1609,0000,0000
+#22,1286,4a0001000000,0000
+#95,160a,020008805e000b808803,000008c05e000bc08803
+#95,160b,0800478100005381040e5481284c558177975681b1c75781dbee588100ff06818260,000047c1000053c1040e54c1284c55c1779756c1b1c757c1dbee58c100ff06c18260
+#95,160c,05002d0000002b0000002c000000090000005b020000,00002d40c8012b40ba012c40d201094064025b420080
29 src/ofxKinect/libs/libfreenect/libfreenect.h
@@ -0,0 +1,29 @@
+/* libfreenect - an open source Kinect driver
+
+Copyright (C) 2010 Hector Martin "marcan" <hector@marcansoft.com>
+
+This code is licensed to you under the terms of the GNU GPL, version 2 or version 3;
+see:
+ http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt
+ http://www.gnu.org/licenses/gpl-3.0.txt
+*/
+
+#ifndef LIBFREENECT_H
+#define LIBFREENECT_H
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+typedef void (*depthcb)(uint16_t *buf, int width, int height);
+typedef void (*rgbcb)(uint8_t *buf, int width, int height);
+
+
+void cams_init(libusb_device_handle *d, depthcb depth_cb, rgbcb rgb_cb);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
1,322 src/ofxKinect/libs/libusb/osx/include/libusb.h
@@ -0,0 +1,1322 @@
+/*
+ * Public libusb header file
+ * Copyright (C) 2007-2008 Daniel Drake <dsd@gentoo.org>
+ * Copyright (c) 2001 Johannes Erdfelt <johannes@erdfelt.com>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+#ifndef __LIBUSB_H__
+#define __LIBUSB_H__
+
+/* MSVC doesn't like inline, but does accept __inline ?? */
+#ifdef _MSC_VER
+#define inline __inline
+#endif
+
+#include <stdint.h>
+#include <sys/types.h>
+#include <time.h>
+#include <limits.h>
+
+#if defined(__linux) || defined(__APPLE__) || defined(__CYGWIN__)
+#include <sys/time.h>
+#endif
+
+/* 'interface' might be defined as a macro on Windows, so we need to
+ * undefine it so as not to break the current libusb API, because
+ * libusb_config_descriptor has an 'interface' member
+ * As this can be problematic if you include windows.h after libusb.h
+ * in your sources, we force windows.h to be included first. */
+#if defined(_WIN32) || defined(__CYGWIN__)
+#include <windows.h>
+#if defined(interface)
+#undef interface
+#endif
+#endif
+
+/** \def LIBUSB_CALL
+ * \ingroup misc
+ * libusb's Windows calling convention.
+ *
+ * Under Windows, the selection of available compilers and configurations
+ * means that, unlike other platforms, there is not <em>one true calling
+ * convention</em> (calling convention: the manner in which parameters are
+ * passed to funcions in the generated assembly code).
+ *
+ * Matching the Windows API itself, libusb uses the WINAPI convention (which
+ * translates to the <tt>stdcall</tt> convention) and guarantees that the
+ * library is compiled in this way. The public header file also includes
+ * appropriate annotations so that your own software will use the right
+ * convention, even if another convention is being used by default within
+ * your codebase.
+ *
+ * The one consideration that you must apply in your software is to mark
+ * all functions which you use as libusb callbacks with this LIBUSB_CALL
+ * annotation, so that they too get compiled for the correct calling
+ * convention.
+ *
+ * On non-Windows operating systems, this macro is defined as nothing. This
+ * means that you can apply it to your code without worrying about
+ * cross-platform compatibility.
+ */
+/* LIBUSB_CALL must be defined on both definition and declaration of libusb
+ * functions. You'd think that declaration would be enough, but cygwin will
+ * complain about conflicting types unless both are marked this way.
+ * The placement of this macro is important too; it must appear after the
+ * return type, before the function name. See internal documentation for
+ * API_EXPORTED.
+ */
+#if defined(_WIN32) || defined(__CYGWIN__)
+#define LIBUSB_CALL WINAPI
+#else
+#define LIBUSB_CALL
+#endif
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/** \def libusb_cpu_to_le16
+ * \ingroup misc
+ * Convert a 16-bit value from host-endian to little-endian format. On
+ * little endian systems, this function does nothing. On big endian systems,
+ * the bytes are swapped.
+ * \param x the host-endian value to convert
+ * \returns the value in little-endian byte order
+ */
+static inline uint16_t libusb_cpu_to_le16(const uint16_t x)
+{
+ union {
+ uint8_t b8[2];
+ uint16_t b16;
+ } _tmp;
+ _tmp.b8[1] = x >> 8;
+ _tmp.b8[0] = x & 0xff;
+ return _tmp.b16;
+}
+
+/** \def libusb_le16_to_cpu
+ * \ingroup misc
+ * Convert a 16-bit value from little-endian to host-endian format. On
+ * little endian systems, this function does nothing. On big endian systems,
+ * the bytes are swapped.
+ * \param x the little-endian value to convert
+ * \returns the value in host-endian byte order
+ */
+#define libusb_le16_to_cpu libusb_cpu_to_le16
+
+/* standard USB stuff */
+
+/** \ingroup desc
+ * Device and/or Interface Class codes */
+enum libusb_class_code {
+ /** In the context of a \ref libusb_device_descriptor "device descriptor",
+ * this bDeviceClass value indicates that each interface specifies its
+ * own class information and all interfaces operate independently.
+ */
+ LIBUSB_CLASS_PER_INTERFACE = 0,
+
+ /** Audio class */
+ LIBUSB_CLASS_AUDIO = 1,
+
+ /** Communications class */
+ LIBUSB_CLASS_COMM = 2,
+
+ /** Human Interface Device class */
+ LIBUSB_CLASS_HID = 3,
+
+ /** Printer dclass */
+ LIBUSB_CLASS_PRINTER = 7,
+
+ /** Picture transfer protocol class */
+ LIBUSB_CLASS_PTP = 6,
+
+ /** Mass storage class */
+ LIBUSB_CLASS_MASS_STORAGE = 8,
+
+ /** Hub class */
+ LIBUSB_CLASS_HUB = 9,
+
+ /** Data class */
+ LIBUSB_CLASS_DATA = 10,
+
+ /** Wireless class */
+ LIBUSB_CLASS_WIRELESS = 0xe0,
+
+ /** Application class */
+ LIBUSB_CLASS_APPLICATION = 0xfe,
+
+ /** Class is vendor-specific */
+ LIBUSB_CLASS_VENDOR_SPEC = 0xff
+};
+
+/** \ingroup desc
+ * Descriptor types as defined by the USB specification. */
+enum libusb_descriptor_type {
+ /** Device descriptor. See libusb_device_descriptor. */
+ LIBUSB_DT_DEVICE = 0x01,
+
+ /** Configuration descriptor. See libusb_config_descriptor. */
+ LIBUSB_DT_CONFIG = 0x02,
+
+ /** String descriptor */
+ LIBUSB_DT_STRING = 0x03,
+
+ /** Interface descriptor. See libusb_interface_descriptor. */
+ LIBUSB_DT_INTERFACE = 0x04,
+
+ /** Endpoint descriptor. See libusb_endpoint_descriptor. */
+ LIBUSB_DT_ENDPOINT = 0x05,
+
+ /** HID descriptor */
+ LIBUSB_DT_HID = 0x21,
+
+ /** HID report descriptor */
+ LIBUSB_DT_REPORT = 0x22,
+
+ /** Physical descriptor */
+ LIBUSB_DT_PHYSICAL = 0x23,
+
+ /** Hub descriptor */
+ LIBUSB_DT_HUB = 0x29
+};
+
+/* Descriptor sizes per descriptor type */
+#define LIBUSB_DT_DEVICE_SIZE 18
+#define LIBUSB_DT_CONFIG_SIZE 9
+#define LIBUSB_DT_INTERFACE_SIZE 9
+#define LIBUSB_DT_ENDPOINT_SIZE 7
+#define LIBUSB_DT_ENDPOINT_AUDIO_SIZE 9 /* Audio extension */
+#define LIBUSB_DT_HUB_NONVAR_SIZE 7
+
+#define LIBUSB_ENDPOINT_ADDRESS_MASK 0x0f /* in bEndpointAddress */
+#define LIBUSB_ENDPOINT_DIR_MASK 0x80
+
+/** \ingroup desc
+ * Endpoint direction. Values for bit 7 of the
+ * \ref libusb_endpoint_descriptor::bEndpointAddress "endpoint address" scheme.
+ */
+enum libusb_endpoint_direction {
+ /** In: device-to-host */
+ LIBUSB_ENDPOINT_IN = 0x80,
+
+ /** Out: host-to-device */
+ LIBUSB_ENDPOINT_OUT = 0x00
+};
+
+#define LIBUSB_TRANSFER_TYPE_MASK 0x03 /* in bmAttributes */
+
+/** \ingroup desc
+ * Endpoint transfer type. Values for bits 0:1 of the
+ * \ref libusb_endpoint_descriptor::bmAttributes "endpoint attributes" field.
+ */
+enum libusb_transfer_type {
+ /** Control endpoint */
+ LIBUSB_TRANSFER_TYPE_CONTROL = 0,
+
+ /** Isochronous endpoint */
+ LIBUSB_TRANSFER_TYPE_ISOCHRONOUS = 1,
+
+ /** Bulk endpoint */
+ LIBUSB_TRANSFER_TYPE_BULK = 2,
+
+ /** Interrupt endpoint */
+ LIBUSB_TRANSFER_TYPE_INTERRUPT = 3
+};
+
+/** \ingroup misc
+ * Standard requests, as defined in table 9-3 of the USB2 specifications */
+enum libusb_standard_request {
+ /** Request status of the specific recipient */
+ LIBUSB_REQUEST_GET_STATUS = 0x00,
+
+ /** Clear or disable a specific feature */
+ LIBUSB_REQUEST_CLEAR_FEATURE = 0x01,
+
+ /* 0x02 is reserved */
+
+ /** Set or enable a specific feature */
+ LIBUSB_REQUEST_SET_FEATURE = 0x03,
+
+ /* 0x04 is reserved */
+
+ /** Set device address for all future accesses */
+ LIBUSB_REQUEST_SET_ADDRESS = 0x05,
+
+ /** Get the specified descriptor */
+ LIBUSB_REQUEST_GET_DESCRIPTOR = 0x06,
+
+ /** Used to update existing descriptors or add new descriptors */
+ LIBUSB_REQUEST_SET_DESCRIPTOR = 0x07,
+
+ /** Get the current device configuration value */
+ LIBUSB_REQUEST_GET_CONFIGURATION = 0x08,
+
+ /** Set device configuration */
+ LIBUSB_REQUEST_SET_CONFIGURATION = 0x09,
+
+ /** Return the selected alternate setting for the specified interface */
+ LIBUSB_REQUEST_GET_INTERFACE = 0x0A,
+
+ /** Select an alternate interface for the specified interface */
+ LIBUSB_REQUEST_SET_INTERFACE = 0x0B,
+
+ /** Set then report an endpoint's synchronization frame */
+ LIBUSB_REQUEST_SYNCH_FRAME = 0x0C
+};
+
+/** \ingroup misc
+ * Request type bits of the
+ * \ref libusb_control_setup::bmRequestType "bmRequestType" field in control
+ * transfers. */
+enum libusb_request_type {
+ /** Standard */
+ LIBUSB_REQUEST_TYPE_STANDARD = (0x00 << 5),
+
+ /** Class */
+ LIBUSB_REQUEST_TYPE_CLASS = (0x01 << 5),
+
+ /** Vendor */
+ LIBUSB_REQUEST_TYPE_VENDOR = (0x02 << 5),
+
+ /** Reserved */
+ LIBUSB_REQUEST_TYPE_RESERVED = (0x03 << 5)
+};
+
+/** \ingroup misc
+ * Recipient bits of the
+ * \ref libusb_control_setup::bmRequestType "bmRequestType" field in control
+ * transfers. Values 4 through 31 are reserved. */
+enum libusb_request_recipient {
+ /** Device */
+ LIBUSB_RECIPIENT_DEVICE = 0x00,
+
+ /** Interface */
+ LIBUSB_RECIPIENT_INTERFACE = 0x01,
+
+ /** Endpoint */
+ LIBUSB_RECIPIENT_ENDPOINT = 0x02,
+
+ /** Other */
+ LIBUSB_RECIPIENT_OTHER = 0x03
+};
+
+#define LIBUSB_ISO_SYNC_TYPE_MASK 0x0C
+
+/** \ingroup desc
+ * Synchronization type for isochronous endpoints. Values for bits 2:3 of the
+ * \ref libusb_endpoint_descriptor::bmAttributes "bmAttributes" field in
+ * libusb_endpoint_descriptor.
+ */
+enum libusb_iso_sync_type {
+ /** No synchronization */
+ LIBUSB_ISO_SYNC_TYPE_NONE = 0,
+
+ /** Asynchronous */
+ LIBUSB_ISO_SYNC_TYPE_ASYNC = 1,
+
+ /** Adaptive */
+ LIBUSB_ISO_SYNC_TYPE_ADAPTIVE = 2,
+
+ /** Synchronous */
+ LIBUSB_ISO_SYNC_TYPE_SYNC = 3
+};
+
+#define LIBUSB_ISO_USAGE_TYPE_MASK 0x30
+
+/** \ingroup desc
+ * Usage type for isochronous endpoints. Values for bits 4:5 of the
+ * \ref libusb_endpoint_descriptor::bmAttributes "bmAttributes" field in
+ * libusb_endpoint_descriptor.
+ */
+enum libusb_iso_usage_type {
+ /** Data endpoint */
+ LIBUSB_ISO_USAGE_TYPE_DATA = 0,
+
+ /** Feedback endpoint */
+ LIBUSB_ISO_USAGE_TYPE_FEEDBACK = 1,
+
+ /** Implicit feedback Data endpoint */
+ LIBUSB_ISO_USAGE_TYPE_IMPLICIT = 2
+};
+
+/** \ingroup desc
+ * A structure representing the standard USB device descriptor. This
+ * descriptor is documented in section 9.6.1 of the USB 2.0 specification.
+ * All multiple-byte fields are represented in host-endian format.
+ */
+struct libusb_device_descriptor {
+ /** Size of this descriptor (in bytes) */
+ uint8_t bLength;
+
+ /** Descriptor type. Will have value
+ * \ref libusb_descriptor_type::LIBUSB_DT_DEVICE LIBUSB_DT_DEVICE in this
+ * context. */
+ uint8_t bDescriptorType;
+
+ /** USB specification release number in binary-coded decimal. A value of
+ * 0x0200 indicates USB 2.0, 0x0110 indicates USB 1.1, etc. */
+ uint16_t bcdUSB;
+
+ /** USB-IF class code for the device. See \ref libusb_class_code. */
+ uint8_t bDeviceClass;
+
+ /** USB-IF subclass code for the device, qualified by the bDeviceClass
+ * value */
+ uint8_t bDeviceSubClass;
+
+ /** USB-IF protocol code for the device, qualified by the bDeviceClass and
+ * bDeviceSubClass values */
+ uint8_t bDeviceProtocol;
+
+ /** Maximum packet size for endpoint 0 */
+ uint8_t bMaxPacketSize0;
+
+ /** USB-IF vendor ID */
+ uint16_t idVendor;
+
+ /** USB-IF product ID */
+ uint16_t idProduct;
+
+ /** Device release number in binary-coded decimal */
+ uint16_t bcdDevice;
+
+ /** Index of string descriptor describing manufacturer */
+ uint8_t iManufacturer;
+
+ /** Index of string descriptor describing product */
+ uint8_t iProduct;
+
+ /** Index of string descriptor containing device serial number */
+ uint8_t iSerialNumber;
+
+ /** Number of possible configurations */
+ uint8_t bNumConfigurations;
+};
+
+/** \ingroup desc
+ * A structure representing the standard USB endpoint descriptor. This
+ * descriptor is documented in section 9.6.3 of the USB 2.0 specification.
+ * All multiple-byte fields are represented in host-endian format.
+ */
+struct libusb_endpoint_descriptor {
+ /** Size of this descriptor (in bytes) */
+ uint8_t bLength;
+
+ /** Descriptor type. Will have value
+ * \ref libusb_descriptor_type::LIBUSB_DT_ENDPOINT LIBUSB_DT_ENDPOINT in
+ * this context. */
+ uint8_t bDescriptorType;
+
+ /** The address of the endpoint described by this descriptor. Bits 0:3 are
+ * the endpoint number. Bits 4:6 are reserved. Bit 7 indicates direction,
+ * see \ref libusb_endpoint_direction.
+ */
+ uint8_t bEndpointAddress;
+
+ /** Attributes which apply to the endpoint when it is configured using
+ * the bConfigurationValue. Bits 0:1 determine the transfer type and
+ * correspond to \ref libusb_transfer_type. Bits 2:3 are only used for
+ * isochronous endpoints and correspond to \ref libusb_iso_sync_type.
+ * Bits 4:5 are also only used for isochronous endpoints and correspond to
+ * \ref libusb_iso_usage_type. Bits 6:7 are reserved.
+ */
+ uint8_t bmAttributes;
+
+ /** Maximum packet size this endpoint is capable of sending/receiving. */
+ uint16_t wMaxPacketSize;
+
+ /** Interval for polling endpoint for data transfers. */
+ uint8_t bInterval;
+
+ /** For audio devices only: the rate at which synchronization feedback
+ * is provided. */
+ uint8_t bRefresh;
+
+ /** For audio devices only: the address if the synch endpoint */
+ uint8_t bSynchAddress;
+
+ /** Extra descriptors. If libusb encounters unknown endpoint descriptors,
+ * it will store them here, should you wish to parse them. */
+ const unsigned char *extra;
+
+ /** Length of the extra descriptors, in bytes. */
+ int extra_length;
+};
+
+/** \ingroup desc
+ * A structure representing the standard USB interface descriptor. This
+ * descriptor is documented in section 9.6.5 of the USB 2.0 specification.
+ * All multiple-byte fields are represented in host-endian format.
+ */
+struct libusb_interface_descriptor {
+ /** Size of this descriptor (in bytes) */
+ uint8_t bLength;
+
+ /** Descriptor type. Will have value
+ * \ref libusb_descriptor_type::LIBUSB_DT_INTERFACE LIBUSB_DT_INTERFACE
+ * in this context. */
+ uint8_t bDescriptorType;
+
+ /** Number of this interface */
+ uint8_t bInterfaceNumber;
+
+ /** Value used to select this alternate setting for this interface */
+ uint8_t bAlternateSetting;
+
+ /** Number of endpoints used by this interface (excluding the control
+ * endpoint). */
+ uint8_t bNumEndpoints;
+
+ /** USB-IF class code for this interface. See \ref libusb_class_code. */
+ uint8_t bInterfaceClass;
+
+ /** USB-IF subclass code for this interface, qualified by the
+ * bInterfaceClass value */
+ uint8_t bInterfaceSubClass;
+
+ /** USB-IF protocol code for this interface, qualified by the
+ * bInterfaceClass and bInterfaceSubClass values */
+ uint8_t bInterfaceProtocol;
+
+ /** Index of string descriptor describing this interface */
+ uint8_t iInterface;
+
+ /** Array of endpoint descriptors. This length of this array is determined
+ * by the bNumEndpoints field. */
+ const struct libusb_endpoint_descriptor *endpoint;
+
+ /** Extra descriptors. If libusb encounters unknown interface descriptors,
+ * it will store them here, should you wish to parse them. */
+ const unsigned char *extra;
+
+ /** Length of the extra descriptors, in bytes. */
+ int extra_length;
+};
+
+/** \ingroup desc
+ * A collection of alternate settings for a particular USB interface.
+ */
+struct libusb_interface {
+ /** Array of interface descriptors. The length of this array is determined
+ * by the num_altsetting field. */
+ const struct libusb_interface_descriptor *altsetting;
+
+ /** The number of alternate settings that belong to this interface */
+ int num_altsetting;
+};
+
+/** \ingroup desc
+ * A structure representing the standard USB configuration descriptor. This
+ * descriptor is documented in section 9.6.3 of the USB 2.0 specification.
+ * All multiple-byte fields are represented in host-endian format.
+ */
+struct libusb_config_descriptor {
+ /** Size of this descriptor (in bytes) */
+ uint8_t bLength;
+
+ /** Descriptor type. Will have value
+ * \ref libusb_descriptor_type::LIBUSB_DT_CONFIG LIBUSB_DT_CONFIG
+ * in this context. */
+ uint8_t bDescriptorType;
+
+ /** Total length of data returned for this configuration */
+ uint16_t wTotalLength;
+
+ /** Number of interfaces supported by this configuration */
+ uint8_t bNumInterfaces;
+
+ /** Identifier value for this configuration */
+ uint8_t bConfigurationValue;
+
+ /** Index of string descriptor describing this configuration */
+ uint8_t iConfiguration;
+
+ /** Configuration characteristics */
+ uint8_t bmAttributes;
+
+ /** Maximum power consumption of the USB device from this bus in this
+ * configuration when the device is fully opreation. Expressed in units
+ * of 2 mA. */
+ uint8_t MaxPower;
+
+ /** Array of interfaces supported by this configuration. The length of
+ * this array is determined by the bNumInterfaces field. */
+ const struct libusb_interface *interface;
+
+ /** Extra descriptors. If libusb encounters unknown configuration
+ * descriptors, it will store them here, should you wish to parse them. */
+ const unsigned char *extra;
+
+ /** Length of the extra descriptors, in bytes. */
+ int extra_length;
+};
+
+/** \ingroup asyncio
+ * Setup packet for control transfers. */
+struct libusb_control_setup {
+ /** Request type. Bits 0:4 determine recipient, see
+ * \ref libusb_request_recipient. Bits 5:6 determine type, see
+ * \ref libusb_request_type. Bit 7 determines data transfer direction, see
+ * \ref libusb_endpoint_direction.
+ */
+ uint8_t bmRequestType;
+
+ /** Request. If the type bits of bmRequestType are equal to
+ * \ref libusb_request_type::LIBUSB_REQUEST_TYPE_STANDARD
+ * "LIBUSB_REQUEST_TYPE_STANDARD" then this field refers to
+ * \ref libusb_standard_request. For other cases, use of this field is
+ * application-specific. */
+ uint8_t bRequest;
+
+ /** Value. Varies according to request */
+ uint16_t wValue;
+
+ /** Index. Varies according to request, typically used to pass an index
+ * or offset */
+ uint16_t wIndex;
+
+ /** Number of bytes to transfer */
+ uint16_t wLength;
+};
+
+#define LIBUSB_CONTROL_SETUP_SIZE (sizeof(struct libusb_control_setup))
+
+/* libusb */
+
+struct libusb_context;
+struct libusb_device;
+struct libusb_device_handle;
+
+/** \ingroup lib
+ * Structure representing a libusb session. The concept of individual libusb
+ * sessions allows for your program to use two libraries (or dynamically
+ * load two modules) which both independently use libusb. This will prevent
+ * interference between the individual libusb users - for example
+ * libusb_set_debug() will not affect the other user of the library, and
+ * libusb_exit() will not destroy resources that the other user is still
+ * using.
+ *
+ * Sessions are created by libusb_init() and destroyed through libusb_exit().
+ * If your application is guaranteed to only ever include a single libusb
+ * user (i.e. you), you do not have to worry about contexts: pass NULL in
+ * every function call where a context is required. The default context
+ * will be used.
+ *
+ * For more information, see \ref contexts.
+ */
+typedef struct libusb_context libusb_context;
+
+/** \ingroup dev
+ * Structure representing a USB device detected on the system. This is an
+ * opaque type for which you are only ever provided with a pointer, usually
+ * originating from libusb_get_device_list().
+ *
+ * Certain operations can be performed on a device, but in order to do any
+ * I/O you will have to first obtain a device handle using libusb_open().
+ *
+ * Devices are reference counted with libusb_device_ref() and
+ * libusb_device_unref(), and are freed when the reference count reaches 0.
+ * New devices presented by libusb_get_device_list() have a reference count of
+ * 1, and libusb_free_device_list() can optionally decrease the reference count
+ * on all devices in the list. libusb_open() adds another reference which is
+ * later destroyed by libusb_close().
+ */
+typedef struct libusb_device libusb_device;
+
+
+/** \ingroup dev
+ * Structure representing a handle on a USB device. This is an opaque type for
+ * which you are only ever provided with a pointer, usually originating from
+ * libusb_open().
+ *
+ * A device handle is used to perform I/O and other operations. When finished
+ * with a device handle, you should call libusb_close().
+ */
+typedef struct libusb_device_handle libusb_device_handle;
+
+/** \ingroup misc
+ * Error codes. Most libusb functions return 0 on success or one of these
+ * codes on failure.
+ * You can use libusb_strerror() to retrieve a short string description of
+ * a libusb_error enumeration value.
+ */
+enum libusb_error {
+ /** Success (no error) */
+ LIBUSB_SUCCESS = 0,
+
+ /** Input/output error */
+ LIBUSB_ERROR_IO = -1,
+
+ /** Invalid parameter */
+ LIBUSB_ERROR_INVALID_PARAM = -2,
+
+ /** Access denied (insufficient permissions) */
+ LIBUSB_ERROR_ACCESS = -3,
+
+ /** No such device (it may have been disconnected) */
+ LIBUSB_ERROR_NO_DEVICE = -4,
+
+ /** Entity not found */
+ LIBUSB_ERROR_NOT_FOUND = -5,
+
+ /** Resource busy */
+ LIBUSB_ERROR_BUSY = -6,
+
+ /** Operation timed out */
+ LIBUSB_ERROR_TIMEOUT = -7,
+
+ /** Overflow */
+ LIBUSB_ERROR_OVERFLOW = -8,
+
+ /** Pipe error */
+ LIBUSB_ERROR_PIPE = -9,
+
+ /** System call interrupted (perhaps due to signal) */
+ LIBUSB_ERROR_INTERRUPTED = -10,
+
+ /** Insufficient memory */
+ LIBUSB_ERROR_NO_MEM = -11,
+
+ /** Operation not supported or unimplemented on this platform */
+ LIBUSB_ERROR_NOT_SUPPORTED = -12,
+
+ /** Other error */
+ LIBUSB_ERROR_OTHER = -99
+
+ /* IMPORTANT: when adding new values to this enum, remember to
+ update the libusb_strerror() function implementation! */
+};
+
+/** \ingroup asyncio
+ * Transfer status codes */
+enum libusb_transfer_status {
+ /** Transfer completed without error. Note that this does not indicate
+ * that the entire amount of requested data was transferred. */
+ LIBUSB_TRANSFER_COMPLETED,
+
+ /** Transfer failed */
+ LIBUSB_TRANSFER_ERROR,
+
+ /** Transfer timed out */
+ LIBUSB_TRANSFER_TIMED_OUT,
+
+ /** Transfer was cancelled */
+ LIBUSB_TRANSFER_CANCELLED,
+
+ /** For bulk/interrupt endpoints: halt condition detected (endpoint
+ * stalled). For control endpoints: control request not supported. */
+ LIBUSB_TRANSFER_STALL,
+
+ /** Device was disconnected */
+ LIBUSB_TRANSFER_NO_DEVICE,
+
+ /** Device sent more data than requested */
+ LIBUSB_TRANSFER_OVERFLOW
+};
+
+/** \ingroup asyncio
+ * libusb_transfer.flags values */
+enum libusb_transfer_flags {
+ /** Report short frames as errors */
+ LIBUSB_TRANSFER_SHORT_NOT_OK = 1<<0,
+
+ /** Automatically free() transfer buffer during libusb_free_transfer() */
+ LIBUSB_TRANSFER_FREE_BUFFER = 1<<1,
+
+ /** Automatically call libusb_free_transfer() after callback returns.
+ * If this flag is set, it is illegal to call libusb_free_transfer()
+ * from your transfer callback, as this will result in a double-free
+ * when this flag is acted upon. */
+ LIBUSB_TRANSFER_FREE_TRANSFER = 1<<2
+};
+
+/** \ingroup asyncio
+ * Isochronous packet descriptor. */
+struct libusb_iso_packet_descriptor {
+ /** Length of data to request in this packet */
+ unsigned int length;
+
+ /** Amount of data that was actually transferred */
+ unsigned int actual_length;
+
+ /** Status code for this packet */
+ enum libusb_transfer_status status;
+};
+
+struct libusb_transfer;
+
+/** \ingroup asyncio
+ * Asynchronous transfer callback function type. When submitting asynchronous
+ * transfers, you pass a pointer to a callback function of this type via the
+ * \ref libusb_transfer::callback "callback" member of the libusb_transfer
+ * structure. libusb will call this function later, when the transfer has
+ * completed or failed. See \ref asyncio for more information.
+ * \param transfer The libusb_transfer struct the callback function is being
+ * notified about.
+ */
+typedef void (LIBUSB_CALL *libusb_transfer_cb_fn)(struct libusb_transfer *transfer);
+
+/** \ingroup asyncio
+ * The generic USB transfer structure. The user populates this structure and
+ * then submits it in order to request a transfer. After the transfer has
+ * completed, the library populates the transfer with the results and passes
+ * it back to the user.
+ */
+struct libusb_transfer {
+ /** Handle of the device that this transfer will be submitted to */
+ libusb_device_handle *dev_handle;
+
+ /** A bitwise OR combination of \ref libusb_transfer_flags. */
+ uint8_t flags;
+
+ /** Address of the endpoint where this transfer will be sent. */
+ unsigned char endpoint;
+
+ /** Type of the endpoint from \ref libusb_transfer_type */
+ unsigned char type;
+
+ /** Timeout for this transfer in millseconds. A value of 0 indicates no
+ * timeout. */
+ unsigned int timeout;
+
+ /** The status of the transfer. Read-only, and only for use within
+ * transfer callback function.
+ *
+ * If this is an isochronous transfer, this field may read COMPLETED even
+ * if there were errors in the frames. Use the
+ * \ref libusb_iso_packet_descriptor::status "status" field in each packet
+ * to determine if errors occurred. */
+ enum libusb_transfer_status status;
+
+ /** Length of the data buffer */
+ int length;
+
+ /** Actual length of data that was transferred. Read-only, and only for
+ * use within transfer callback function. Not valid for isochronous
+ * endpoint transfers. */
+ int actual_length;
+
+ /** Callback function. This will be invoked when the transfer completes,
+ * fails, or is cancelled. */
+ libusb_transfer_cb_fn callback;
+
+ /** User context data to pass to the callback function. */
+ void *user_data;
+
+ /** Data buffer */
+ unsigned char *buffer;
+
+ /** Number of isochronous packets. Only used for I/O with isochronous
+ * endpoints. */
+ int num_iso_packets;
+
+ /** Isochronous packet descriptors, for isochronous transfers only. */
+ struct libusb_iso_packet_descriptor iso_packet_desc
+#if defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)
+ [] /* valid C99 code */
+#else
+ [0] /* non-standard, but usually working code */
+#endif
+ ;
+};
+
+int LIBUSB_CALL libusb_init(libusb_context **ctx);
+void LIBUSB_CALL libusb_exit(libusb_context *ctx);
+void LIBUSB_CALL libusb_set_debug(libusb_context *ctx, int level);
+const char * LIBUSB_CALL libusb_strerror(enum libusb_error errcode);
+
+ssize_t LIBUSB_CALL libusb_get_device_list(libusb_context *ctx,
+ libusb_device ***list);
+void LIBUSB_CALL libusb_free_device_list(libusb_device **list,
+ int unref_devices);
+libusb_device * LIBUSB_CALL libusb_ref_device(libusb_device *dev);
+void LIBUSB_CALL libusb_unref_device(libusb_device *dev);
+
+int LIBUSB_CALL libusb_get_configuration(libusb_device_handle *dev,
+ int *config);
+int LIBUSB_CALL libusb_get_device_descriptor(libusb_device *dev,
+ struct libusb_device_descriptor *desc);
+int LIBUSB_CALL libusb_get_active_config_descriptor(libusb_device *dev,
+ struct libusb_config_descriptor **config);
+int LIBUSB_CALL libusb_get_config_descriptor(libusb_device *dev,
+ uint8_t config_index, struct libusb_config_descriptor **config);
+int LIBUSB_CALL libusb_get_config_descriptor_by_value(libusb_device *dev,
+ uint8_t bConfigurationValue, struct libusb_config_descriptor **config);
+void LIBUSB_CALL libusb_free_config_descriptor(
+ struct libusb_config_descriptor *config);
+uint8_t LIBUSB_CALL libusb_get_bus_number(libusb_device *dev);
+uint8_t LIBUSB_CALL libusb_get_device_address(libusb_device *dev);
+int LIBUSB_CALL libusb_get_max_packet_size(libusb_device *dev,
+ unsigned char endpoint);
+int LIBUSB_CALL libusb_get_max_iso_packet_size(libusb_device *dev,
+ unsigned char endpoint);
+
+int LIBUSB_CALL libusb_open(libusb_device *dev, libusb_device_handle **handle);
+void LIBUSB_CALL libusb_close(libusb_device_handle *dev_handle);
+libusb_device * LIBUSB_CALL libusb_get_device(libusb_device_handle *dev_handle);
+
+int LIBUSB_CALL libusb_set_configuration(libusb_device_handle *dev,
+ int configuration);
+int LIBUSB_CALL libusb_claim_interface(libusb_device_handle *dev,
+ int interface_number);
+int LIBUSB_CALL libusb_release_interface(libusb_device_handle *dev,
+ int interface_number);
+
+libusb_device_handle * LIBUSB_CALL libusb_open_device_with_vid_pid(
+ libusb_context *ctx, uint16_t vendor_id, uint16_t product_id);
+
+int LIBUSB_CALL libusb_set_interface_alt_setting(libusb_device_handle *dev,
+ int interface_number, int alternate_setting);
+int LIBUSB_CALL libusb_clear_halt(libusb_device_handle *dev,
+ unsigned char endpoint);
+int LIBUSB_CALL libusb_reset_device(libusb_device_handle *dev);
+
+int LIBUSB_CALL libusb_kernel_driver_active(libusb_device_handle *dev,
+ int interface_number);
+int LIBUSB_CALL libusb_detach_kernel_driver(libusb_device_handle *dev,
+ int interface_number);
+int LIBUSB_CALL libusb_attach_kernel_driver(libusb_device_handle *dev,
+ int interface_number);
+
+/* async I/O */
+
+/** \ingroup asyncio