Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

udpated projects to build with clang, thnaks to ofxLua update; added …

…CocoaHTTPServer for prelim WebDAV file management on ios
  • Loading branch information...
commit b9035d2931f8d2ec6f9f96c72fe45c18708ebb2f 1 parent a9dff57
@danomatika authored
Showing with 24,949 additions and 46 deletions.
  1. +3 −3 Project-ios.xcconfig
  2. +6 −2 robotcowboy-macos.xcodeproj/project.pbxproj
  3. +303 −36 robotcowboy.xcodeproj/project.pbxproj
  4. +23 −0 scripts/update_httpserver.sh
  5. +4 −1 src/Global.cpp
  6. +2 −1  src/Global.h
  7. +1 −1  src/Scene.h
  8. +749 −0 src/desktop/ofAppGLFWWindow.cpp
  9. +112 −0 src/desktop/ofAppGLFWWindow.h
  10. +5 −0 src/ios/App.h
  11. +11 −2 src/ios/App.mm
  12. +14 −0 src/ios/CocoaHTTPServer/Core/Categories/DDData.h
  13. +158 −0 src/ios/CocoaHTTPServer/Core/Categories/DDData.m
  14. +12 −0 src/ios/CocoaHTTPServer/Core/Categories/DDNumber.h
  15. +88 −0 src/ios/CocoaHTTPServer/Core/Categories/DDNumber.m
  16. +56 −0 src/ios/CocoaHTTPServer/Core/Categories/DDRange.h
  17. +104 −0 src/ios/CocoaHTTPServer/Core/Categories/DDRange.m
  18. +45 −0 src/ios/CocoaHTTPServer/Core/HTTPAuthenticationRequest.h
  19. +195 −0 src/ios/CocoaHTTPServer/Core/HTTPAuthenticationRequest.m
  20. +119 −0 src/ios/CocoaHTTPServer/Core/HTTPConnection.h
  21. +2,728 −0 src/ios/CocoaHTTPServer/Core/HTTPConnection.m
  22. +136 −0 src/ios/CocoaHTTPServer/Core/HTTPLogging.h
  23. +48 −0 src/ios/CocoaHTTPServer/Core/HTTPMessage.h
  24. +113 −0 src/ios/CocoaHTTPServer/Core/HTTPMessage.m
  25. +149 −0 src/ios/CocoaHTTPServer/Core/HTTPResponse.h
  26. +201 −0 src/ios/CocoaHTTPServer/Core/HTTPServer.h
  27. +784 −0 src/ios/CocoaHTTPServer/Core/HTTPServer.m
  28. +65 −0 src/ios/CocoaHTTPServer/Core/Mime/MultipartFormDataParser.h
  29. +523 −0 src/ios/CocoaHTTPServer/Core/Mime/MultipartFormDataParser.m
  30. +33 −0 src/ios/CocoaHTTPServer/Core/Mime/MultipartMessageHeader.h
  31. +86 −0 src/ios/CocoaHTTPServer/Core/Mime/MultipartMessageHeader.m
  32. +23 −0 src/ios/CocoaHTTPServer/Core/Mime/MultipartMessageHeaderField.h
  33. +217 −0 src/ios/CocoaHTTPServer/Core/Mime/MultipartMessageHeaderField.m
  34. +75 −0 src/ios/CocoaHTTPServer/Core/Responses/HTTPAsyncFileResponse.h
  35. +431 −0 src/ios/CocoaHTTPServer/Core/Responses/HTTPAsyncFileResponse.m
  36. +13 −0 src/ios/CocoaHTTPServer/Core/Responses/HTTPDataResponse.h
  37. +79 −0 src/ios/CocoaHTTPServer/Core/Responses/HTTPDataResponse.m
  38. +52 −0 src/ios/CocoaHTTPServer/Core/Responses/HTTPDynamicFileResponse.h
  39. +292 −0 src/ios/CocoaHTTPServer/Core/Responses/HTTPDynamicFileResponse.m
  40. +25 −0 src/ios/CocoaHTTPServer/Core/Responses/HTTPFileResponse.h
  41. +237 −0 src/ios/CocoaHTTPServer/Core/Responses/HTTPFileResponse.m
  42. +12 −0 src/ios/CocoaHTTPServer/Core/Responses/HTTPRedirectResponse.h
  43. +73 −0 src/ios/CocoaHTTPServer/Core/Responses/HTTPRedirectResponse.m
  44. +97 −0 src/ios/CocoaHTTPServer/Core/WebSocket.h
  45. +811 −0 src/ios/CocoaHTTPServer/Core/WebSocket.m
  46. +7 −0 src/ios/CocoaHTTPServer/Extensions/WebDAV/DAVConnection.h
  47. +160 −0 src/ios/CocoaHTTPServer/Extensions/WebDAV/DAVConnection.m
  48. +11 −0 src/ios/CocoaHTTPServer/Extensions/WebDAV/DAVResponse.h
  49. +359 −0 src/ios/CocoaHTTPServer/Extensions/WebDAV/DAVResponse.m
  50. +7 −0 src/ios/CocoaHTTPServer/Extensions/WebDAV/DELETEResponse.h
  51. +49 −0 src/ios/CocoaHTTPServer/Extensions/WebDAV/DELETEResponse.m
  52. +8 −0 src/ios/CocoaHTTPServer/Extensions/WebDAV/PUTResponse.h
  53. +69 −0 src/ios/CocoaHTTPServer/Extensions/WebDAV/PUTResponse.m
  54. +18 −0 src/ios/CocoaHTTPServer/LICENSE.txt
  55. +4 −0 src/ios/CocoaHTTPServer/Vendor/CocoaAsyncSocket/About.txt
  56. +1,046 −0 src/ios/CocoaHTTPServer/Vendor/CocoaAsyncSocket/GCDAsyncSocket.h
  57. +7,306 −0 src/ios/CocoaHTTPServer/Vendor/CocoaAsyncSocket/GCDAsyncSocket.m
  58. +33 −0 src/ios/CocoaHTTPServer/Vendor/CocoaLumberjack/About.txt
  59. +41 −0 src/ios/CocoaHTTPServer/Vendor/CocoaLumberjack/DDASLLogger.h
  60. +99 −0 src/ios/CocoaHTTPServer/Vendor/CocoaLumberjack/DDASLLogger.m
  61. +102 −0 src/ios/CocoaHTTPServer/Vendor/CocoaLumberjack/DDAbstractDatabaseLogger.h
  62. +654 −0 src/ios/CocoaHTTPServer/Vendor/CocoaLumberjack/DDAbstractDatabaseLogger.m
  63. +334 −0 src/ios/CocoaHTTPServer/Vendor/CocoaLumberjack/DDFileLogger.h
  64. +1,380 −0 src/ios/CocoaHTTPServer/Vendor/CocoaLumberjack/DDFileLogger.m
  65. +584 −0 src/ios/CocoaHTTPServer/Vendor/CocoaLumberjack/DDLog.h
  66. +1,057 −0 src/ios/CocoaHTTPServer/Vendor/CocoaLumberjack/DDLog.m
  67. +167 −0 src/ios/CocoaHTTPServer/Vendor/CocoaLumberjack/DDTTYLogger.h
  68. +1,480 −0 src/ios/CocoaHTTPServer/Vendor/CocoaLumberjack/DDTTYLogger.m
  69. +65 −0 src/ios/CocoaHTTPServer/Vendor/CocoaLumberjack/Extensions/ContextFilterLogFormatter.h
  70. +191 −0 src/ios/CocoaHTTPServer/Vendor/CocoaLumberjack/Extensions/ContextFilterLogFormatter.m
  71. +119 −0 src/ios/CocoaHTTPServer/Vendor/CocoaLumberjack/Extensions/DispatchQueueLogFormatter.h
  72. +189 −0 src/ios/CocoaHTTPServer/Vendor/CocoaLumberjack/Extensions/DispatchQueueLogFormatter.m
  73. +7 −0 src/ios/CocoaHTTPServer/Vendor/CocoaLumberjack/Extensions/README.txt
  74. +31 −0 src/ios/WebServer.h
  75. +59 −0 src/ios/WebServer.mm
View
6 Project-ios.xcconfig
@@ -12,7 +12,7 @@ OF_PATH = ../../..
ADDONS_PATH = $(OF_PATH)/addons
// ofxPd
-OFX_PD_HEADERS = "$(ADDONS_PATH)/ofxPd/src/pd/pure-data/src"
+OFX_PD_HEADERS = "$(ADDONS_PATH)/ofxPd/src/pd/pure-data/src/"
OFX_PD_CFLAGS = -DHAVE_UNISTD_H -DUSEAPI_DUMMY -DPD -DUNIX
OFX_PD_LIBS = -lm
@@ -23,7 +23,7 @@ OFX_LUA_HEADERS = "$(ADDONS_PATH)/ofxLua/src/" "$(ADDONS_PATH)/ofxLua/src/lua/"
OFX_APP_UTILS_DEFINES = OFX_APP_UTILS_NO_CONTROL_PANEL OFX_APP_UTILS_NO_XML
// ofxOsc
-OFX_OSC_HEADERS = "$(ADDONS_PATH)/ofxOsc/libs/oscpack/src"
+OFX_OSC_HEADERS = "$(ADDONS_PATH)/ofxOsc/libs/oscpack/src/"
// ofxUI
OFX_UI_DEFINES = OFX_UI_NO_XML
@@ -37,7 +37,7 @@ OF_ADDON_LIBS = $(OFX_PD_LIBS)
// MAIN
GCC_PREPROCESSOR_DEFINITIONS = $(OF_ADDON_DEFINES)
-OTHER_CFLAGS = $(OFX_PD_CFLAGS)
+OTHER_CFLAGS = $(OFX_PD_CFLAGS) -I/usr/include/libxml2/
HEADER_SEARCH_PATHS = $(OF_CORE_HEADERS) $(OF_ADDON_HEADERS)
OTHER_LDFLAGS = $(OF_CORE_LIBS) $(OF_ADDON_LIBS)
View
8 robotcowboy-macos.xcodeproj/project.pbxproj
@@ -18,6 +18,7 @@
3062515C161D0129003D5BA9 /* getdir.c in Sources */ = {isa = PBXBuildFile; fileRef = 30625159161D0129003D5BA9 /* getdir.c */; };
3062515D161D0129003D5BA9 /* moog~.c in Sources */ = {isa = PBXBuildFile; fileRef = 3062515A161D0129003D5BA9 /* moog~.c */; };
3062515E161D0129003D5BA9 /* stripdir.c in Sources */ = {isa = PBXBuildFile; fileRef = 3062515B161D0129003D5BA9 /* stripdir.c */; };
+ 30625784161FFB22003D5BA9 /* pipelist.c in Sources */ = {isa = PBXBuildFile; fileRef = 30625783161FFB22003D5BA9 /* pipelist.c */; };
308637BA15D37B8D00BAD4C5 /* CoreMIDI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 308637B915D37B8D00BAD4C5 /* CoreMIDI.framework */; };
308C1BB6146B39350067923E /* PdBase.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 308C1BB0146B39350067923E /* PdBase.cpp */; };
308C1BB7146B39350067923E /* PdTypes.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 308C1BB4146B39350067923E /* PdTypes.cpp */; };
@@ -304,6 +305,7 @@
30625159161D0129003D5BA9 /* getdir.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = getdir.c; sourceTree = "<group>"; };
3062515A161D0129003D5BA9 /* moog~.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = "moog~.c"; sourceTree = "<group>"; };
3062515B161D0129003D5BA9 /* stripdir.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = stripdir.c; sourceTree = "<group>"; };
+ 30625783161FFB22003D5BA9 /* pipelist.c */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.c; path = pipelist.c; sourceTree = "<group>"; };
308637B915D37B8D00BAD4C5 /* CoreMIDI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMIDI.framework; path = /System/Library/Frameworks/CoreMIDI.framework; sourceTree = "<absolute>"; };
308C1BB0146B39350067923E /* PdBase.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PdBase.cpp; sourceTree = "<group>"; };
308C1BB4146B39350067923E /* PdTypes.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = PdTypes.cpp; sourceTree = "<group>"; };
@@ -1392,6 +1394,7 @@
30EA88FB14D338F4000A1AB9 /* mrpeach */ = {
isa = PBXGroup;
children = (
+ 30625783161FFB22003D5BA9 /* pipelist.c */,
30EA88FC14D338F4000A1AB9 /* midifile.c */,
30EA88FD14D338F4000A1AB9 /* packOSC.c */,
30EA88FF14D338F4000A1AB9 /* routeOSC.c */,
@@ -1896,6 +1899,7 @@
3062515C161D0129003D5BA9 /* getdir.c in Sources */,
3062515D161D0129003D5BA9 /* moog~.c in Sources */,
3062515E161D0129003D5BA9 /* stripdir.c in Sources */,
+ 30625784161FFB22003D5BA9 /* pipelist.c in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -1924,7 +1928,7 @@
GCC_INLINES_ARE_PRIVATE_EXTERN = NO;
GCC_MODEL_TUNING = G5;
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
- GCC_VERSION = com.apple.compilers.llvmgcc42;
+ GCC_VERSION = "";
GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO;
GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO = NO;
GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL = NO;
@@ -1954,7 +1958,7 @@
GCC_OPTIMIZATION_LEVEL = 3;
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
GCC_UNROLL_LOOPS = YES;
- GCC_VERSION = com.apple.compilers.llvmgcc42;
+ GCC_VERSION = "";
GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO;
GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO = NO;
GCC_WARN_ALLOW_INCOMPLETE_PROTOCOL = NO;
View
339 robotcowboy.xcodeproj/project.pbxproj
@@ -48,7 +48,6 @@
1b48d3d8e518e36df13c1ea95657b3ab /* liolib.c in Sources */ = {isa = PBXBuildFile; fileRef = 583a83b877584149117b6f300f921053 /* liolib.c */; };
1bd6070e05498748a4b958bda0a79c0c /* x_gui.c in Sources */ = {isa = PBXBuildFile; fileRef = 59d7f855e21ac0ebed3bd58fd1da0960 /* x_gui.c */; };
1d3d9a4c1bbf5dbe057681a9d4f4578e /* bpe.c in Sources */ = {isa = PBXBuildFile; fileRef = 8f844ea01a3b84164ec531d5b19d1871 /* bpe.c */; };
- 1d8dae9dc3f746b92ec368050f45765d /* vexp_fun.c in Sources */ = {isa = PBXBuildFile; fileRef = 08285163c7170d639b040c7c6b715e18 /* vexp_fun.c */; };
20cfd97f17cc6a9954cbf3ea19b58969 /* g_traversal.c in Sources */ = {isa = PBXBuildFile; fileRef = 3cbe3ca2da2daae314cdb49d1ce7b6b4 /* g_traversal.c */; };
22a83fe368c671fa8dbd5e51c2e02c66 /* b2Math.cpp in Sources */ = {isa = PBXBuildFile; fileRef = f672ebfcb4887c08bbb23527c897a3ac /* b2Math.cpp */; };
238ac3f1424d9198e908d4ecf5526fed /* iem_i_route.c in Sources */ = {isa = PBXBuildFile; fileRef = 77700e3c4186ae1de140344b2e0e546e /* iem_i_route.c */; };
@@ -73,7 +72,43 @@
30625115161AA160003D5BA9 /* libluabind-ios.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 30625111161AA05C003D5BA9 /* libluabind-ios.a */; };
30625117161AA168003D5BA9 /* CoreMIDI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 30625116161AA167003D5BA9 /* CoreMIDI.framework */; };
30625119161AA1FB003D5BA9 /* boost.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 30625118161AA1FA003D5BA9 /* boost.framework */; };
- 3062512D161AA43C003D5BA9 /* data in Resources */ = {isa = PBXBuildFile; fileRef = 3062512C161AA43C003D5BA9 /* data */; };
+ 306251BB161FC3E4003D5BA9 /* DDNumber.m in Sources */ = {isa = PBXBuildFile; fileRef = 30625177161FC3E4003D5BA9 /* DDNumber.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
+ 306251BC161FC3E4003D5BA9 /* DDRange.m in Sources */ = {isa = PBXBuildFile; fileRef = 30625179161FC3E4003D5BA9 /* DDRange.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
+ 306251BD161FC3E4003D5BA9 /* HTTPAuthenticationRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 3062517B161FC3E4003D5BA9 /* HTTPAuthenticationRequest.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
+ 306251BE161FC3E4003D5BA9 /* HTTPConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 3062517D161FC3E4003D5BA9 /* HTTPConnection.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
+ 306251BF161FC3E4003D5BA9 /* HTTPMessage.m in Sources */ = {isa = PBXBuildFile; fileRef = 30625180161FC3E4003D5BA9 /* HTTPMessage.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
+ 306251C0161FC3E4003D5BA9 /* HTTPServer.m in Sources */ = {isa = PBXBuildFile; fileRef = 30625183161FC3E4003D5BA9 /* HTTPServer.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
+ 306251C1161FC3E4003D5BA9 /* MultipartFormDataParser.m in Sources */ = {isa = PBXBuildFile; fileRef = 30625186161FC3E4003D5BA9 /* MultipartFormDataParser.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
+ 306251C2161FC3E4003D5BA9 /* MultipartMessageHeader.m in Sources */ = {isa = PBXBuildFile; fileRef = 30625188161FC3E4003D5BA9 /* MultipartMessageHeader.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
+ 306251C3161FC3E4003D5BA9 /* MultipartMessageHeaderField.m in Sources */ = {isa = PBXBuildFile; fileRef = 3062518A161FC3E4003D5BA9 /* MultipartMessageHeaderField.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
+ 306251C4161FC3E4003D5BA9 /* HTTPAsyncFileResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 3062518D161FC3E4003D5BA9 /* HTTPAsyncFileResponse.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
+ 306251C5161FC3E4003D5BA9 /* HTTPDataResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 3062518F161FC3E4003D5BA9 /* HTTPDataResponse.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
+ 306251C6161FC3E4003D5BA9 /* HTTPDynamicFileResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 30625191161FC3E4003D5BA9 /* HTTPDynamicFileResponse.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
+ 306251C7161FC3E4003D5BA9 /* HTTPFileResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 30625193161FC3E4003D5BA9 /* HTTPFileResponse.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
+ 306251C8161FC3E4003D5BA9 /* HTTPRedirectResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 30625195161FC3E4003D5BA9 /* HTTPRedirectResponse.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
+ 306251C9161FC3E4003D5BA9 /* WebSocket.m in Sources */ = {isa = PBXBuildFile; fileRef = 30625197161FC3E4003D5BA9 /* WebSocket.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
+ 306251CA161FC3E4003D5BA9 /* DAVConnection.m in Sources */ = {isa = PBXBuildFile; fileRef = 3062519B161FC3E4003D5BA9 /* DAVConnection.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
+ 306251CB161FC3E4003D5BA9 /* DAVResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 3062519D161FC3E4003D5BA9 /* DAVResponse.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
+ 306251CC161FC3E4003D5BA9 /* DELETEResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 3062519F161FC3E4003D5BA9 /* DELETEResponse.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
+ 306251CD161FC3E4003D5BA9 /* PUTResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 306251A1161FC3E4003D5BA9 /* PUTResponse.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
+ 306251CE161FC3E4003D5BA9 /* LICENSE.txt in Resources */ = {isa = PBXBuildFile; fileRef = 306251A2161FC3E4003D5BA9 /* LICENSE.txt */; };
+ 306251CF161FC3E4003D5BA9 /* About.txt in Resources */ = {isa = PBXBuildFile; fileRef = 306251A5161FC3E4003D5BA9 /* About.txt */; };
+ 306251D0161FC3E4003D5BA9 /* GCDAsyncSocket.m in Sources */ = {isa = PBXBuildFile; fileRef = 306251A7161FC3E4003D5BA9 /* GCDAsyncSocket.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
+ 306251D1161FC3E4003D5BA9 /* About.txt in Resources */ = {isa = PBXBuildFile; fileRef = 306251A9161FC3E4003D5BA9 /* About.txt */; };
+ 306251D2161FC3E4003D5BA9 /* DDAbstractDatabaseLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 306251AB161FC3E4003D5BA9 /* DDAbstractDatabaseLogger.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
+ 306251D3161FC3E4003D5BA9 /* DDASLLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 306251AD161FC3E4003D5BA9 /* DDASLLogger.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
+ 306251D4161FC3E4003D5BA9 /* DDFileLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 306251AF161FC3E4003D5BA9 /* DDFileLogger.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
+ 306251D5161FC3E4003D5BA9 /* DDLog.m in Sources */ = {isa = PBXBuildFile; fileRef = 306251B1161FC3E4003D5BA9 /* DDLog.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
+ 306251D6161FC3E4003D5BA9 /* DDTTYLogger.m in Sources */ = {isa = PBXBuildFile; fileRef = 306251B3161FC3E4003D5BA9 /* DDTTYLogger.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
+ 306251D7161FC3E4003D5BA9 /* ContextFilterLogFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = 306251B6161FC3E4003D5BA9 /* ContextFilterLogFormatter.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
+ 306251D8161FC3E4003D5BA9 /* DispatchQueueLogFormatter.m in Sources */ = {isa = PBXBuildFile; fileRef = 306251B8161FC3E4003D5BA9 /* DispatchQueueLogFormatter.m */; settings = {COMPILER_FLAGS = "-fobjc-arc"; }; };
+ 306251D9161FC3E4003D5BA9 /* README.txt in Resources */ = {isa = PBXBuildFile; fileRef = 306251B9161FC3E4003D5BA9 /* README.txt */; };
+ 306251DF161FC830003D5BA9 /* WebServer.mm in Sources */ = {isa = PBXBuildFile; fileRef = 306251DD161FC82F003D5BA9 /* WebServer.mm */; };
+ 306257971620049A003D5BA9 /* Security.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 306257961620049A003D5BA9 /* Security.framework */; };
+ 30625799162005BF003D5BA9 /* MobileCoreServices.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 30625798162005BF003D5BA9 /* MobileCoreServices.framework */; };
+ 3062579B1620065B003D5BA9 /* CFNetwork.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3062579A1620065B003D5BA9 /* CFNetwork.framework */; };
+ 3062579D16200687003D5BA9 /* libxml2.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = 3062579C16200686003D5BA9 /* libxml2.dylib */; };
+ 3062579F1620FCC1003D5BA9 /* data in Resources */ = {isa = PBXBuildFile; fileRef = 3062579E1620FCC1003D5BA9 /* data */; };
3071288e8eff50d43c7b667ce4338191 /* g_toggle.c in Sources */ = {isa = PBXBuildFile; fileRef = d0e58363a990e17286a45137e4a779f5 /* g_toggle.c */; };
30c9649631f10f53a2d1c4928fca8c74 /* Physics.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1cf27802fbf26f2ccde62c9f6ecfbdd3 /* Physics.cpp */; };
311e822ee7c77f819f8002aa68e11523 /* unsymbol.c in Sources */ = {isa = PBXBuildFile; fileRef = ea6867e1325c02f567cc5745fd4ee614 /* unsymbol.c */; };
@@ -118,7 +153,6 @@
5e2f575841624549395cc4417f5afd68 /* x_misc.c in Sources */ = {isa = PBXBuildFile; fileRef = 2e17efff2aba71f142a3b477155e5705 /* x_misc.c */; };
5f9a42bb0d0e7be2a7f62fdb8d14ab04 /* ofxTransformer.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 75ff1054d5948d7eddd30e442ed0d1c7 /* ofxTransformer.cpp */; };
6070cfa70b0569c6c3a9f581ac854525 /* error.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7f742b5ccd6492b0d8729abd85e16a19 /* error.cpp */; };
- 616c983c87343e26e3a9c88960d5feef /* vexp.c in Sources */ = {isa = PBXBuildFile; fileRef = 0106d824660ca9832e86420889a0c629 /* vexp.c */; };
61e0a99bc255f8d9162b680a33a1ac06 /* LFO_noise~.c in Sources */ = {isa = PBXBuildFile; fileRef = 2c0a4d9c1dbcc2781d3ebefcc7a66a6d /* LFO_noise~.c */; };
62545d179c94265ca1389d4ac8d694a5 /* OscOutboundPacketStream.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 63a47ac60ffafc3bf093ec0f62a9a4d4 /* OscOutboundPacketStream.cpp */; };
63b1660025f48d5c77c61ef104fe487c /* PGMidi.mm in Sources */ = {isa = PBXBuildFile; fileRef = 9dd1ce9757a3468afdab04045b994403 /* PGMidi.mm */; };
@@ -184,7 +218,6 @@
981ea7c2357295ae8501f4c650fd5c84 /* b2PolygonShape.cpp in Sources */ = {isa = PBXBuildFile; fileRef = cc3fcae32b28b52708484dc5d6cfcbb1 /* b2PolygonShape.cpp */; };
99b44fd0c82e0862c33d05c7bcf0b901 /* s_path.c in Sources */ = {isa = PBXBuildFile; fileRef = 7a2aac13774f90d8ae1ab237d1747118 /* s_path.c */; };
99e6b6062af77dd1d863263994e958d8 /* scope.cpp in Sources */ = {isa = PBXBuildFile; fileRef = d1aec233a4326eb443d3e248fe28bb21 /* scope.cpp */; };
- 9aa2fd6019505ab9a36eb82d5be194cf /* vexp_if.c in Sources */ = {isa = PBXBuildFile; fileRef = ca1c0cdf09dbef1a7f721cae908d9fdd /* vexp_if.c */; };
9c1751b83cd88c7af84a1ba33ed675d7 /* wrap.c in Sources */ = {isa = PBXBuildFile; fileRef = 6c61a91e2e73c10145e3347ceb8062a2 /* wrap.c */; };
9c2dd51deba93269648ec013fabdbd4b /* g_array.c in Sources */ = {isa = PBXBuildFile; fileRef = e932d4ae38cbbeb093294c7269ca683d /* g_array.c */; };
9c62065bbbc072242af6965a91830ffd /* m_atom.c in Sources */ = {isa = PBXBuildFile; fileRef = d3504a489669607540b9cbe6ab22efb8 /* m_atom.c */; };
@@ -338,7 +371,6 @@
005fe5706c6486321414f2a9b037e1aa /* exp_inc.c */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.c; fileEncoding = 30; name = exp_inc.c; path = src/externals/iemlib/exp_inc.c; sourceTree = SOURCE_ROOT; };
00d6d32b84b099226431108cea775a33 /* ofxOsc.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = ofxOsc.h; path = ../../../addons/ofxOsc/src/ofxOsc.h; sourceTree = SOURCE_ROOT; };
00e4168327b058f211d9776c524ae891 /* ofxBox2dCircle.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = ofxBox2dCircle.h; path = ../../../addons/ofxBox2d/src/ofxBox2dCircle.h; sourceTree = SOURCE_ROOT; };
- 0106d824660ca9832e86420889a0c629 /* vexp.c */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.c; fileEncoding = 30; name = vexp.c; path = "../../../addons/ofxPd/src/pd/pure-data/extra/expr~/vexp.c"; sourceTree = SOURCE_ROOT; };
01083bd4b9b55159826034cc86144e17 /* lopcodes.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = lopcodes.h; path = ../../../addons/ofxLua/src/lua/lopcodes.h; sourceTree = SOURCE_ROOT; };
01b3cf190f24aa8b9db737edc2ff5b71 /* d_fft_mayer.c */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.c; fileEncoding = 30; name = d_fft_mayer.c; path = "../../../addons/ofxPd/src/pd/pure-data/src/d_fft_mayer.c"; sourceTree = SOURCE_ROOT; };
01fd79f5c1d00d28d8b1efeb175da998 /* PdTypes.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = PdTypes.cpp; path = ../../../addons/ofxPd/src/pd/cpp/PdTypes.cpp; sourceTree = SOURCE_ROOT; };
@@ -353,7 +385,6 @@
05f6cf127d4a621113d4a62fe197ab39 /* ofxMidi.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = ofxMidi.h; path = ../../../addons/ofxMidi/src/ofxMidi.h; sourceTree = SOURCE_ROOT; };
06fd50dcc0f0d2302e36c6921887f1e1 /* ldo.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = ldo.h; path = ../../../addons/ofxLua/src/lua/ldo.h; sourceTree = SOURCE_ROOT; };
076e021c881963ff378f36ad42d37173 /* b2Collision.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = b2Collision.cpp; path = ../../../addons/ofxBox2d/libs/Box2D/Collision/b2Collision.cpp; sourceTree = SOURCE_ROOT; };
- 08285163c7170d639b040c7c6b715e18 /* vexp_fun.c */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.c; fileEncoding = 30; name = vexp_fun.c; path = "../../../addons/ofxPd/src/pd/pure-data/extra/expr~/vexp_fun.c"; sourceTree = SOURCE_ROOT; };
08a24d5b7e63a6ac428dd6b6a231e3df /* lapi.c */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.c; fileEncoding = 30; name = lapi.c; path = ../../../addons/ofxLua/src/lua/lapi.c; sourceTree = SOURCE_ROOT; };
08f0ccdb0f246ca99d3937a8209496a2 /* iemlib2.c */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.c; fileEncoding = 30; name = iemlib2.c; path = src/externals/iemlib/iemlib2.c; sourceTree = SOURCE_ROOT; };
097fce1bd109d98ecb276d325ceb7f8c /* ofxBitmapString.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = ofxBitmapString.h; path = ../../../addons/ofxAppUtils/src/ofxBitmapString.h; sourceTree = SOURCE_ROOT; };
@@ -451,8 +482,76 @@
30625116161AA167003D5BA9 /* CoreMIDI.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMIDI.framework; path = System/Library/Frameworks/CoreMIDI.framework; sourceTree = SDKROOT; };
30625118161AA1FA003D5BA9 /* boost.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = boost.framework; path = ../../../addons/ofxLua/lib/boost/ios/boost.framework; sourceTree = "<group>"; };
3062511B161AA28B003D5BA9 /* Project-ios.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = "Project-ios.xcconfig"; sourceTree = "<group>"; };
- 3062512C161AA43C003D5BA9 /* data */ = {isa = PBXFileReference; lastKnownFileType = folder; name = data; path = bin/data; sourceTree = "<group>"; };
30625146161C94C5003D5BA9 /* TouchEvent.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TouchEvent.h; sourceTree = "<group>"; };
+ 30625174161FC3E4003D5BA9 /* DDData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DDData.h; sourceTree = "<group>"; };
+ 30625175161FC3E4003D5BA9 /* DDData.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DDData.m; sourceTree = "<group>"; };
+ 30625176161FC3E4003D5BA9 /* DDNumber.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DDNumber.h; sourceTree = "<group>"; };
+ 30625177161FC3E4003D5BA9 /* DDNumber.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DDNumber.m; sourceTree = "<group>"; };
+ 30625178161FC3E4003D5BA9 /* DDRange.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DDRange.h; sourceTree = "<group>"; };
+ 30625179161FC3E4003D5BA9 /* DDRange.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DDRange.m; sourceTree = "<group>"; };
+ 3062517A161FC3E4003D5BA9 /* HTTPAuthenticationRequest.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HTTPAuthenticationRequest.h; sourceTree = "<group>"; };
+ 3062517B161FC3E4003D5BA9 /* HTTPAuthenticationRequest.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HTTPAuthenticationRequest.m; sourceTree = "<group>"; };
+ 3062517C161FC3E4003D5BA9 /* HTTPConnection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HTTPConnection.h; sourceTree = "<group>"; };
+ 3062517D161FC3E4003D5BA9 /* HTTPConnection.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HTTPConnection.m; sourceTree = "<group>"; };
+ 3062517E161FC3E4003D5BA9 /* HTTPLogging.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HTTPLogging.h; sourceTree = "<group>"; };
+ 3062517F161FC3E4003D5BA9 /* HTTPMessage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HTTPMessage.h; sourceTree = "<group>"; };
+ 30625180161FC3E4003D5BA9 /* HTTPMessage.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HTTPMessage.m; sourceTree = "<group>"; };
+ 30625181161FC3E4003D5BA9 /* HTTPResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HTTPResponse.h; sourceTree = "<group>"; };
+ 30625182161FC3E4003D5BA9 /* HTTPServer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HTTPServer.h; sourceTree = "<group>"; };
+ 30625183161FC3E4003D5BA9 /* HTTPServer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HTTPServer.m; sourceTree = "<group>"; };
+ 30625185161FC3E4003D5BA9 /* MultipartFormDataParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MultipartFormDataParser.h; sourceTree = "<group>"; };
+ 30625186161FC3E4003D5BA9 /* MultipartFormDataParser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MultipartFormDataParser.m; sourceTree = "<group>"; };
+ 30625187161FC3E4003D5BA9 /* MultipartMessageHeader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MultipartMessageHeader.h; sourceTree = "<group>"; };
+ 30625188161FC3E4003D5BA9 /* MultipartMessageHeader.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MultipartMessageHeader.m; sourceTree = "<group>"; };
+ 30625189161FC3E4003D5BA9 /* MultipartMessageHeaderField.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MultipartMessageHeaderField.h; sourceTree = "<group>"; };
+ 3062518A161FC3E4003D5BA9 /* MultipartMessageHeaderField.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MultipartMessageHeaderField.m; sourceTree = "<group>"; };
+ 3062518C161FC3E4003D5BA9 /* HTTPAsyncFileResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HTTPAsyncFileResponse.h; sourceTree = "<group>"; };
+ 3062518D161FC3E4003D5BA9 /* HTTPAsyncFileResponse.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HTTPAsyncFileResponse.m; sourceTree = "<group>"; };
+ 3062518E161FC3E4003D5BA9 /* HTTPDataResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HTTPDataResponse.h; sourceTree = "<group>"; };
+ 3062518F161FC3E4003D5BA9 /* HTTPDataResponse.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HTTPDataResponse.m; sourceTree = "<group>"; };
+ 30625190161FC3E4003D5BA9 /* HTTPDynamicFileResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HTTPDynamicFileResponse.h; sourceTree = "<group>"; };
+ 30625191161FC3E4003D5BA9 /* HTTPDynamicFileResponse.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HTTPDynamicFileResponse.m; sourceTree = "<group>"; };
+ 30625192161FC3E4003D5BA9 /* HTTPFileResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HTTPFileResponse.h; sourceTree = "<group>"; };
+ 30625193161FC3E4003D5BA9 /* HTTPFileResponse.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HTTPFileResponse.m; sourceTree = "<group>"; };
+ 30625194161FC3E4003D5BA9 /* HTTPRedirectResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = HTTPRedirectResponse.h; sourceTree = "<group>"; };
+ 30625195161FC3E4003D5BA9 /* HTTPRedirectResponse.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = HTTPRedirectResponse.m; sourceTree = "<group>"; };
+ 30625196161FC3E4003D5BA9 /* WebSocket.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebSocket.h; sourceTree = "<group>"; };
+ 30625197161FC3E4003D5BA9 /* WebSocket.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WebSocket.m; sourceTree = "<group>"; };
+ 3062519A161FC3E4003D5BA9 /* DAVConnection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DAVConnection.h; sourceTree = "<group>"; };
+ 3062519B161FC3E4003D5BA9 /* DAVConnection.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DAVConnection.m; sourceTree = "<group>"; };
+ 3062519C161FC3E4003D5BA9 /* DAVResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DAVResponse.h; sourceTree = "<group>"; };
+ 3062519D161FC3E4003D5BA9 /* DAVResponse.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DAVResponse.m; sourceTree = "<group>"; };
+ 3062519E161FC3E4003D5BA9 /* DELETEResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DELETEResponse.h; sourceTree = "<group>"; };
+ 3062519F161FC3E4003D5BA9 /* DELETEResponse.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DELETEResponse.m; sourceTree = "<group>"; };
+ 306251A0161FC3E4003D5BA9 /* PUTResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PUTResponse.h; sourceTree = "<group>"; };
+ 306251A1161FC3E4003D5BA9 /* PUTResponse.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PUTResponse.m; sourceTree = "<group>"; };
+ 306251A2161FC3E4003D5BA9 /* LICENSE.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = LICENSE.txt; sourceTree = "<group>"; };
+ 306251A5161FC3E4003D5BA9 /* About.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = About.txt; sourceTree = "<group>"; };
+ 306251A6161FC3E4003D5BA9 /* GCDAsyncSocket.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GCDAsyncSocket.h; sourceTree = "<group>"; };
+ 306251A7161FC3E4003D5BA9 /* GCDAsyncSocket.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GCDAsyncSocket.m; sourceTree = "<group>"; };
+ 306251A9161FC3E4003D5BA9 /* About.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = About.txt; sourceTree = "<group>"; };
+ 306251AA161FC3E4003D5BA9 /* DDAbstractDatabaseLogger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DDAbstractDatabaseLogger.h; sourceTree = "<group>"; };
+ 306251AB161FC3E4003D5BA9 /* DDAbstractDatabaseLogger.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DDAbstractDatabaseLogger.m; sourceTree = "<group>"; };
+ 306251AC161FC3E4003D5BA9 /* DDASLLogger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DDASLLogger.h; sourceTree = "<group>"; };
+ 306251AD161FC3E4003D5BA9 /* DDASLLogger.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DDASLLogger.m; sourceTree = "<group>"; };
+ 306251AE161FC3E4003D5BA9 /* DDFileLogger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DDFileLogger.h; sourceTree = "<group>"; };
+ 306251AF161FC3E4003D5BA9 /* DDFileLogger.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DDFileLogger.m; sourceTree = "<group>"; };
+ 306251B0161FC3E4003D5BA9 /* DDLog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DDLog.h; sourceTree = "<group>"; };
+ 306251B1161FC3E4003D5BA9 /* DDLog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DDLog.m; sourceTree = "<group>"; };
+ 306251B2161FC3E4003D5BA9 /* DDTTYLogger.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DDTTYLogger.h; sourceTree = "<group>"; };
+ 306251B3161FC3E4003D5BA9 /* DDTTYLogger.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DDTTYLogger.m; sourceTree = "<group>"; };
+ 306251B5161FC3E4003D5BA9 /* ContextFilterLogFormatter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ContextFilterLogFormatter.h; sourceTree = "<group>"; };
+ 306251B6161FC3E4003D5BA9 /* ContextFilterLogFormatter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ContextFilterLogFormatter.m; sourceTree = "<group>"; };
+ 306251B7161FC3E4003D5BA9 /* DispatchQueueLogFormatter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DispatchQueueLogFormatter.h; sourceTree = "<group>"; };
+ 306251B8161FC3E4003D5BA9 /* DispatchQueueLogFormatter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DispatchQueueLogFormatter.m; sourceTree = "<group>"; };
+ 306251B9161FC3E4003D5BA9 /* README.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = README.txt; sourceTree = "<group>"; };
+ 306251DD161FC82F003D5BA9 /* WebServer.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = WebServer.mm; path = src/ios/WebServer.mm; sourceTree = SOURCE_ROOT; };
+ 306251DE161FC830003D5BA9 /* WebServer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WebServer.h; path = src/ios/WebServer.h; sourceTree = SOURCE_ROOT; };
+ 306257961620049A003D5BA9 /* Security.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Security.framework; path = System/Library/Frameworks/Security.framework; sourceTree = SDKROOT; };
+ 30625798162005BF003D5BA9 /* MobileCoreServices.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MobileCoreServices.framework; path = System/Library/Frameworks/MobileCoreServices.framework; sourceTree = SDKROOT; };
+ 3062579A1620065B003D5BA9 /* CFNetwork.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CFNetwork.framework; path = System/Library/Frameworks/CFNetwork.framework; sourceTree = SDKROOT; };
+ 3062579C16200686003D5BA9 /* libxml2.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libxml2.dylib; path = usr/lib/libxml2.dylib; sourceTree = SDKROOT; };
+ 3062579E1620FCC1003D5BA9 /* data */ = {isa = PBXFileReference; lastKnownFileType = folder; name = data; path = bin/data; sourceTree = "<group>"; };
31317daf63909d58058dc81e856e7604 /* ofxPGMidiSourceDelegate.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = ofxPGMidiSourceDelegate.h; path = ../../../addons/ofxMidi/src/ios/ofxPGMidiSourceDelegate.h; sourceTree = SOURCE_ROOT; };
314f3fba7f709698498672ccba9054ea /* function.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = function.cpp; path = ../../../addons/ofxLua/src/luabind/src/function.cpp; sourceTree = SOURCE_ROOT; };
319aa8a155a918a615b97c1efc835ce5 /* App.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = App.h; path = src/ios/App.h; sourceTree = SOURCE_ROOT; };
@@ -508,10 +607,8 @@
4a57b6f533f14083c5d4ac24a8adcda9 /* class_rep.hpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = class_rep.hpp; path = ../../../addons/ofxLua/src/luabind/luabind/detail/class_rep.hpp; sourceTree = SOURCE_ROOT; };
4a6b8555b420bd923af1241ca9b3a684 /* speedlim.c */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.c; fileEncoding = 30; name = speedlim.c; path = src/externals/iemlib/speedlim.c; sourceTree = SOURCE_ROOT; };
4aea0d08c3b0323fedc8d9749c9217ea /* ofxUIImageSampler.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = ofxUIImageSampler.h; path = ../../../addons/ofxUI/src/ofxUIImageSampler.h; sourceTree = SOURCE_ROOT; };
- 4b1da4faed1fff09a6a0a3d242a8bbf0 /* vexp.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = vexp.h; path = "../../../addons/ofxPd/src/pd/pure-data/extra/expr~/vexp.h"; sourceTree = SOURCE_ROOT; };
4c1a083ac6f4f462ebc575655c1e2c66 /* b2CircleContact.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = b2CircleContact.cpp; path = ../../../addons/ofxBox2d/libs/Box2D/Dynamics/Contacts/b2CircleContact.cpp; sourceTree = SOURCE_ROOT; };
4c4c77963004e4a4d8ff1d00f9d88bb3 /* b2Joint.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = b2Joint.h; path = ../../../addons/ofxBox2d/libs/Box2D/Dynamics/Joints/b2Joint.h; sourceTree = SOURCE_ROOT; };
- 4c662ca07888860d756fdfc3b651a81e /* fts_to_pd.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = fts_to_pd.h; path = "../../../addons/ofxPd/src/pd/pure-data/extra/expr~/fts_to_pd.h"; sourceTree = SOURCE_ROOT; };
4c9b919b991b4e45bc5dc0dbf09c9904 /* ofxUIRadio.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = ofxUIRadio.h; path = ../../../addons/ofxUI/src/ofxUIRadio.h; sourceTree = SOURCE_ROOT; };
4ce15bb69c1b107ea307c2de70bcf31d /* PGMidi.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = PGMidi.h; path = ../../../addons/ofxMidi/src/ios/pgmidi/PGMidi.h; sourceTree = SOURCE_ROOT; };
4dac2dc8bc83c8095091f2f412658a64 /* toggle_mess.c */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.c; fileEncoding = 30; name = toggle_mess.c; path = src/externals/iemlib/toggle_mess.c; sourceTree = SOURCE_ROOT; };
@@ -609,7 +706,6 @@
6ba8a23114597204d5c6876730b1b0e7 /* ofxSceneManager.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = ofxSceneManager.h; path = ../../../addons/ofxAppUtils/src/ofxSceneManager.h; sourceTree = SOURCE_ROOT; };
6c380b1dfe0e88a4f86b7a0c27e82e11 /* b2Collision.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = b2Collision.h; path = ../../../addons/ofxBox2d/libs/Box2D/Collision/b2Collision.h; sourceTree = SOURCE_ROOT; };
6c61a91e2e73c10145e3347ceb8062a2 /* wrap.c */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.c; fileEncoding = 30; name = wrap.c; path = src/externals/iemlib/wrap.c; sourceTree = SOURCE_ROOT; };
- 6cf665201c46ab7b30f38226e921db84 /* LICENSE.txt */ = {isa = PBXFileReference; explicitFileType = file; fileEncoding = 30; name = LICENSE.txt; path = "../../../addons/ofxPd/src/pd/pure-data/extra/expr~/LICENSE.txt"; sourceTree = SOURCE_ROOT; };
6cfe765b0e101938ff5ece21c9d3a4bd /* ofxPGMidiIn.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = ofxPGMidiIn.h; path = ../../../addons/ofxMidi/src/ios/ofxPGMidiIn.h; sourceTree = SOURCE_ROOT; };
6daaed83a192cfb0ba4d2fb5ad383935 /* print.c */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.c; fileEncoding = 30; name = print.c; path = ../../../addons/ofxLua/src/lua/print.c; sourceTree = SOURCE_ROOT; };
6dc33bd675b405526e991594b79654f6 /* hilbert~-help.pd */ = {isa = PBXFileReference; explicitFileType = file; fileEncoding = 30; name = "hilbert~-help.pd"; path = "../../../addons/ofxPd/src/pd/pure-data/extra/hilbert~-help.pd"; sourceTree = SOURCE_ROOT; };
@@ -694,7 +790,6 @@
8f752d533061c3745ffb0a71e2ad5501 /* d_fftroutine.c */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.c; fileEncoding = 30; name = d_fftroutine.c; path = "../../../addons/ofxPd/src/pd/pure-data/src/d_fftroutine.c"; sourceTree = SOURCE_ROOT; };
8f844ea01a3b84164ec531d5b19d1871 /* bpe.c */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.c; fileEncoding = 30; name = bpe.c; path = src/externals/iemlib/bpe.c; sourceTree = SOURCE_ROOT; };
8fa011ed327d11f7bec1c5715338c8e7 /* pointee_typeid.hpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = pointee_typeid.hpp; path = ../../../addons/ofxLua/src/luabind/luabind/detail/pointee_typeid.hpp; sourceTree = SOURCE_ROOT; };
- 8fc82237ec8605f0a08dc62e0c19b8cd /* README.txt */ = {isa = PBXFileReference; explicitFileType = file; fileEncoding = 30; name = README.txt; path = "../../../addons/ofxPd/src/pd/pure-data/extra/expr~/README.txt"; sourceTree = SOURCE_ROOT; };
917e84e4f57957f7a5bd76f7d895f5be /* ofxTimer.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = ofxTimer.h; path = ../../../addons/ofxAppUtils/src/ofxTimer.h; sourceTree = SOURCE_ROOT; };
920cfc6d7e43eed2b7b03746cc1dde5f /* b2StackAllocator.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = b2StackAllocator.cpp; path = ../../../addons/ofxBox2d/libs/Box2D/Common/b2StackAllocator.cpp; sourceTree = SOURCE_ROOT; };
930eb8baaa6a962411ec197db54eb10b /* b2GearJoint.cpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.cpp; fileEncoding = 30; name = b2GearJoint.cpp; path = ../../../addons/ofxBox2d/libs/Box2D/Dynamics/Joints/b2GearJoint.cpp; sourceTree = SOURCE_ROOT; };
@@ -802,7 +897,6 @@
bd0e7ac8be205034d5b377a6857d8a76 /* ofxMidiMessage.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = ofxMidiMessage.h; path = ../../../addons/ofxMidi/src/ofxMidiMessage.h; sourceTree = SOURCE_ROOT; };
be670472564c21a1e5c7cb605fc1b216 /* stripfilename.c */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.c; fileEncoding = 30; name = stripfilename.c; path = src/externals/iemlib/stripfilename.c; sourceTree = SOURCE_ROOT; };
be6c43b3bdcad7790ef16c7217222f81 /* primitives.hpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = primitives.hpp; path = ../../../addons/ofxLua/src/luabind/luabind/detail/primitives.hpp; sourceTree = SOURCE_ROOT; };
- bfaf0ffb7bc62d9d7f56c9020a5958ba /* expr-help.pd */ = {isa = PBXFileReference; explicitFileType = file; fileEncoding = 30; name = "expr-help.pd"; path = "../../../addons/ofxPd/src/pd/pure-data/extra/expr-help.pd"; sourceTree = SOURCE_ROOT; };
bfc74d9d7d9b55f4b6c21724c58830f0 /* x_list.c */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.c; fileEncoding = 30; name = x_list.c; path = "../../../addons/ofxPd/src/pd/pure-data/src/x_list.c"; sourceTree = SOURCE_ROOT; };
bfd309cdca00f95be8620b3734ca989a /* s_stuff.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = s_stuff.h; path = "../../../addons/ofxPd/src/pd/pure-data/src/s_stuff.h"; sourceTree = SOURCE_ROOT; };
c0d30bc2db9b439ead5ee77788af93da /* assert.hpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = assert.hpp; path = ../../../addons/ofxBox2d/libs/triangle/assert.hpp; sourceTree = SOURCE_ROOT; };
@@ -828,7 +922,6 @@
c88f1e3304a9320e8efe049db1373a23 /* main.mm */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.objcpp; fileEncoding = 30; name = main.mm; path = src/ios/main.mm; sourceTree = SOURCE_ROOT; };
c98dfd9c0143227ae69e956910445f06 /* b2ContactSolver.h */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = b2ContactSolver.h; path = ../../../addons/ofxBox2d/libs/Box2D/Dynamics/Contacts/b2ContactSolver.h; sourceTree = SOURCE_ROOT; };
c9bfe4f546d4853070c31b2fcd39d583 /* rev2~.pd */ = {isa = PBXFileReference; explicitFileType = file; fileEncoding = 30; name = "rev2~.pd"; path = "../../../addons/ofxPd/src/pd/pure-data/extra/rev2~.pd"; sourceTree = SOURCE_ROOT; };
- ca1c0cdf09dbef1a7f721cae908d9fdd /* vexp_if.c */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.c; fileEncoding = 30; name = vexp_if.c; path = "../../../addons/ofxPd/src/pd/pure-data/extra/expr~/vexp_if.c"; sourceTree = SOURCE_ROOT; };
ca4ab6b52e7cd8e55809fc2e63b4228a /* ofxPGMidiDelegate.mm */ = {isa = PBXFileReference; explicitFileType = sourcecode.cpp.objcpp; fileEncoding = 30; name = ofxPGMidiDelegate.mm; path = ../../../addons/ofxMidi/src/ios/ofxPGMidiDelegate.mm; sourceTree = SOURCE_ROOT; };
cac00e4e3472f94b20c0af00f7a20dfb /* s_audio.c */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.c; fileEncoding = 30; name = s_audio.c; path = "../../../addons/ofxPd/src/pd/pure-data/src/s_audio.c"; sourceTree = SOURCE_ROOT; };
cb37cae8b685fe4f626e42d083c30736 /* out_value_policy.hpp */ = {isa = PBXFileReference; explicitFileType = sourcecode.c.h; fileEncoding = 30; name = out_value_policy.hpp; path = ../../../addons/ofxLua/src/luabind/luabind/out_value_policy.hpp; sourceTree = SOURCE_ROOT; };
@@ -959,6 +1052,10 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
+ 3062579D16200687003D5BA9 /* libxml2.dylib in Frameworks */,
+ 3062579B1620065B003D5BA9 /* CFNetwork.framework in Frameworks */,
+ 30625799162005BF003D5BA9 /* MobileCoreServices.framework in Frameworks */,
+ 306257971620049A003D5BA9 /* Security.framework in Frameworks */,
30625119161AA1FB003D5BA9 /* boost.framework in Frameworks */,
30625117161AA168003D5BA9 /* CoreMIDI.framework in Frameworks */,
30625114161AA160003D5BA9 /* liblua-ios.a in Frameworks */,
@@ -1173,7 +1270,7 @@
children = (
3062511B161AA28B003D5BA9 /* Project-ios.xcconfig */,
30625112161AA06D003D5BA9 /* robotcowboy-ios-Info.plist */,
- 3062512C161AA43C003D5BA9 /* data */,
+ 3062579E1620FCC1003D5BA9 /* data */,
E4D8936A11527B74007E1F53 /* src */,
BB24E1F710DAA51900E9C588 /* openFrameworks */,
BB16F26B0F2B646B00518274 /* addons */,
@@ -1229,6 +1326,156 @@
name = Products;
sourceTree = "<group>";
};
+ 30625171161FC3E4003D5BA9 /* CocoaHTTPServer */ = {
+ isa = PBXGroup;
+ children = (
+ 30625172161FC3E4003D5BA9 /* Core */,
+ 30625198161FC3E4003D5BA9 /* Extensions */,
+ 306251A2161FC3E4003D5BA9 /* LICENSE.txt */,
+ 306251A3161FC3E4003D5BA9 /* Vendor */,
+ );
+ name = CocoaHTTPServer;
+ path = ios/CocoaHTTPServer;
+ sourceTree = "<group>";
+ };
+ 30625172161FC3E4003D5BA9 /* Core */ = {
+ isa = PBXGroup;
+ children = (
+ 30625173161FC3E4003D5BA9 /* Categories */,
+ 3062517A161FC3E4003D5BA9 /* HTTPAuthenticationRequest.h */,
+ 3062517B161FC3E4003D5BA9 /* HTTPAuthenticationRequest.m */,
+ 3062517C161FC3E4003D5BA9 /* HTTPConnection.h */,
+ 3062517D161FC3E4003D5BA9 /* HTTPConnection.m */,
+ 3062517E161FC3E4003D5BA9 /* HTTPLogging.h */,
+ 3062517F161FC3E4003D5BA9 /* HTTPMessage.h */,
+ 30625180161FC3E4003D5BA9 /* HTTPMessage.m */,
+ 30625181161FC3E4003D5BA9 /* HTTPResponse.h */,
+ 30625182161FC3E4003D5BA9 /* HTTPServer.h */,
+ 30625183161FC3E4003D5BA9 /* HTTPServer.m */,
+ 30625184161FC3E4003D5BA9 /* Mime */,
+ 3062518B161FC3E4003D5BA9 /* Responses */,
+ 30625196161FC3E4003D5BA9 /* WebSocket.h */,
+ 30625197161FC3E4003D5BA9 /* WebSocket.m */,
+ );
+ path = Core;
+ sourceTree = "<group>";
+ };
+ 30625173161FC3E4003D5BA9 /* Categories */ = {
+ isa = PBXGroup;
+ children = (
+ 30625174161FC3E4003D5BA9 /* DDData.h */,
+ 30625175161FC3E4003D5BA9 /* DDData.m */,
+ 30625176161FC3E4003D5BA9 /* DDNumber.h */,
+ 30625177161FC3E4003D5BA9 /* DDNumber.m */,
+ 30625178161FC3E4003D5BA9 /* DDRange.h */,
+ 30625179161FC3E4003D5BA9 /* DDRange.m */,
+ );
+ path = Categories;
+ sourceTree = "<group>";
+ };
+ 30625184161FC3E4003D5BA9 /* Mime */ = {
+ isa = PBXGroup;
+ children = (
+ 30625185161FC3E4003D5BA9 /* MultipartFormDataParser.h */,
+ 30625186161FC3E4003D5BA9 /* MultipartFormDataParser.m */,
+ 30625187161FC3E4003D5BA9 /* MultipartMessageHeader.h */,
+ 30625188161FC3E4003D5BA9 /* MultipartMessageHeader.m */,
+ 30625189161FC3E4003D5BA9 /* MultipartMessageHeaderField.h */,
+ 3062518A161FC3E4003D5BA9 /* MultipartMessageHeaderField.m */,
+ );
+ path = Mime;
+ sourceTree = "<group>";
+ };
+ 3062518B161FC3E4003D5BA9 /* Responses */ = {
+ isa = PBXGroup;
+ children = (
+ 3062518C161FC3E4003D5BA9 /* HTTPAsyncFileResponse.h */,
+ 3062518D161FC3E4003D5BA9 /* HTTPAsyncFileResponse.m */,
+ 3062518E161FC3E4003D5BA9 /* HTTPDataResponse.h */,
+ 3062518F161FC3E4003D5BA9 /* HTTPDataResponse.m */,
+ 30625190161FC3E4003D5BA9 /* HTTPDynamicFileResponse.h */,
+ 30625191161FC3E4003D5BA9 /* HTTPDynamicFileResponse.m */,
+ 30625192161FC3E4003D5BA9 /* HTTPFileResponse.h */,
+ 30625193161FC3E4003D5BA9 /* HTTPFileResponse.m */,
+ 30625194161FC3E4003D5BA9 /* HTTPRedirectResponse.h */,
+ 30625195161FC3E4003D5BA9 /* HTTPRedirectResponse.m */,
+ );
+ path = Responses;
+ sourceTree = "<group>";
+ };
+ 30625198161FC3E4003D5BA9 /* Extensions */ = {
+ isa = PBXGroup;
+ children = (
+ 30625199161FC3E4003D5BA9 /* WebDAV */,
+ );
+ path = Extensions;
+ sourceTree = "<group>";
+ };
+ 30625199161FC3E4003D5BA9 /* WebDAV */ = {
+ isa = PBXGroup;
+ children = (
+ 3062519A161FC3E4003D5BA9 /* DAVConnection.h */,
+ 3062519B161FC3E4003D5BA9 /* DAVConnection.m */,
+ 3062519C161FC3E4003D5BA9 /* DAVResponse.h */,
+ 3062519D161FC3E4003D5BA9 /* DAVResponse.m */,
+ 3062519E161FC3E4003D5BA9 /* DELETEResponse.h */,
+ 3062519F161FC3E4003D5BA9 /* DELETEResponse.m */,
+ 306251A0161FC3E4003D5BA9 /* PUTResponse.h */,
+ 306251A1161FC3E4003D5BA9 /* PUTResponse.m */,
+ );
+ path = WebDAV;
+ sourceTree = "<group>";
+ };
+ 306251A3161FC3E4003D5BA9 /* Vendor */ = {
+ isa = PBXGroup;
+ children = (
+ 306251A4161FC3E4003D5BA9 /* CocoaAsyncSocket */,
+ 306251A8161FC3E4003D5BA9 /* CocoaLumberjack */,
+ );
+ path = Vendor;
+ sourceTree = "<group>";
+ };
+ 306251A4161FC3E4003D5BA9 /* CocoaAsyncSocket */ = {
+ isa = PBXGroup;
+ children = (
+ 306251A5161FC3E4003D5BA9 /* About.txt */,
+ 306251A6161FC3E4003D5BA9 /* GCDAsyncSocket.h */,
+ 306251A7161FC3E4003D5BA9 /* GCDAsyncSocket.m */,
+ );
+ path = CocoaAsyncSocket;
+ sourceTree = "<group>";
+ };
+ 306251A8161FC3E4003D5BA9 /* CocoaLumberjack */ = {
+ isa = PBXGroup;
+ children = (
+ 306251A9161FC3E4003D5BA9 /* About.txt */,
+ 306251AA161FC3E4003D5BA9 /* DDAbstractDatabaseLogger.h */,
+ 306251AB161FC3E4003D5BA9 /* DDAbstractDatabaseLogger.m */,
+ 306251AC161FC3E4003D5BA9 /* DDASLLogger.h */,
+ 306251AD161FC3E4003D5BA9 /* DDASLLogger.m */,
+ 306251AE161FC3E4003D5BA9 /* DDFileLogger.h */,
+ 306251AF161FC3E4003D5BA9 /* DDFileLogger.m */,
+ 306251B0161FC3E4003D5BA9 /* DDLog.h */,
+ 306251B1161FC3E4003D5BA9 /* DDLog.m */,
+ 306251B2161FC3E4003D5BA9 /* DDTTYLogger.h */,
+ 306251B3161FC3E4003D5BA9 /* DDTTYLogger.m */,
+ 306251B4161FC3E4003D5BA9 /* Extensions */,
+ );
+ path = CocoaLumberjack;
+ sourceTree = "<group>";
+ };
+ 306251B4161FC3E4003D5BA9 /* Extensions */ = {
+ isa = PBXGroup;
+ children = (
+ 306251B5161FC3E4003D5BA9 /* ContextFilterLogFormatter.h */,
+ 306251B6161FC3E4003D5BA9 /* ContextFilterLogFormatter.m */,
+ 306251B7161FC3E4003D5BA9 /* DispatchQueueLogFormatter.h */,
+ 306251B8161FC3E4003D5BA9 /* DispatchQueueLogFormatter.m */,
+ 306251B9161FC3E4003D5BA9 /* README.txt */,
+ );
+ path = Extensions;
+ sourceTree = "<group>";
+ };
30cb364908817057b430d52805394cbc /* osc */ = {
isa = PBXGroup;
children = (
@@ -1261,6 +1508,9 @@
children = (
319aa8a155a918a615b97c1efc835ce5 /* App.h */,
fec73aa4a3e2c769ab418c21083567e7 /* App.mm */,
+ 306251DD161FC82F003D5BA9 /* WebServer.mm */,
+ 306251DE161FC830003D5BA9 /* WebServer.h */,
+ 30625171161FC3E4003D5BA9 /* CocoaHTTPServer */,
c88f1e3304a9320e8efe049db1373a23 /* main.mm */,
);
name = ios;
@@ -1547,6 +1797,10 @@
BB16E9930F2B1E5900518274 /* libs */ = {
isa = PBXGroup;
children = (
+ 3062579C16200686003D5BA9 /* libxml2.dylib */,
+ 3062579A1620065B003D5BA9 /* CFNetwork.framework */,
+ 30625798162005BF003D5BA9 /* MobileCoreServices.framework */,
+ 306257961620049A003D5BA9 /* Security.framework */,
30625118161AA1FA003D5BA9 /* boost.framework */,
30625116161AA167003D5BA9 /* CoreMIDI.framework */,
BBE5E94E0F497BD800F28951 /* core */,
@@ -1749,20 +2003,6 @@
name = src;
sourceTree = "<group>";
};
- be66ca04dd25097b52a3e3c1e6454bc0 /* expr~ */ = {
- isa = PBXGroup;
- children = (
- 4c662ca07888860d756fdfc3b651a81e /* fts_to_pd.h */,
- 6cf665201c46ab7b30f38226e921db84 /* LICENSE.txt */,
- 8fc82237ec8605f0a08dc62e0c19b8cd /* README.txt */,
- 0106d824660ca9832e86420889a0c629 /* vexp.c */,
- 4b1da4faed1fff09a6a0a3d242a8bbf0 /* vexp.h */,
- 08285163c7170d639b040c7c6b715e18 /* vexp_fun.c */,
- ca1c0cdf09dbef1a7f721cae908d9fdd /* vexp_if.c */,
- );
- name = "expr~";
- sourceTree = "<group>";
- };
c0a346b00fd1efbbee0eb277a278c928 /* sigmund~ */ = {
isa = PBXGroup;
children = (
@@ -1779,8 +2019,6 @@
91df00b62f71d6ee02229bb2de863f49 /* choice */,
33f168c5557a78db9d74475e835dd88c /* complex-mod~-help.pd */,
2463962449bac63c71ff71ce967cbc26 /* complex-mod~.pd */,
- bfaf0ffb7bc62d9d7f56c9020a5958ba /* expr-help.pd */,
- be66ca04dd25097b52a3e3c1e6454bc0 /* expr~ */,
4248396cccb54e793132d580b0d82580 /* fiddle~ */,
6dc33bd675b405526e991594b79654f6 /* hilbert~-help.pd */,
86f2cc5e94173b1278c104dfc7307612 /* hilbert~.pd */,
@@ -2237,7 +2475,11 @@
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
- 3062512D161AA43C003D5BA9 /* data in Resources */,
+ 306251CE161FC3E4003D5BA9 /* LICENSE.txt in Resources */,
+ 306251CF161FC3E4003D5BA9 /* About.txt in Resources */,
+ 306251D1161FC3E4003D5BA9 /* About.txt in Resources */,
+ 306251D9161FC3E4003D5BA9 /* README.txt in Resources */,
+ 3062579F1620FCC1003D5BA9 /* data in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -2461,9 +2703,6 @@
d24ae756f3a3ab7cd57e830445eb4432 /* z_libpd.c in Sources */,
e87a0a848e9c12aca6d6cae79890a9a6 /* bonk~.c in Sources */,
e23f4bf2ac3bf485a39578bcc9735d67 /* choice.c in Sources */,
- 616c983c87343e26e3a9c88960d5feef /* vexp.c in Sources */,
- 1d8dae9dc3f746b92ec368050f45765d /* vexp_fun.c in Sources */,
- 9aa2fd6019505ab9a36eb82d5be194cf /* vexp_if.c in Sources */,
1a7c0576cfadfa7ce93d9e65e61a8336 /* fiddle~.c in Sources */,
820aacbf529658a1ae3071e77bf6727d /* loop~.c in Sources */,
2e489c8843d0c411ad9cb2d1399fa9a6 /* lrshift~.c in Sources */,
@@ -2539,6 +2778,34 @@
8cebccd3e6bcec2633e16b0e12b60468 /* x_net.c in Sources */,
4250163735d2e5d8b0cf80f6b976ebe8 /* x_qlist.c in Sources */,
bbdce8a2bd533d7b2581b4cf8146926f /* x_time.c in Sources */,
+ 306251BB161FC3E4003D5BA9 /* DDNumber.m in Sources */,
+ 306251BC161FC3E4003D5BA9 /* DDRange.m in Sources */,
+ 306251BD161FC3E4003D5BA9 /* HTTPAuthenticationRequest.m in Sources */,
+ 306251BE161FC3E4003D5BA9 /* HTTPConnection.m in Sources */,
+ 306251BF161FC3E4003D5BA9 /* HTTPMessage.m in Sources */,
+ 306251C0161FC3E4003D5BA9 /* HTTPServer.m in Sources */,
+ 306251C1161FC3E4003D5BA9 /* MultipartFormDataParser.m in Sources */,
+ 306251C2161FC3E4003D5BA9 /* MultipartMessageHeader.m in Sources */,
+ 306251C3161FC3E4003D5BA9 /* MultipartMessageHeaderField.m in Sources */,
+ 306251C4161FC3E4003D5BA9 /* HTTPAsyncFileResponse.m in Sources */,
+ 306251C5161FC3E4003D5BA9 /* HTTPDataResponse.m in Sources */,
+ 306251C6161FC3E4003D5BA9 /* HTTPDynamicFileResponse.m in Sources */,
+ 306251C7161FC3E4003D5BA9 /* HTTPFileResponse.m in Sources */,
+ 306251C8161FC3E4003D5BA9 /* HTTPRedirectResponse.m in Sources */,
+ 306251C9161FC3E4003D5BA9 /* WebSocket.m in Sources */,
+ 306251CA161FC3E4003D5BA9 /* DAVConnection.m in Sources */,
+ 306251CB161FC3E4003D5BA9 /* DAVResponse.m in Sources */,
+ 306251CC161FC3E4003D5BA9 /* DELETEResponse.m in Sources */,
+ 306251CD161FC3E4003D5BA9 /* PUTResponse.m in Sources */,
+ 306251D0161FC3E4003D5BA9 /* GCDAsyncSocket.m in Sources */,
+ 306251D2161FC3E4003D5BA9 /* DDAbstractDatabaseLogger.m in Sources */,
+ 306251D3161FC3E4003D5BA9 /* DDASLLogger.m in Sources */,
+ 306251D4161FC3E4003D5BA9 /* DDFileLogger.m in Sources */,
+ 306251D5161FC3E4003D5BA9 /* DDLog.m in Sources */,
+ 306251D6161FC3E4003D5BA9 /* DDTTYLogger.m in Sources */,
+ 306251D7161FC3E4003D5BA9 /* ContextFilterLogFormatter.m in Sources */,
+ 306251D8161FC3E4003D5BA9 /* DispatchQueueLogFormatter.m in Sources */,
+ 306251DF161FC830003D5BA9 /* WebServer.mm in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
@@ -2600,7 +2867,7 @@
GCC_C_LANGUAGE_STANDARD = c99;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
- GCC_VERSION = com.apple.compilers.llvmgcc42;
+ GCC_VERSION = "";
GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS = NO;
GCC_WARN_ABOUT_INVALID_OFFSETOF_MACRO = NO;
GCC_WARN_ABOUT_POINTER_SIGNEDNESS = NO;
@@ -2698,7 +2965,7 @@
GCC_OPTIMIZATION_LEVEL = 3;
GCC_SYMBOLS_PRIVATE_EXTERN = NO;
GCC_THUMB_SUPPORT = NO;
- GCC_VERSION = com.apple.compilers.llvmgcc42;
+ GCC_VERSION = "";
GCC_WARN_ABOUT_RETURN_TYPE = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
HEADER_SEARCH_PATHS = (
View
23 scripts/update_httpserver.sh
@@ -0,0 +1,23 @@
+#! /bin/bash
+
+WD=$(dirname $0)
+
+###
+
+cd $WD
+
+# get latest source
+git clone git://github.com/robbiehanson/CocoaHTTPServer.git
+
+# make folder
+mkdir -p ../src/ios/CocoaHTTPServer
+
+# copy rj sources
+cp -Rv CocoaHTTPServer/Core ../src/ios/CocoaHTTPServer
+cp -Rv CocoaHTTPServer/Extensions ../src/ios/CocoaHTTPServer
+cp -Rv CocoaHTTPServer/Vendor ../src/ios/CocoaHTTPServer
+cp -Rv CocoaHTTPServer/LICENSE.txt ../src/ios/CocoaHTTPServer
+
+# cleanup
+rm -rfv CocoaHTTPServer
+
View
5 src/Global.cpp
@@ -20,6 +20,9 @@ Global& Global::instance() {
void Global::setup(const int numOutChannels, const int numInChannels,
const int sampleRate, const int ticksPerBuffer) {
+ // get data path
+ dataPath = ofToDataPath("", true);
+
loadSettings("ka");
audioEngine.setup(numOutChannels, numInChannels,
@@ -106,6 +109,6 @@ void Global::resetGraphics() {
// PRIVATE
//--------------------------------------------------------------
-Global::Global() : scenePath("scenes") {
+Global::Global() : dataPath("data"), scenePath("scenes") {
logLevel = ofGetLogLevel();
}
View
3  src/Global.h
@@ -45,7 +45,8 @@ class Global {
/// \section Variables
- string scenePath; ///< absolute path to scene root
+ string dataPath; ///< absolute path to data folder
+ string scenePath; ///< absolute path to scene folder
ofLogLevel logLevel; ///< log level for console
/// \section Functions
View
2  src/Scene.h
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2011 Dan Wilcox <danomatika@gmail.com>
+ * Copyright (c) 2012 Dan Wilcox <danomatika@gmail.com>
*
* BSD Simplified License.
* For information on usage and redistribution, and for a DISCLAIMER OF ALL
View
749 src/desktop/ofAppGLFWWindow.cpp
@@ -0,0 +1,749 @@
+#include "ofAppGLFWWindow.h"
+#include "ofEvents.h"
+
+#include "ofBaseApp.h"
+#include "ofMain.h"
+
+//========================================================================
+// static variables:
+
+static int buttonInUse;
+static bool buttonPressed;
+static ofBaseApp * ofAppPtr;
+
+static int nFramesForFPS ;
+static float timeNow;
+static float timeThen;
+
+static int windowW;
+static int windowH;
+
+//-------------------------------------------------------
+ofAppGLFWWindow::ofAppGLFWWindow():ofAppBaseWindow(){
+ ofLog(OF_LOG_VERBOSE,"creating glfw window");
+ bEnableSetupScreen = true;
+ nFrameCount = 0;
+ buttonInUse = 0;
+
+ nonFullScreenX = 0;
+ nonFullScreenY = 0;
+ nonFullScreenW = 0;
+ nonFullScreenH = 0;
+
+ millisForFrame = 0;
+ prevMillis = 0;
+ diffMillis = 0;
+ bFrameRateSet = false;
+ frameRate = 0;
+ bNewScreenMode = false;
+ samples = 0;
+ nFramesForFPS = 0;
+ timeNow = 0;
+ timeThen = 0;
+ frameRate = 0;
+
+// OF_KEY_MODIFIER = 0x0000;
+// OF_KEY_RETURN = 294;
+
+
+}
+
+void ofAppGLFWWindow::setFSAASamples(int _samples){
+ samples=_samples;
+}
+
+void ofAppGLFWWindow::setupOpenGL(int w, int h, int screenMode){
+
+ requestedWidth = w;
+ requestedHeight = h;
+
+
+ if(!glfwInit( )){
+ ofLog(OF_LOG_ERROR,"cannot init GLFW");
+ return;
+ }
+
+ printf("WINDOW MODE IS %i", screenMode);
+
+ windowMode = screenMode;
+
+ glfwOpenWindowHint( GLFW_FSAA_SAMPLES, samples );
+ // targets default
+ // GLFW_REFRESH_RATE 0
+ // GLFW_ACCUM_RED_BITS; 0
+ // GLFW_ACCUM_GREEN_BITS; 0
+ // GLFW_ACCUM_BLUE_BITS; 0
+ // GLFW_ACCUM_ALPHA_BITS; 0
+ // GLFW_AUX_BUFFERS; 0
+ // GLFW_STEREO; 0
+ // GLFW_WINDOW_NO_RESIZE; 0
+ // GLFW_FSAA_SAMPLES; 0
+
+ int result;
+ if (windowMode == OF_WINDOW){
+ result = glfwOpenWindow(
+ w, h, // Width and height of window
+ 8, 8, 8, // Number of red, green, and blue bits for color buffer
+ 8, // Number of bits for alpha buffer
+ 32, // Number of bits for depth buffer (Z-buffer)
+ 0, // Number of bits for stencil buffer
+ GLFW_WINDOW // We want a desktop window (could be GLFW_FULLSCREEN)
+ );
+ }else if(windowMode == OF_FULLSCREEN){
+ result = glfwOpenWindow(
+ getScreenSize().x, getScreenSize().y, // Width and height of window
+ 8, 8, 8, // Number of red, green, and blue bits for color buffer
+ 8, // Number of bits for alpha buffer
+ 32, // Number of bits for depth buffer (Z-buffer)
+ 0, // Number of bits for stencil buffer
+ GLFW_FULLSCREEN // We want a desktop window (could be GLFW_FULLSCREEN)
+ );
+ showCursor();
+ }else if(windowMode == OF_GAME_MODE){
+ result = glfwOpenWindow(
+ w, h, // Width and height of window
+ 8, 8, 8, // Number of red, green, and blue bits for color buffer
+ 8, // Number of bits for alpha buffer
+ 32, // Number of bits for depth buffer (Z-buffer)
+ 0, // Number of bits for stencil buffer
+ GLFW_FULLSCREEN // We want a desktop window (could be GLFW_FULLSCREEN)
+ );
+ showCursor();
+ }
+ else
+ {
+ printf("**** invalid windowMode\n");
+ }
+
+ if ( result != GL_TRUE )
+ {
+ printf("**** failed to open glfw window\n");
+ }
+ else
+ printf("*--- opened glfw window\n");
+
+ setVerticalSync(false);
+ // Set window title
+ glfwSetWindowTitle( " " );
+
+ glfwEnable( GLFW_KEY_REPEAT );
+
+ // ofBackground(200,200,200); // default bg color
+ // ofSetColor(0xFFFFFF); // default draw color
+ // used to be black, but
+ // black + texture = black
+ // so maybe grey bg
+ // and "white" fg color
+ // as default works the best...
+
+ requestedHeight = requestedHeight < 1 ? 1 : requestedHeight;
+ glfwGetWindowSize( &requestedWidth, &requestedHeight );
+
+
+
+ nonFullScreenW = ofGetWidth();
+ nonFullScreenH = ofGetHeight();
+
+
+
+ glfwGetWindowSize( &windowW, &windowH );
+
+ setWindowPosition(50, 50);
+
+}
+
+//--------------------------------------------
+void ofAppGLFWWindow::initializeWindow(){
+ //----------------------
+ // setup the callbacks
+
+ glfwSetMouseButtonCallback(mouse_cb);
+ glfwSetMousePosCallback(motion_cb);
+ glfwSetKeyCallback(keyboard_cb);
+ glfwSetWindowSizeCallback(resize_cb);
+ glfwSetWindowCloseCallback(exit_cb);
+
+}
+
+//--------------------------------------------
+int ofAppGLFWWindow::exit_cb(){
+ OF_EXIT_APP(0);
+ return 0;
+}
+
+//--------------------------------------------
+void ofAppGLFWWindow::runAppViaInfiniteLoop(ofBaseApp * appPtr){
+ static ofEventArgs voidEventArgs;
+
+ ofAppPtr = appPtr;
+
+ if(ofAppPtr){
+ ofAppPtr->setup();
+ ofAppPtr->update();
+ }
+
+ #ifdef OF_USING_POCO
+ ofNotifyEvent( ofEvents().setup, voidEventArgs );
+ ofNotifyEvent( ofEvents().update, voidEventArgs );
+ #endif
+
+
+ while(true){
+ if (nFrameCount != 0 && bFrameRateSet == true){
+ diffMillis = ofGetElapsedTimeMillis() - prevMillis;
+ if (diffMillis > millisForFrame){
+ ; // we do nothing, we are already slower than target frame
+ } else {
+ int waitMillis = millisForFrame - diffMillis;
+ #ifdef TARGET_WIN32
+ Sleep(waitMillis); //windows sleep in milliseconds
+ #else
+ usleep(waitMillis * 1000); //mac sleep in microseconds - cooler :)
+ #endif
+ }
+ }
+
+
+ int newMillis = ofGetElapsedTimeMillis(); // you have to measure here
+ lastFrameTime = newMillis-prevMillis;
+ prevMillis = newMillis;
+
+ idle();
+
+ if ( bNewScreenMode ){
+ changeMode();
+ bNewScreenMode = false;
+ }
+
+ display();
+
+ // thanks to jorge for the fix:
+ // http://www.openframeworks.cc/forum/viewtopic.php?t=515&highlight=frame+rate
+ timeNow = ofGetElapsedTimef();
+ double diff = timeNow-timeThen;
+ if( diff > 0.00001 ){
+ fps = 1.0 / diff;
+ frameRate *= 0.9f;
+ frameRate += 0.1f*fps;
+ }
+ lastFrameTime = diff;
+ timeThen = timeNow;
+
+ nFrameCount++;
+
+ }
+}
+
+void ofAppGLFWWindow::changeMode(){
+ //glfwToggleFullscreen();
+
+ if( windowMode == OF_FULLSCREEN){
+
+ nonFullScreenW = ofGetWidth();
+ nonFullScreenH = ofGetHeight();
+
+ //----------------------------------------------------
+ ofAppGLFWWindow::setWindowShape(getScreenSize().x, getScreenSize().y);
+ ofAppGLFWWindow::setWindowPosition(0,0);
+
+ #ifdef TARGET_OSX
+ SetSystemUIMode(kUIModeAllHidden,NULL);
+ #endif
+
+ }else if( windowMode == OF_WINDOW ){
+
+ ofAppGLFWWindow::setWindowShape(nonFullScreenW, nonFullScreenH);
+
+ //----------------------------------------------------
+ // if we have recorded the screen posion, put it there
+ // if not, better to let the system do it (and put it where it wants)
+ if (nFrameCount > 0){
+ ofAppGLFWWindow::setWindowPosition(nonFullScreenX,nonFullScreenY);
+ }
+ //----------------------------------------------------
+
+ #ifdef TARGET_OSX
+ SetSystemUIMode(kUIModeNormal,NULL);
+ #endif
+ }
+}
+
+void ofAppGLFWWindow::setWindowTitle(string title){
+ glfwSetWindowTitle(title.c_str());
+}
+
+ofPoint ofAppGLFWWindow::getWindowSize(){
+ return ofPoint(windowW, windowH,0);
+}
+
+ofPoint ofAppGLFWWindow::getWindowPosition(){
+ /*int x = glutGet(GLUT_WINDOW_X);
+ int y = glutGet(GLUT_WINDOW_Y);*/
+
+ return ofPoint(nonFullScreenX,nonFullScreenY,0);
+}
+
+ofPoint ofAppGLFWWindow::getScreenSize(){
+ GLFWvidmode desktopMode;
+ glfwGetDesktopMode(&desktopMode);
+ return ofPoint(desktopMode.Width, desktopMode.Height,0);
+}
+
+int ofAppGLFWWindow::getWidth(){
+ if(windowMode == OF_FULLSCREEN)
+ {
+ return getScreenSize().x;
+ }
+ else {
+ return windowW;
+ }
+
+}
+
+int ofAppGLFWWindow::getHeight()
+{
+ if(windowMode == OF_FULLSCREEN)
+ {
+ return getScreenSize().y;
+ }
+ else {
+ return windowH;
+ }
+}
+
+int ofAppGLFWWindow::getWindowMode(){
+ return windowMode;
+}
+
+void ofAppGLFWWindow::setWindowPosition(int x, int y){
+ glfwSetWindowPos(x,y);
+ nonFullScreenX=x;
+ nonFullScreenY=y;
+}
+
+void ofAppGLFWWindow::setWindowShape(int w, int h){
+ glfwSetWindowSize(w,h);
+ // this is useful, esp if we are in the first frame (setup):
+ requestedWidth = w;
+ requestedHeight = h;
+}
+
+void ofAppGLFWWindow::hideCursor(){
+// #ifdef TARGET_OSX
+// CGDisplayHideCursor(kCGDirectMainDisplay);
+// #else
+ glfwDisable( GLFW_MOUSE_CURSOR );
+// #endif
+};
+
+void ofAppGLFWWindow::showCursor(){
+// #ifdef TARGET_OSX
+// //THIS HANGS ON OSX
+// //CGDisplayShowCursor(kCGDirectMainDisplay);
+// #else
+ glfwEnable( GLFW_MOUSE_CURSOR );
+// #endif
+};
+
+void ofAppGLFWWindow::setFrameRate(float targetRate){
+ // given this FPS, what is the amount of millis per frame
+ // that should elapse?
+
+ // --- > f / s
+
+ bFrameRateSet = true;
+ float durationOfFrame = 1.0f / (float)targetRate;
+ millisForFrame = (int)(1000.0f * durationOfFrame);
+
+ frameRate = targetRate;
+
+};
+
+void ofAppGLFWWindow::enableSetupScreen(){
+ bEnableSetupScreen = true;
+};
+
+void ofAppGLFWWindow::disableSetupScreen(){
+ bEnableSetupScreen = false;
+};
+
+//------------------------------------------------------------
+int ofAppGLFWWindow::getFrameNum(){
+ return nFrameCount;
+}
+
+//------------------------------------------------------------
+float ofAppGLFWWindow::getFrameRate(){
+ return fps;
+}
+
+//------------------------------------------------------------
+double ofAppGLFWWindow::getLastFrameTime() {
+ return lastFrameTime;
+}
+
+//------------------------------------------------------------
+void ofAppGLFWWindow::setFullscreen(bool fullscreen){
+ if (windowMode == OF_GAME_MODE) return;
+
+ if(fullscreen && windowMode==OF_WINDOW){
+ windowMode = OF_FULLSCREEN;
+ bNewScreenMode = true;
+ }
+ else if(!fullscreen && windowMode==OF_FULLSCREEN){
+ windowMode = OF_WINDOW;
+ bNewScreenMode = true;
+ }
+}
+
+//------------------------------------------------------------
+void ofAppGLFWWindow::toggleFullscreen(){
+ if (windowMode == OF_GAME_MODE) return;
+
+ bNewScreenMode = true;
+ if (windowMode == OF_WINDOW){
+ windowMode = OF_FULLSCREEN;
+ } else {
+ windowMode = OF_WINDOW;
+ }
+}
+
+
+//------------------------------------------------------------
+void ofAppGLFWWindow::idle(void) {
+ static ofEventArgs voidEventArgs;
+
+ // thanks to jorge for the fix:
+ // http://www.openframeworks.cc/forum/viewtopic.php?t=515&highlight=frame+rate
+
+ if(ofAppPtr)
+ ofAppPtr->update();
+
+ #ifdef OF_USING_POCO
+ ofNotifyEvent( ofEvents().update, voidEventArgs );
+ #endif
+
+}
+
+//--------------------------------------------
+// callbacks
+
+void ofAppGLFWWindow::display(void){
+
+
+
+
+ static ofEventArgs voidEventArgs;
+
+ int width, height;
+
+ width = getWindowSize().x;
+ height = getWindowSize().y;
+
+ height = height > 0 ? height : 1;
+ // set viewport, clear the screen
+ glViewport( 0, 0, width, height );
+ float * bgPtr = ofBgColorPtr();
+ bool bClearAuto = ofbClearBg();
+
+ // I don't know why, I need more than one frame at the start in fullscreen mode
+ // also, in non-fullscreen mode, windows/intel graphics, this bClearAuto just fails.
+ // I seem to have 2 buffers, alot of flickering
+ // and don't accumulate the way I expect.
+ // with this line: if ((bClearAuto == true) || nFrameCount < 3){
+ // we do nFrameCount < 3, so that the buffers are cleared at the start of the app
+ // or else we have video memory garbage to draw on to...
+
+ //glDrawBuffer( GL_BACK );
+
+ printf("nFrameCount %i \n", nFrameCount);
+
+ glDrawBuffer( GL_FRONT_AND_BACK );
+ // glDrawBuffer( GL_FRONT );
+
+ #ifdef TARGET_WIN32
+ //windows doesn't get accumulation in window mode
+ if ((bClearAuto == true || windowMode == OF_WINDOW) || nFrameCount < 3){
+ #else
+ //mac and linux does :)
+ if ( bClearAuto == true || nFrameCount < 3){
+ #endif
+ glClearColor(bgPtr[0],bgPtr[1],bgPtr[2], bgPtr[3]);
+
+ // printf("clearing the screen \n");
+
+ glClear( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+ }
+
+ if( bEnableSetupScreen )ofSetupScreen();
+
+ if(ofAppPtr)
+ ofAppPtr->draw();
+
+ #ifdef OF_USING_POCO
+ ofNotifyEvent( ofEvents().draw, voidEventArgs );
+ #endif
+
+ // Swap front and back buffers (we use a double buffered display)
+ glfwSwapBuffers();
+
+}
+
+
+//------------------------------------------------------------
+void ofAppGLFWWindow::exitApp(){
+// -- This is already happening in ofAppRunner
+
+// static ofEventArgs voidEventArgs;
+// if(ofAppPtr)ofAppPtr->exit();
+//
+// #ifdef OF_USING_POCO
+// ofNotifyEvent( ofEvents().exit, voidEventArgs );
+// #endif
+
+ ofLog(OF_LOG_VERBOSE,"GLFW app is being terminated!");
+
+ // Terminate GLFW
+ glfwTerminate();
+
+ OF_EXIT_APP(0);
+}
+
+
+//------------------------------------------------------------
+void ofAppGLFWWindow::mouse_cb(int button, int state) {
+ ofLog(OF_LOG_VERBOSE,"button: %i",button);
+ static ofMouseEventArgs mouseEventArgs;
+
+ if (state == GLFW_PRESS) {
+ if(ofAppPtr)
+ ofAppPtr->mousePressed(ofAppPtr->mouseX,ofAppPtr->mouseY,button);
+
+ #ifdef OF_USING_POCO
+ mouseEventArgs.x = ofAppPtr->mouseX;
+ mouseEventArgs.y = ofAppPtr->mouseY;
+ mouseEventArgs.button = button;
+ ofNotifyEvent( ofEvents().mousePressed, mouseEventArgs );
+ #endif
+
+ buttonPressed=true;
+ } else if (state == GLFW_RELEASE) {
+ if(ofAppPtr){
+ ofAppPtr->mouseReleased(ofAppPtr->mouseX,ofAppPtr->mouseY,button);
+ ofAppPtr->mouseReleased();
+ }
+
+ #ifdef OF_USING_POCO
+ mouseEventArgs.x = ofAppPtr->mouseX;
+ mouseEventArgs.y = ofAppPtr->mouseY;
+ mouseEventArgs.button = button;
+ ofNotifyEvent( ofEvents().mouseReleased, mouseEventArgs );
+ #endif
+
+ buttonPressed=false;
+ }
+ buttonInUse = button;
+
+
+}
+
+//------------------------------------------------------------
+void ofAppGLFWWindow::motion_cb(int x, int y) {
+ static ofMouseEventArgs mouseEventArgs;
+
+ if(!buttonPressed){
+ if(ofAppPtr){
+ ofAppPtr->mouseX = x;
+ ofAppPtr->mouseY = y;
+ ofAppPtr->mouseMoved(x,y);
+ }
+
+ #ifdef OF_USING_POCO
+ mouseEventArgs.x = x;
+ mouseEventArgs.y = y;
+ mouseEventArgs.button = -1;
+ ofNotifyEvent( ofEvents().mouseMoved, mouseEventArgs );
+ #endif
+
+ }else{
+ if(ofAppPtr){
+ ofAppPtr->mouseX = x;
+ ofAppPtr->mouseY = y;
+ ofAppPtr->mouseDragged(x,y,buttonInUse);
+ }
+
+ #ifdef OF_USING_POCO
+ mouseEventArgs.x = x;
+ mouseEventArgs.y = y;
+ mouseEventArgs.button = buttonInUse;
+ ofNotifyEvent( ofEvents().mouseDragged, mouseEventArgs );
+ #endif
+
+ }
+}
+
+
+//------------------------------------------------------------
+void ofAppGLFWWindow::keyboard_cb(int key, int state) {
+ static ofKeyEventArgs keyEventArgs;
+
+ ofLog(OF_LOG_VERBOSE,"key: %i, state: %i",key,state);
+
+ switch (key) {
+ case GLFW_KEY_ESC:
+ key = OF_KEY_ESC;
+ break;
+ case GLFW_KEY_F1:
+ key = OF_KEY_F1;
+ break;
+ case GLFW_KEY_F2:
+ key = OF_KEY_F2;
+ break;
+ case GLFW_KEY_F3:
+ key = OF_KEY_F3;
+ break;
+ case GLFW_KEY_F4:
+ key = OF_KEY_F4;
+ break;
+ case GLFW_KEY_F5:
+ key = OF_KEY_F5;
+ break;
+ case GLFW_KEY_F6:
+ key = OF_KEY_F6;
+ break;
+ case GLFW_KEY_F7:
+ key = OF_KEY_F7;
+ break;
+ case GLFW_KEY_F8:
+ key = OF_KEY_F8;
+ break;
+ case GLFW_KEY_F9:
+ key = OF_KEY_F9;
+ break;
+ case GLFW_KEY_F10:
+ key = OF_KEY_F10;
+ break;
+ case GLFW_KEY_F11:
+ key = OF_KEY_F11;
+ break;
+ case GLFW_KEY_F12:
+ key = OF_KEY_F12;
+ break;
+ case GLFW_KEY_LEFT:
+ key = OF_KEY_LEFT;
+ break;
+ case GLFW_KEY_RIGHT:
+ key = OF_KEY_RIGHT;
+ break;
+ case GLFW_KEY_UP:
+ key = OF_KEY_UP;
+ break;
+ case GLFW_KEY_DOWN:
+ key = OF_KEY_DOWN;
+ break;
+ case GLFW_KEY_PAGEUP:
+ key = OF_KEY_PAGE_UP;
+ break;
+ case GLFW_KEY_PAGEDOWN:
+ key = OF_KEY_PAGE_DOWN;
+ break;
+ case GLFW_KEY_HOME:
+ key = OF_KEY_HOME;
+ break;
+ case GLFW_KEY_END:
+ key = OF_KEY_END;
+ break;
+ case GLFW_KEY_INSERT:
+ key = OF_KEY_INSERT;
+ break;
+ case GLFW_KEY_ENTER:
+ key = OF_KEY_RETURN;
+ break;
+ default:
+ break;
+ }
+
+ //GLFW defaults to uppercase - OF users are used to lowercase
+ //if we are uppercase make lowercase
+ // a better approach would be to check if shift keys are held down - and apply based on that
+ if( key >= 65 && key <= 90 ){
+ key += 32;
+ }
+
+ if(state == GLFW_PRESS){
+ if(ofAppPtr)ofAppPtr->keyPressed(key);
+
+ #ifdef OF_USING_POCO
+ keyEventArgs.key = key;
+ ofNotifyEvent( ofEvents().keyPressed, keyEventArgs );
+ #endif
+
+ if (key == OF_KEY_ESC){ // "escape"
+ exitApp();
+ }
+ }else{
+ if(ofAppPtr)ofAppPtr->keyReleased(key);
+
+ #ifdef OF_USING_POCO
+ keyEventArgs.key = key;
+ ofNotifyEvent( ofEvents().keyReleased, keyEventArgs );
+ #endif
+ }
+}
+
+//------------------------------------------------------------
+void ofAppGLFWWindow::resize_cb(int w, int h) {
+ if(ofAppPtr)ofAppPtr->windowResized(w,h);
+ windowW = w;
+ windowH = h;
+ #ifdef OF_USING_POCO
+ static ofResizeEventArgs resizeEventArgs;
+
+ resizeEventArgs.width = w;
+ resizeEventArgs.height = h;
+ ofNotifyEvent( ofEvents().windowResized, resizeEventArgs );
+ #endif
+}
+
+//------------------------------------------------------------
+void ofAppGLFWWindow::setVerticalSync(bool bVerticalSync){
+ if(bVerticalSync){
+ //glfwSetWindowRefreshCallback(idle_cb);
+ glfwSwapInterval(1);
+ }else{
+ glfwSwapInterval(0);
+ }
+}
+
+//------------------------------------------------------------
+void ofAppGLFWWindow::listVideoModes(){
+ GLFWvidmode vidModes[100];
+ int numModes = glfwGetVideoModes( vidModes, 100 );
+ for(int i=0; i<numModes; i++){
+ printf("%i x %i %ibits",vidModes[i].Width,vidModes[i].Height,vidModes[i].RedBits+vidModes[i].GreenBits+vidModes[i].BlueBits);
+ }
+}
+
+//------------------------------------------------------------
+bool ofAppGLFWWindow::isWindowIconified(){
+ return glfwGetWindowParam(GLFW_ICONIFIED);
+}
+
+//------------------------------------------------------------
+bool ofAppGLFWWindow::isWindowActive(){
+ return glfwGetWindowParam(GLFW_ACTIVE);
+
+}
+
+//------------------------------------------------------------
+bool ofAppGLFWWindow::isWindowResizeable(){
+ return !glfwGetWindowParam(GLFW_WINDOW_NO_RESIZE);
+
+}
+void ofAppGLFWWindow::iconify(bool bIconify){
+ if(bIconify)
+ glfwIconifyWindow();
+ else
+ glfwRestoreWindow();
+}
+//#endif
View
112 src/desktop/ofAppGLFWWindow.h
@@ -0,0 +1,112 @@
+#pragma once
+
+#include "ofConstants.h"
+
+#ifdef TARGET_LINUX
+#include <GL/glfw.h> // For GLFW, OpenGL and GLU
+#elif defined(TARGET_OSX)
+#include <GL/glfw.h>
+#elif defined(TARGET_WIN32)
+#include "GL/glfw.h"
+#endif
+
+#include "ofAppBaseWindow.h"
+#include "ofEvents.h"
+
+class ofBaseApp;
+
+class ofAppGLFWWindow : public ofAppBaseWindow {
+
+public:
+
+ ofAppGLFWWindow();
+ ~ofAppGLFWWindow(){}
+
+ void setupOpenGL(int w, int h, int screenMode);
+ void initializeWindow();
+ void runAppViaInfiniteLoop(ofBaseApp * appPtr);
+
+ static void exitApp();
+
+ void hideCursor();
+ void showCursor();
+
+ int getHeight();
+ int getWidth();
+
+ ofPoint getWindowPosition();
+ ofPoint getWindowSize();
+ ofPoint getScreenSize();
+
+ void setWindowTitle(string title);
+ void setWindowPosition(int x, int y);
+ void setWindowShape(int w, int h);
+
+
+ int getWindowMode();
+ float getFrameRate();
+ void setFrameRate(float targetRate);
+ double getLastFrameTime();
+
+
+ int getFrameNum();
+
+ void setFullscreen(bool fullscreen);
+ void toggleFullscreen();
+
+ void enableSetupScreen();
+ void disableSetupScreen();
+
+ void setVerticalSync(bool bSync);
+
+
+ //GLFW specifics
+ void setFSAASamples(int samples);
+ void listVideoModes();
+ bool isWindowIconified();
+ bool isWindowActive();
+ bool isWindowResizeable();
+ void iconify(bool bIconify);
+
+private:
+ // callbacks
+ void display(void);
+ void idle(void);
+
+ static void mouse_cb(int button, int state);
+ static void motion_cb(int x, int y);
+ static void keyboard_cb(int key, int state);
+ static void resize_cb(int w, int h);
+ static int exit_cb();
+
+
+ //utils
+ void changeMode();
+
+ int samples;
+
+ int nFrameCount;
+
+ int millisForFrame;
+ int prevMillis;
+ int diffMillis;
+ bool bFrameRateSet;
+ double lastFrameTime;
+ double fps;
+
+ int windowMode;
+ bool bNewScreenMode;
+
+ bool bEnableSetupScreen;
+
+ float frameRate;
+
+ int requestedWidth;
+ int requestedHeight;
+
+ int nonFullScreenW;
+ int nonFullScreenH;
+ int nonFullScreenX;
+ int nonFullScreenY;
+
+};
View
5 src/ios/App.h
@@ -41,6 +41,11 @@ class App : public ofxiPhoneApp {
// audio callbacks
void audioReceived(float* input, int bufferSize, int nChannels);
void audioRequested(float* output, int bufferSize, int nChannels);
+
+ // webdav server
+ void startWebServer();
+ void stopWebServer();
+ bool isWebServerRunning();
AppCore core;
};
View
13 src/ios/App.mm
@@ -10,6 +10,9 @@
*/
#include "App.h"
+#include "../Global.h"
+#include "WebServer.h"
+
//--------------------------------------------------------------
App::App() {}
@@ -17,10 +20,9 @@
void App::setup() {
// setup iOs
-// ofRegisterTouchEvents(this);
+ ofRegisterTouchEvents(this);
// ofxAccelerometer.setup();
// ofxiPhoneAlerts.addListener(this);
- //ofSetDataPathRoot("./data/");
// if you want a landscape orientation
ofxiPhoneSetOrientation(OFXIPHONE_ORIENTATION_LANDSCAPE_LEFT);
@@ -36,6 +38,10 @@
// setup the app core
core.setup(2, 2, 44100, ticksPerBuffer);
+
+
+
+ WebServer::start(Global::instance().dataPath);
}
//--------------------------------------------------------------
@@ -54,6 +60,9 @@
//--------------------------------------------------------------
void App::exit() {
core.exit();
+
+
+ WebServer::stop();
}
//--------------------------------------------------------------
View
14 src/ios/CocoaHTTPServer/Core/Categories/DDData.h
@@ -0,0 +1,14 @@
+#import <Foundation/Foundation.h>
+
+@interface NSData (DDData)
+
+- (NSData *)md5Digest;
+
+- (NSData *)sha1Digest;
+
+- (NSString *)hexStringValue;
+
+- (NSString *)base64Encoded;
+- (NSData *)base64Decoded;
+
+@end
View
158 src/ios/CocoaHTTPServer/Core/Categories/DDData.m
@@ -0,0 +1,158 @@
+#import "DDData.h"
+#import <CommonCrypto/CommonDigest.h>
+
+
+@implementation NSData (DDData)
+
+static char encodingTable[64] = {
+'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P',
+'Q','R','S','T','U','V','W','X','Y','Z','a','b','c','d','e','f',
+'g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v',
+'w','x','y','z','0','1','2','3','4','5','6','7','8','9','+','/' };
+
+- (NSData *)md5Digest
+{
+ unsigned char result[CC_MD5_DIGEST_LENGTH];
+
+ CC_MD5([self bytes], (CC_LONG)[self length], result);
+ return [NSData dataWithBytes:result length:CC_MD5_DIGEST_LENGTH];
+}
+
+- (NSData *)sha1Digest
+{
+ unsigned char result[CC_SHA1_DIGEST_LENGTH];
+
+ CC_SHA1([self bytes], (CC_LONG)[self length], result);
+ return [NSData dataWithBytes:result length:CC_SHA1_DIGEST_LENGTH];
+}
+
+- (NSString *)hexStringValue
+{
+ NSMutableString *stringBuffer = [NSMutableString stringWithCapacity:([self length] * 2)];
+
+ const unsigned char *dataBuffer = [self bytes];
+ int i;
+
+ for (i = 0; i < [self length]; ++i)
+ {
+ [stringBuffer appendFormat:@"%02x", (unsigned int)dataBuffer[i]];
+ }
+
+ return [stringBuffer copy];
+}
+
+- (NSString *)base64Encoded
+{
+ const unsigned char *bytes = [self bytes];
+ NSMutableString *result = [NSMutableString stringWithCapacity:[self length]];
+ unsigned long ixtext = 0;
+ unsigned long lentext = [self length];
+ long ctremaining = 0;
+ unsigned char inbuf[3], outbuf[4];
+ unsigned short i = 0;
+ unsigned short charsonline = 0, ctcopy = 0;
+ unsigned long ix = 0;
+
+ while( YES )
+ {
+ ctremaining = lentext - ixtext;
+ if( ctremaining <= 0 ) break;
+
+ for( i = 0; i < 3; i++ ) {
+ ix = ixtext + i;
+ if( ix < lentext ) inbuf[i] = bytes[ix];
+ else inbuf [i] = 0;
+ }
+
+ outbuf [0] = (inbuf [0] & 0xFC) >> 2;
+ outbuf [1] = ((inbuf [0] & 0x03) << 4) | ((inbuf [1] & 0xF0) >> 4);
+ outbuf [2] = ((inbuf [1] & 0x0F) << 2) | ((inbuf [2] & 0xC0) >> 6);
+ outbuf [3] = inbuf [2] & 0x3F;
+ ctcopy = 4;
+
+ switch( ctremaining )
+ {
+ case 1:
+ ctcopy = 2;
+ break;
+ case 2:
+ ctcopy = 3;
+ break;
+ }
+
+ for( i = 0; i < ctcopy; i++ )
+ [result appendFormat:@"%c", encodingTable[outbuf[i]]];
+
+ for( i = ctcopy; i < 4; i++ )
+ [result appendString:@"="];
+
+ ixtext += 3;
+ charsonline += 4;
+ }
+
+ return [NSString stringWithString:result];
+}
+
+- (NSData *)base64Decoded
+{
+ const unsigned char *bytes = [self bytes];
+ NSMutableData *result = [NSMutableData dataWithCapacity:[self length]];
+
+ unsigned long ixtext = 0;
+ unsigned long lentext = [self length];
+ unsigned char ch = 0;
+ unsigned char inbuf[4] = {0, 0, 0, 0};
+ unsigned char outbuf[3] = {0, 0, 0};
+ short i = 0, ixinbuf = 0;
+ BOOL flignore = NO;
+ BOOL flendtext = NO;
+
+ while( YES )
+ {
+ if( ixtext >= lentext ) break;
+ ch = bytes[ixtext++];
+ flignore = NO;
+
+ if( ( ch >= 'A' ) && ( ch <= 'Z' ) ) ch = ch - 'A';
+ else if( ( ch >= 'a' ) && ( ch <= 'z' ) ) ch = ch - 'a' + 26;
+ else if( ( ch >= '0' ) && ( ch <= '9' ) ) ch = ch - '0' + 52;
+ else if( ch == '+' ) ch = 62;
+ else if( ch == '=' ) flendtext = YES;
+ else if( ch == '/' ) ch = 63;
+ else flignore = YES;
+
+ if( ! flignore )
+ {
+ short ctcharsinbuf = 3;
+ BOOL flbreak = NO;
+
+ if( flendtext )
+ {
+ if( ! ixinbuf ) break;
+ if( ( ixinbuf == 1 ) || ( ixinbuf == 2 ) ) ctcharsinbuf = 1;
+ else ctcharsinbuf = 2;
+ ixinbuf = 3;
+ flbreak = YES;
+ }
+
+ inbuf [ixinbuf++] = ch;
+
+ if( ixinbuf == 4 )
+ {
+ ixinbuf = 0;
+ outbuf [0] = ( inbuf[0] << 2 ) | ( ( inbuf[1] & 0x30) >> 4 );
+ outbuf [1] = ( ( inbuf[1] & 0x0F ) << 4 ) | ( ( inbuf[2] & 0x3C ) >> 2 );
+ outbuf [2] = ( ( inbuf[2] & 0x03 ) << 6 ) | ( inbuf[3] & 0x3F );
+
+ for( i = 0; i < ctcharsinbuf; i++ )
+ [result appendBytes:&outbuf[i] length:1];
+ }
+
+ if( flbreak ) break;
+ }
+ }
+
+ return [NSData dataWithData:result];
+}
+
+@end
View
12 src/ios/CocoaHTTPServer/Core/Categories/DDNumber.h
@@ -0,0 +1,12 @@
+#import <Foundation/Foundation.h>
+
+
+@interface NSNumber (DDNumber)
+
++ (BOOL)parseString:(NSString *)str intoSInt64:(SInt64 *)pNum;
++ (BOOL)parseString:(NSString *)str intoUInt64:(UInt64 *)pNum;
+
++ (BOOL)parseString:(NSString *)str intoNSInteger:(NSInteger *)pNum;
++ (BOOL)parseString:(NSString *)str intoNSUInteger:(NSUInteger *)pNum;
+
+@end
View
88 src/ios/CocoaHTTPServer/Core/Categories/DDNumber.m
@@ -0,0 +1,88 @@
+#import "DDNumber.h"
+
+
+@implementation NSNumber (DDNumber)
+
++ (BOOL)parseString:(NSString *)str intoSInt64:(SInt64 *)pNum
+{
+ if(str == nil)
+ {
+ *pNum = 0;
+ return NO;
+ }
+
+ errno = 0;
+
+ // On both 32-bit and 64-bit machines, long long = 64 bit
+
+ *pNum = strtoll([str UTF8String], NULL, 10);
+
+ if(errno != 0)
+ return NO;
+ else
+ return YES;
+}
+
++ (BOOL)parseString:(NSString *)str intoUInt64:(UInt64 *)pNum
+{
+ if(str == nil)
+ {
+ *pNum = 0;
+ return NO;
+ }
+
+ errno = 0;
+
+ // On both 32-bit and 64-bit machines, unsigned long long = 64 bit
+
+ *pNum = strtoull([str UTF8String], NULL, 10);
+
+ if(errno != 0)
+ return NO;
+ else
+ return YES;
+}
+
++ (BOOL)parseString:(NSString *)str intoNSInteger:(NSInteger *)pNum
+{
+ if(str == nil)
+ {
+ *pNum = 0;
+ return NO;
+ }
+
+ errno = 0;
+
+ // On LP64, NSInteger = long = 64 bit
+ // Otherwise, NSInteger = int = long = 32 bit
+
+ *pNum = strtol([str UTF8String], NULL, 10);
+
+ if(errno != 0)
+ return NO;
+ else
+ return YES;
+}
+
++ (BOOL)parseString:(NSString *)str intoNSUInteger:(NSUInteger *)pNum
+{
+ if(str == nil)
+ {
+ *pNum = 0;
+ return NO;
+ }
+
+ errno = 0;
+
+ // On LP64, NSUInteger = unsigned long = 64 bit
+ // Otherwise, NSUInteger = unsigned int = unsigned long = 32 bit
+
+ *pNum = strtoul([str UTF8String], NULL, 10);
+
+ if(errno != 0)
+ return NO;
+ else
+ return YES;
+}
+
+@end
View
56 src/ios/CocoaHTTPServer/Core/Categories/DDRange.h
@@ -0,0 +1,56 @@
+/**
+ * DDRange is the functional equivalent of a 64 bit NSRange.
+ * The HTTP Server is designed to support very large files.
+ * On 32 bit architectures (ppc, i386) NSRange uses unsigned 32 bit integers.
+ * This only supports a range of up to 4 gigabytes.
+ * By defining our own variant, we can support a range up to 16 exabytes.
+ *
+ * All effort is given such that DDRange functions EXACTLY the same as NSRange.
+**/
+
+#import <Foundation/NSValue.h>
+#import <Foundation/NSObjCRuntime.h>
+
+@class NSString;
+
+typedef struct _DDRange {
+ UInt64 location;
+ UInt64 length;
+} DDRange;
+
+typedef DDRange *DDRangePointer;
+
+NS_INLINE DDRange DDMakeRange(UInt64 loc, UInt64 len) {
+ DDRange r;
+ r.location = loc;
+ r.length = len;
+ return r;
+}
+
+NS_INLINE UInt64 DDMaxRange(DDRange range) {
+ return (range.location + range.length);
+}
+
+NS_INLINE BOOL DDLocationInRange(UInt64 loc, DDRange range) {
+ return (loc - range.location < range.length);
+}
+
+NS_INLINE BOOL DDEqualRanges(DDRange range1, DDRange range2) {
+ return ((range1.location == range2.location) && (range1.length == range2.length));
+}
+
+FOUNDATION_EXPORT DDRange DDUnionRange(DDRange range1, DDRange range2);
+FOUNDATION_EXPORT DDRange DDIntersectionRange(DDRange range1, DDRange range2);
+FOUNDATION_EXPORT NSString *DDStringFromRange(DDRange range);
+FOUNDATION_EXPORT DDRange DDRangeFromString(NSString *aString);
+
+NSInteger DDRangeCompare(DDRangePointer pDDRange1, DDRangePointer pDDRange2);
+
+@interface NSValue (NSValueDDRangeExtensions)
+
++ (NSValue *)valueWithDDRange:(DDRange)range;
+- (DDRange)ddrangeValue;
+
+- (NSInteger)ddrangeCompare:(NSValue *)ddrangeValue;
+
+@end
View
104 src/ios/CocoaHTTPServer/Core/Categories/DDRange.m
@@ -0,0 +1,104 @@
+#import "DDRange.h"
+#import "DDNumber.h"
+
+DDRange DDUnionRange(DDRange range1, DDRange range2)
+{
+ DDRange result;
+
+ result.location = MIN(range1.location, range2.location);
+ result.length = MAX(DDMaxRange(range1), DDMaxRange(range2)) - result.location;
+
+ return result;
+}
+
+DDRange DDIntersectionRange(DDRange range1, DDRange range2)
+{
+ DDRange result;
+
+ if((DDMaxRange(range1) < range2.location) || (DDMaxRange(range2) < range1.location))
+ {
+ return DDMakeRange(0, 0);
+ }
+
+ result.location = MAX(range1.location, range2.location);
+ result.length = MIN(DDMaxRange(range1), DDMaxRange(range2)) - result.location;
+
+ return result;
+}
+
+NSString *DDStringFromRange(DDRange range)
+{
+ return [NSString stringWithFormat:@"{%qu, %qu}", range.location, range.length];
+}
+
+DDRange DDRangeFromString(NSString *aString)
+{
+ DDRange result = DDMakeRange(0, 0);
+
+ // NSRange will ignore '-' characters, but not '+' characters
+ NSCharacterSet *cset = [NSCharacterSet characterSetWithCharactersInString:@"+0123456789"];
+
+ NSScanner *scanner = [NSScanner scannerWithString:aString];
+ [scanner setCharactersToBeSkipped:[cset invertedSet]];
+
+ NSString *str1 = nil;
+ NSString *str2 = nil;
+
+ BOOL found1 = [scanner scanCharactersFromSet:cset intoString:&str1];
+ BOOL found2 = [scanner scanCharactersFromSet:cset intoString:&str2];
+
+ if(found1) [NSNumber parseString:str1 intoUInt64:&result.location];
+ if(found2) [NSNumber parseString:str2 intoUInt64:&result.length];
+
+ return result;
+}
+
+NSInteger DDRangeCompare(DDRangePointer pDDRange1, DDRangePointer pDDRange2)
+{
+ // Comparison basis:
+ // Which range would you encouter first if you started at zero, and began walking towards infinity.
+ // If you encouter both ranges at the same time, which range would end first.
+
+ if(pDDRange1->location < pDDRange2->location)
+ {
+ return NSOrderedAscending;
+ }
+ if(pDDRange1->location > pDDRange2->location)
+ {
+ return NSOrderedDescending;
+ }
+ if(pDDRange1->length < pDDRange2->length)
+ {
+ return NSOrderedAscending;
+ }
+ if(pDDRange1->length > pDDRange2->length)
+ {
+ return NSOrderedDescending;
+ }
+
+ return NSOrderedSame;
+}
+
+@implementation NSValue (NSValueDDRangeExtensions)
+
++ (NSValue *)valueWithDDRange:(DDRange)range
+{
+ return [NSValue valueWithBytes:&range objCType:@encode(DDRange)];
+}
+
+- (DDRange)ddrangeValue
+{
+ DDRange result;
+ [self getValue:&result];
+ return result;
+}
+
+- (NSInteger)ddrangeCompare:(NSValue *)other
+{
+ DDRange r1 = [self ddrangeValue];
+ DDRange r2 = [other ddrangeValue];
+
+ return DDRangeCompare(&r1, &r2);
+}
+
+@end
View
45 src/ios/CocoaHTTPServer/Core/HTTPAuthenticationRequest.h
@@ -0,0 +1,45 @@
+#import <Foundation/Foundation.h>
+
+#if TARGET_OS_IPHONE
+ // Note: You may need to add the CFNetwork Framework to your project
+ #import <CFNetwork/CFNetwork.h>
+#endif
+
+@class HTTPMessage;
+
+
+@interface HTTPAuthenticationRequest : NSObject
+{
+ BOOL isBasic;
+ BOOL isDigest;
+
+ NSString *base64Credentials;
+
+ NSString *username;
+ NSString *realm;
+ NSString *nonce;
+ NSString *uri;
+ NSString *qop;
+ NSString *nc;
+ NSString *cnonce;
+ NSString *response;
+}
+- (id)initWithRequest:(HTTPMessage *)request;
+
+- (BOOL)isBasic;
+- (BOOL)isDigest;
+
+// Basic
+- (NSString *)base64Credentials;
+
+// Digest
+- (NSString *)username;
+- (NSString *)realm;
+- (NSString *)nonce;
+- (NSString *)uri;
+- (NSString *)qop;
+- (NSString *)nc;
+- (NSString *)cnonce;
+- (NSString *)response;
+
+@end
View
195 src/ios/CocoaHTTPServer/Core/HTTPAuthenticationRequest.m
@@ -0,0 +1,195 @@
+#import "HTTPAuthenticationRequest.h"
+#import "HTTPMessage.h"
+
+#if ! __has_feature(objc_arc)
+#warning This file must be compiled with ARC. Use -fobjc-arc flag (or convert project to ARC).
+#endif
+
+@interface HTTPAuthenticationRequest (PrivateAPI)
+- (NSString *)quotedSubHeaderFieldValue:(NSString *)param fromHeaderFieldValue:(NSString *)header;
+- (NSString *)nonquotedSubHeaderFieldValue:(NSString *)param fromHeaderFieldValue:(NSString *)header;
+@end
+
+
+@implementation HTTPAuthenticationRequest
+
+- (id)initWithRequest:(HTTPMessage *)request
+{
+ if ((self = [super init]))
+ {
+ NSString *authInfo = [request headerField:@"Authorization"];
+
+ isBasic = NO;
+ if ([authInfo length] >= 6)
+ {
+ isBasic = [[authInfo substringToIndex:6] caseInsensitiveCompare:@"Basic "] == NSOrderedSame;
+ }
+
+ isDigest = NO;
+ if ([authInfo length] >= 7)
+ {
+ isDigest = [[authInfo substringToIndex:7] caseInsensitiveCompare:@"Digest "] == NSOrderedSame;
+ }
+
+ if (isBasic)
+ {
+ NSMutableString *temp = [[authInfo substringFromIndex:6] mutableCopy];
+ CFStringTrimWhitespace((__bridge CFMutableStringRef)temp);
+
+ base64Credentials = [temp copy];
+ }
+
+ if (isDigest)
+ {
+ username = [self quotedSubHeaderFieldValue:@"username" fromHeaderFieldValue:authInfo];
+ realm = [self quotedSubHeaderFieldValue:@"realm" fromHeaderFieldValue:authInfo];
+ nonce = [self quotedSubHeaderFieldValue:@"nonce" fromHeaderFieldValue:authInfo];
+ uri = [self quotedSubHeaderFieldValue:@"uri" fromHeaderFieldValue:authInfo];
+
+ // It appears from RFC 2617 that the qop is to be given unquoted
+ // Tests show that Firefox performs this way, but Safari does not
+ // Thus we'll attempt to retrieve the value as nonquoted, but we'll verify it doesn't start with a quote
+ qop = [self nonquotedSubHeaderFieldValue:@"qop" fromHeaderFieldValue:authInfo];
+ if(qop && ([qop characterAtIndex:0] == '"'))
+ {
+ qop = [self quotedSubHeaderFieldValue:@"qop" fromHeaderFieldValue:authInfo];
+ }
+
+ nc = [self nonquotedSubHeaderFieldValue:@"nc" fromHeaderFieldValue:authInfo];
+ cnonce = [self quotedSubHeaderFieldValue:@"cnonce" fromHeaderFieldValue:authInfo];
+ response = [self quotedSubHeaderFieldValue:@"response" fromHeaderFieldValue:authInfo];
+ }
+ }
+ return self;
+}
+
+
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+#pragma mark Accessors:
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+- (BOOL)isBasic {
+ return isBasic;
+}
+
+- (BOOL)isDigest {
+ return isDigest;
+}
+
+- (NSString *)base64Credentials {
+ return base64Credentials;
+}
+
+- (NSString *)username {
+ return username;
+}
+
+- (NSString *)realm {
+ return realm;
+}
+
+- (NSString *)nonce {
+ return nonce;
+}
+
+- (NSString *)uri {
+ return uri;
+}
+
+- (NSString *)qop {
+ return qop;
+}
+
+- (NSString *)nc {
+ return nc;
+}
+
+- (NSString *)cnonce {
+ return cnonce;
+}
+
+- (NSString *)response {
+ return response;
+}
+
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+#pragma mark Private API:
+////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
+
+/**
+ * Retrieves a "Sub Header Field Value" from a given header field value.
+ * The sub header field is expected to be quoted.
+ *
+ * In the following header field:
+ * Authorization: Digest username="Mufasa", qop=auth, response="6629fae4939"
+ * The sub header field titled 'username' is quoted, and this method would return the value @"Mufasa".
+**/
+- (NSString *)quotedSubHeaderFieldValue:(NSString *)param fromHeaderFieldValue:(NSString *)header
+{
+ NSRange startRange = [header rangeOfString:[NSString stringWithFormat:@"%@=\"", param]];
+ if(startRange.location == NSNotFound)
+ {
+ // The param was not found anywhere in the header
+ return nil;
+ }
+
+ NSUInteger postStartRangeLocation = startRange.location + startRange.length;
+ NSUInteger postStartRangeLength = [header length] - postStartRangeLocation;
+ NSRange postStartRange = NSMakeRange(postStartRangeLocation, postStartRangeLength);
+
+ NSRange endRange = [header rangeOfString:@"\"" options:0 range:postStartRange];
+ if(endRange.location == NSNotFound)
+ {
+ // The ending double-quote was not found anywhere in the header
+ return nil;
+ }
+
+ NSRange subHeaderRange = NSMakeRange(postStartRangeLocation, endRange.location - postStartRangeLocation);
+ return [header substringWithRange:subHeaderRange];
+}
+
+/**
+ * Retrieves a "Sub Header Field Value" from a given header field value.
+ * The sub header field is expected to not be quoted.
+ *
+ * In the following header field:
+ * Authorization: Digest username="Mufasa", qop=auth, response="6629fae4939"
+ * The sub header field titled 'qop' is nonquoted, and this method would return the value @"auth".
+**/
+- (NSString *)nonquotedSubHeaderFieldValue:(NSString *)param fromHeaderFieldValue:(NSString *)header
+{
+ NSRange startRange = [header rangeOfString:[NSString stringWithFormat:@"%@=", param]];
+ if(startRange.location == NSNotFound)
+ {
+ // The param was not found anywhere in the header
+ return nil;
+ }
+
+ NSUInteger postStartRangeLocation = startRange.location + startRange.length;
+ NSUInteger postStartRangeLength = [header length] - postStartRangeLocation;
+ NSRange postStartRange = NSMakeRange(postStartRangeLocation, postStartRangeLength);
+
+ NSRange endRange = [header rangeOfString:@"," options:0 range:postStartRange];
+ if(endRange.location == NSNotFound)
+ {
+ // The ending comma was not found anywhere in the header
+ // However, if the nonquoted param is at the end of the string, there would be no comma
+ // This is only possible if there are no spaces anywhere
+ NSRange endRange2 = [header rangeOfString:@" " options: