Skip to content
Browse files

First iOS Commit

  • Loading branch information...
0 parents commit ce688aa153461eb3c5066f5f20a926ebcae0da93 @MinrvaProject MinrvaProject committed Sep 27, 2012
Showing with 15,737 additions and 0 deletions.
  1. +22 −0 .gitignore
  2. +800 −0 Minrva.xcodeproj/project.pbxproj
  3. +4 −0 README.md
  4. +45 −0 ZBarSDK/Headers/ZBarSDK/ZBarCameraSimulator.h
  5. +111 −0 ZBarSDK/Headers/ZBarSDK/ZBarCaptureReader.h
  6. +60 −0 ZBarSDK/Headers/ZBarSDK/ZBarHelpController.h
  7. +69 −0 ZBarSDK/Headers/ZBarSDK/ZBarImage.h
  8. +51 −0 ZBarSDK/Headers/ZBarSDK/ZBarImageScanner.h
  9. +142 −0 ZBarSDK/Headers/ZBarSDK/ZBarReaderController.h
  10. +140 −0 ZBarSDK/Headers/ZBarSDK/ZBarReaderView.h
  11. +130 −0 ZBarSDK/Headers/ZBarSDK/ZBarReaderViewController.h
  12. +34 −0 ZBarSDK/Headers/ZBarSDK/ZBarSDK.h
  13. +71 −0 ZBarSDK/Headers/ZBarSDK/ZBarSymbol.h
  14. +1,498 −0 ZBarSDK/Headers/ZBarSDK/zbar.h
  15. +202 −0 ZBarSDK/Headers/ZBarSDK/zbar/Decoder.h
  16. +187 −0 ZBarSDK/Headers/ZBarSDK/zbar/Exception.h
  17. +329 −0 ZBarSDK/Headers/ZBarSDK/zbar/Image.h
  18. +130 −0 ZBarSDK/Headers/ZBarSDK/zbar/ImageScanner.h
  19. +223 −0 ZBarSDK/Headers/ZBarSDK/zbar/Processor.h
  20. +162 −0 ZBarSDK/Headers/ZBarSDK/zbar/Scanner.h
  21. +541 −0 ZBarSDK/Headers/ZBarSDK/zbar/Symbol.h
  22. +170 −0 ZBarSDK/Headers/ZBarSDK/zbar/Video.h
  23. +136 −0 ZBarSDK/Headers/ZBarSDK/zbar/Window.h
  24. BIN ZBarSDK/Resources/zbar-back.png
  25. +89 −0 ZBarSDK/Resources/zbar-help.html
  26. BIN ZBarSDK/Resources/zbar-helpicons.png
  27. BIN ZBarSDK/Resources/zbar-samples.png
  28. BIN ZBarSDK/libzbar.a
  29. +20 −0 minrva/AppDelegate.h
  30. +112 −0 minrva/AppDelegate.m
  31. +56 −0 minrva/Display.h
  32. +298 −0 minrva/Display.m
  33. BIN minrva/Icon.png
  34. +30 −0 minrva/LoanableTech.h
  35. +217 −0 minrva/LoanableTech.m
  36. +286 −0 minrva/LoanableTech.xib
  37. +93 −0 minrva/MKAnnotationView+WebCache.h
  38. +80 −0 minrva/MKAnnotationView+WebCache.m
  39. +47 −0 minrva/Minrva-Info.plist
  40. +16 −0 minrva/Minrva-Prefix.pch
  41. +79 −0 minrva/NSObject+SBJson.h
  42. +72 −0 minrva/NSObject+SBJson.m
  43. +27 −0 minrva/Options.h
  44. +169 −0 minrva/Options.m
  45. +137 −0 minrva/Options.xib
  46. +84 −0 minrva/SBJson.h
  47. +101 −0 minrva/SBJsonParser.h
  48. +100 −0 minrva/SBJsonParser.m
  49. +161 −0 minrva/SBJsonStreamParser.h
  50. +252 −0 minrva/SBJsonStreamParser.m
  51. +37 −0 minrva/SBJsonStreamParserAccumulator.h
  52. +47 −0 minrva/SBJsonStreamParserAccumulator.m
  53. +148 −0 minrva/SBJsonStreamParserAdapter.h
  54. +164 −0 minrva/SBJsonStreamParserAdapter.m
  55. +83 −0 minrva/SBJsonStreamParserState.h
  56. +359 −0 minrva/SBJsonStreamParserState.m
  57. +195 −0 minrva/SBJsonStreamWriter.h
  58. +370 −0 minrva/SBJsonStreamWriter.m
  59. +36 −0 minrva/SBJsonStreamWriterAccumulator.h
  60. +52 −0 minrva/SBJsonStreamWriterAccumulator.m
  61. +69 −0 minrva/SBJsonStreamWriterState.h
  62. +143 −0 minrva/SBJsonStreamWriterState.m
  63. +67 −0 minrva/SBJsonTokeniser.h
  64. +472 −0 minrva/SBJsonTokeniser.m
  65. +58 −0 minrva/SBJsonUTF8Stream.h
  66. +141 −0 minrva/SBJsonUTF8Stream.m
  67. +117 −0 minrva/SBJsonWriter.h
  68. +112 −0 minrva/SBJsonWriter.m
  69. +140 −0 minrva/SDImageCache.h
  70. +432 −0 minrva/SDImageCache.m
  71. +39 −0 minrva/SDImageCacheDelegate.h
  72. +92 −0 minrva/SDWebImageCompat.h
  73. +67 −0 minrva/SDWebImageDecoder.h
  74. +124 −0 minrva/SDWebImageDecoder.m
  75. +78 −0 minrva/SDWebImageDownloader.h
  76. +279 −0 minrva/SDWebImageDownloader.m
  77. +46 −0 minrva/SDWebImageDownloaderDelegate.h
  78. +151 −0 minrva/SDWebImageManager.h
  79. +492 −0 minrva/SDWebImageManager.m
  80. +55 −0 minrva/SDWebImageManagerDelegate.h
  81. +57 −0 minrva/SDWebImagePrefetcher.h
  82. +114 −0 minrva/SDWebImagePrefetcher.m
  83. +26 −0 minrva/Scanner.h
  84. +183 −0 minrva/Scanner.m
  85. +408 −0 minrva/Scanner.xib
  86. +17 −0 minrva/TouchImageViewController.h
  87. +26 −0 minrva/TouchImageViewController.m
  88. +162 −0 minrva/UIButton+WebCache.h
  89. +168 −0 minrva/UIButton+WebCache.m
  90. +121 −0 minrva/UIImageView+WebCache.h
  91. +82 −0 minrva/UIImageView+WebCache.m
  92. +6 −0 minrva/UILabel+dynamicSizeMe.h
  93. +25 −0 minrva/UILabel+dynamicSizeMe.m
  94. +46 −0 minrva/VuFind.h
  95. +423 −0 minrva/VuFind.m
  96. +504 −0 minrva/VuFind.xib
  97. +31 −0 minrva/WayFinder.h
  98. +293 −0 minrva/WayFinder.m
  99. +316 −0 minrva/WayFinder.xib
  100. BIN minrva/background.png
  101. +261 −0 minrva/en.lproj/Display.xib
  102. +2 −0 minrva/en.lproj/InfoPlist.strings
  103. BIN minrva/fifth.png
  104. BIN minrva/first.png
  105. BIN minrva/fourth.png
  106. BIN minrva/header.png
  107. +18 −0 minrva/main.m
  108. BIN minrva/scanner_example.jpg
  109. BIN minrva/second.png
  110. BIN minrva/third.png
22 .gitignore
@@ -0,0 +1,22 @@
+# Exclude the build directory
+build/*
+
+# Exclude temp nibs and swap files
+*~.nib
+*.swp
+
+# Exclude OS X folder attributes
+.DS_Store
+
+# Exclude user-specific XCode 4 files
+*.mode1
+*.mode1v3
+*.mode2v3
+*.perspective
+*.perspectivev3
+*.pbxuser
+*.xcworkspace
+xcuserdata
+
+# Exclude properties file
+properties.plist
800 Minrva.xcodeproj/project.pbxproj
@@ -0,0 +1,800 @@
+// !$*UTF8*$!
+{
+ archiveVersion = 1;
+ classes = {
+ };
+ objectVersion = 46;
+ objects = {
+
+/* Begin PBXBuildFile section */
+ 4409DD9E1615141E002AC326 /* VuFind.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4409DD9D1615141E002AC326 /* VuFind.xib */; };
+ 4409DDA116151430002AC326 /* Options.xib in Resources */ = {isa = PBXBuildFile; fileRef = 4409DDA016151430002AC326 /* Options.xib */; };
+ 4409DDA316151445002AC326 /* properties.plist in Resources */ = {isa = PBXBuildFile; fileRef = 4409DDA216151445002AC326 /* properties.plist */; };
+ 4409DDA516151464002AC326 /* Icon.png in Resources */ = {isa = PBXBuildFile; fileRef = 4409DDA416151464002AC326 /* Icon.png */; };
+ 4409DDA716151471002AC326 /* scanner_example.jpg in Resources */ = {isa = PBXBuildFile; fileRef = 4409DDA616151471002AC326 /* scanner_example.jpg */; };
+ 4409DDA9161514B2002AC326 /* Options.m in Sources */ = {isa = PBXBuildFile; fileRef = 4409DDA8161514B2002AC326 /* Options.m */; };
+ F61417601601076200960251 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F614175F1601076200960251 /* AVFoundation.framework */; };
+ F61417621601076A00960251 /* CoreMedia.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F61417611601076A00960251 /* CoreMedia.framework */; };
+ F61417641601077200960251 /* CoreVideo.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F61417631601077200960251 /* CoreVideo.framework */; };
+ F61417661601078400960251 /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F61417651601078400960251 /* QuartzCore.framework */; };
+ F61417681601079B00960251 /* libiconv.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = F61417671601079B00960251 /* libiconv.dylib */; };
+ F6189F0015F7DC5500090DF6 /* TouchImageViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = F6189EFF15F7DC5500090DF6 /* TouchImageViewController.m */; };
+ F622AFE41608FF870020027E /* libzbar.a in Frameworks */ = {isa = PBXBuildFile; fileRef = F622AFDE1608FF870020027E /* libzbar.a */; };
+ F622AFE51608FF870020027E /* zbar-back.png in Resources */ = {isa = PBXBuildFile; fileRef = F622AFE01608FF870020027E /* zbar-back.png */; };
+ F622AFE61608FF870020027E /* zbar-help.html in Resources */ = {isa = PBXBuildFile; fileRef = F622AFE11608FF870020027E /* zbar-help.html */; };
+ F622AFE71608FF870020027E /* zbar-helpicons.png in Resources */ = {isa = PBXBuildFile; fileRef = F622AFE21608FF870020027E /* zbar-helpicons.png */; };
+ F622AFE81608FF870020027E /* zbar-samples.png in Resources */ = {isa = PBXBuildFile; fileRef = F622AFE31608FF870020027E /* zbar-samples.png */; };
+ F62E0FA615D2B0A4005DF6F2 /* third.png in Resources */ = {isa = PBXBuildFile; fileRef = F62E0FA515D2B0A4005DF6F2 /* third.png */; };
+ F62E0FAE15D2B3F9005DF6F2 /* fifth.png in Resources */ = {isa = PBXBuildFile; fileRef = F62E0FAD15D2B3F9005DF6F2 /* fifth.png */; };
+ F62E0FB015D2B3FE005DF6F2 /* fourth.png in Resources */ = {isa = PBXBuildFile; fileRef = F62E0FAF15D2B3FE005DF6F2 /* fourth.png */; };
+ F62E0FB415D2B4E8005DF6F2 /* WayFinder.m in Sources */ = {isa = PBXBuildFile; fileRef = F62E0FB215D2B4E8005DF6F2 /* WayFinder.m */; };
+ F62E0FB515D2B4E8005DF6F2 /* WayFinder.xib in Resources */ = {isa = PBXBuildFile; fileRef = F62E0FB315D2B4E8005DF6F2 /* WayFinder.xib */; };
+ F62E0FB915D2B62C005DF6F2 /* LoanableTech.m in Sources */ = {isa = PBXBuildFile; fileRef = F62E0FB715D2B62C005DF6F2 /* LoanableTech.m */; };
+ F62E0FBA15D2B62C005DF6F2 /* LoanableTech.xib in Resources */ = {isa = PBXBuildFile; fileRef = F62E0FB815D2B62C005DF6F2 /* LoanableTech.xib */; };
+ F62E0FBC15D2B881005DF6F2 /* background.png in Resources */ = {isa = PBXBuildFile; fileRef = F62E0FBB15D2B881005DF6F2 /* background.png */; };
+ F62E0FBE15D2BD08005DF6F2 /* header.png in Resources */ = {isa = PBXBuildFile; fileRef = F62E0FBD15D2BD08005DF6F2 /* header.png */; };
+ F65BB74215F27AB500CA6E95 /* MKAnnotationView+WebCache.m in Sources */ = {isa = PBXBuildFile; fileRef = F65BB72F15F27AB500CA6E95 /* MKAnnotationView+WebCache.m */; };
+ F65BB74315F27AB500CA6E95 /* SDImageCache.m in Sources */ = {isa = PBXBuildFile; fileRef = F65BB73115F27AB500CA6E95 /* SDImageCache.m */; };
+ F65BB74415F27AB500CA6E95 /* SDWebImageDecoder.m in Sources */ = {isa = PBXBuildFile; fileRef = F65BB73515F27AB500CA6E95 /* SDWebImageDecoder.m */; };
+ F65BB74515F27AB500CA6E95 /* SDWebImageDownloader.m in Sources */ = {isa = PBXBuildFile; fileRef = F65BB73715F27AB500CA6E95 /* SDWebImageDownloader.m */; };
+ F65BB74615F27AB500CA6E95 /* SDWebImageManager.m in Sources */ = {isa = PBXBuildFile; fileRef = F65BB73A15F27AB500CA6E95 /* SDWebImageManager.m */; };
+ F65BB74715F27AB500CA6E95 /* SDWebImagePrefetcher.m in Sources */ = {isa = PBXBuildFile; fileRef = F65BB73D15F27AB500CA6E95 /* SDWebImagePrefetcher.m */; };
+ F65BB74815F27AB500CA6E95 /* UIButton+WebCache.m in Sources */ = {isa = PBXBuildFile; fileRef = F65BB73F15F27AB500CA6E95 /* UIButton+WebCache.m */; };
+ F65BB74915F27AB500CA6E95 /* UIImageView+WebCache.m in Sources */ = {isa = PBXBuildFile; fileRef = F65BB74115F27AB500CA6E95 /* UIImageView+WebCache.m */; };
+ F66C7AFC15D2AD72009810A2 /* Scanner.xib in Resources */ = {isa = PBXBuildFile; fileRef = F66C7AFB15D2AD72009810A2 /* Scanner.xib */; };
+ F6AF637E15F6A6BA00A8C944 /* VuFind.m in Sources */ = {isa = PBXBuildFile; fileRef = F6AF637C15F6A6BA00A8C944 /* VuFind.m */; };
+ F6BA01D015D1C4A500D104F1 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F6BA01CF15D1C4A500D104F1 /* UIKit.framework */; };
+ F6BA01D215D1C4A500D104F1 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F6BA01D115D1C4A500D104F1 /* Foundation.framework */; };
+ F6BA01D415D1C4A500D104F1 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F6BA01D315D1C4A500D104F1 /* CoreGraphics.framework */; };
+ F6BA01DA15D1C4A500D104F1 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = F6BA01D815D1C4A500D104F1 /* InfoPlist.strings */; };
+ F6BA01DC15D1C4A500D104F1 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = F6BA01DB15D1C4A500D104F1 /* main.m */; };
+ F6BA01E015D1C4A500D104F1 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = F6BA01DF15D1C4A500D104F1 /* AppDelegate.m */; };
+ F6BA01E315D1C4A500D104F1 /* Display.m in Sources */ = {isa = PBXBuildFile; fileRef = F6BA01E215D1C4A500D104F1 /* Display.m */; };
+ F6BA01F115D1C4A500D104F1 /* Display.xib in Resources */ = {isa = PBXBuildFile; fileRef = F6BA01EF15D1C4A500D104F1 /* Display.xib */; };
+ F6BA021915D1C4C200D104F1 /* first.png in Resources */ = {isa = PBXBuildFile; fileRef = F6BA021815D1C4C200D104F1 /* first.png */; };
+ F6BA021B15D1C4F800D104F1 /* second.png in Resources */ = {isa = PBXBuildFile; fileRef = F6BA021A15D1C4F800D104F1 /* second.png */; };
+ F6BA022715D1C65300D104F1 /* Scanner.m in Sources */ = {isa = PBXBuildFile; fileRef = F6BA022515D1C65300D104F1 /* Scanner.m */; };
+ F6D85C1C15E6896C006F2E43 /* NSObject+SBJson.m in Sources */ = {isa = PBXBuildFile; fileRef = F6D85C0415E6896B006F2E43 /* NSObject+SBJson.m */; };
+ F6D85C1D15E6896C006F2E43 /* SBJsonParser.m in Sources */ = {isa = PBXBuildFile; fileRef = F6D85C0715E6896B006F2E43 /* SBJsonParser.m */; };
+ F6D85C1E15E6896C006F2E43 /* SBJsonStreamParser.m in Sources */ = {isa = PBXBuildFile; fileRef = F6D85C0915E6896C006F2E43 /* SBJsonStreamParser.m */; };
+ F6D85C1F15E6896C006F2E43 /* SBJsonStreamParserAccumulator.m in Sources */ = {isa = PBXBuildFile; fileRef = F6D85C0B15E6896C006F2E43 /* SBJsonStreamParserAccumulator.m */; };
+ F6D85C2015E6896C006F2E43 /* SBJsonStreamParserAdapter.m in Sources */ = {isa = PBXBuildFile; fileRef = F6D85C0D15E6896C006F2E43 /* SBJsonStreamParserAdapter.m */; };
+ F6D85C2115E6896C006F2E43 /* SBJsonStreamParserState.m in Sources */ = {isa = PBXBuildFile; fileRef = F6D85C0F15E6896C006F2E43 /* SBJsonStreamParserState.m */; };
+ F6D85C2215E6896C006F2E43 /* SBJsonStreamWriter.m in Sources */ = {isa = PBXBuildFile; fileRef = F6D85C1115E6896C006F2E43 /* SBJsonStreamWriter.m */; };
+ F6D85C2315E6896C006F2E43 /* SBJsonStreamWriterAccumulator.m in Sources */ = {isa = PBXBuildFile; fileRef = F6D85C1315E6896C006F2E43 /* SBJsonStreamWriterAccumulator.m */; };
+ F6D85C2415E6896C006F2E43 /* SBJsonStreamWriterState.m in Sources */ = {isa = PBXBuildFile; fileRef = F6D85C1515E6896C006F2E43 /* SBJsonStreamWriterState.m */; };
+ F6D85C2515E6896C006F2E43 /* SBJsonTokeniser.m in Sources */ = {isa = PBXBuildFile; fileRef = F6D85C1715E6896C006F2E43 /* SBJsonTokeniser.m */; };
+ F6D85C2615E6896C006F2E43 /* SBJsonUTF8Stream.m in Sources */ = {isa = PBXBuildFile; fileRef = F6D85C1915E6896C006F2E43 /* SBJsonUTF8Stream.m */; };
+ F6D85C2715E6896C006F2E43 /* SBJsonWriter.m in Sources */ = {isa = PBXBuildFile; fileRef = F6D85C1B15E6896C006F2E43 /* SBJsonWriter.m */; };
+ F6DBCEEB15E6D78A00192633 /* ImageIO.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F6DBCEEA15E6D78A00192633 /* ImageIO.framework */; };
+ F6DBCEED15E6D7EA00192633 /* MapKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = F6DBCEEC15E6D7EA00192633 /* MapKit.framework */; };
+ F6E7E97215F92E4E00179C1B /* UILabel+dynamicSizeMe.m in Sources */ = {isa = PBXBuildFile; fileRef = F6E7E97115F92E4E00179C1B /* UILabel+dynamicSizeMe.m */; };
+/* End PBXBuildFile section */
+
+/* Begin PBXFileReference section */
+ 4409DD9D1615141E002AC326 /* VuFind.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = VuFind.xib; path = minrva/VuFind.xib; sourceTree = "<group>"; };
+ 4409DDA016151430002AC326 /* Options.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = Options.xib; path = minrva/Options.xib; sourceTree = "<group>"; };
+ 4409DDA216151445002AC326 /* properties.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = properties.plist; path = minrva/properties.plist; sourceTree = "<group>"; };
+ 4409DDA416151464002AC326 /* Icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Icon.png; path = minrva/Icon.png; sourceTree = "<group>"; };
+ 4409DDA616151471002AC326 /* scanner_example.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; name = scanner_example.jpg; path = minrva/scanner_example.jpg; sourceTree = "<group>"; };
+ 4409DDA8161514B2002AC326 /* Options.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Options.m; sourceTree = "<group>"; };
+ 4409DDAA161514B6002AC326 /* Options.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Options.h; sourceTree = "<group>"; };
+ F614175F1601076200960251 /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = System/Library/Frameworks/AVFoundation.framework; sourceTree = SDKROOT; };
+ F61417611601076A00960251 /* CoreMedia.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreMedia.framework; path = System/Library/Frameworks/CoreMedia.framework; sourceTree = SDKROOT; };
+ F61417631601077200960251 /* CoreVideo.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreVideo.framework; path = System/Library/Frameworks/CoreVideo.framework; sourceTree = SDKROOT; };
+ F61417651601078400960251 /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
+ F61417671601079B00960251 /* libiconv.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libiconv.dylib; path = usr/lib/libiconv.dylib; sourceTree = SDKROOT; };
+ F6189EFE15F7DC5500090DF6 /* TouchImageViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TouchImageViewController.h; sourceTree = "<group>"; };
+ F6189EFF15F7DC5500090DF6 /* TouchImageViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = TouchImageViewController.m; sourceTree = "<group>"; };
+ F622AFCA1608FF870020027E /* Decoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Decoder.h; sourceTree = "<group>"; };
+ F622AFCB1608FF870020027E /* Exception.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Exception.h; sourceTree = "<group>"; };
+ F622AFCC1608FF870020027E /* Image.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Image.h; sourceTree = "<group>"; };
+ F622AFCD1608FF870020027E /* ImageScanner.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ImageScanner.h; sourceTree = "<group>"; };
+ F622AFCE1608FF870020027E /* Processor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Processor.h; sourceTree = "<group>"; };
+ F622AFCF1608FF870020027E /* Scanner.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Scanner.h; sourceTree = "<group>"; };
+ F622AFD01608FF870020027E /* Symbol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Symbol.h; sourceTree = "<group>"; };
+ F622AFD11608FF870020027E /* Video.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Video.h; sourceTree = "<group>"; };
+ F622AFD21608FF870020027E /* Window.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Window.h; sourceTree = "<group>"; };
+ F622AFD31608FF870020027E /* zbar.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = zbar.h; sourceTree = "<group>"; };
+ F622AFD41608FF870020027E /* ZBarCameraSimulator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ZBarCameraSimulator.h; sourceTree = "<group>"; };
+ F622AFD51608FF870020027E /* ZBarCaptureReader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ZBarCaptureReader.h; sourceTree = "<group>"; };
+ F622AFD61608FF870020027E /* ZBarHelpController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ZBarHelpController.h; sourceTree = "<group>"; };
+ F622AFD71608FF870020027E /* ZBarImage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ZBarImage.h; sourceTree = "<group>"; };
+ F622AFD81608FF870020027E /* ZBarImageScanner.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ZBarImageScanner.h; sourceTree = "<group>"; };
+ F622AFD91608FF870020027E /* ZBarReaderController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ZBarReaderController.h; sourceTree = "<group>"; };
+ F622AFDA1608FF870020027E /* ZBarReaderView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ZBarReaderView.h; sourceTree = "<group>"; };
+ F622AFDB1608FF870020027E /* ZBarReaderViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ZBarReaderViewController.h; sourceTree = "<group>"; };
+ F622AFDC1608FF870020027E /* ZBarSDK.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ZBarSDK.h; sourceTree = "<group>"; };
+ F622AFDD1608FF870020027E /* ZBarSymbol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ZBarSymbol.h; sourceTree = "<group>"; };
+ F622AFDE1608FF870020027E /* libzbar.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libzbar.a; sourceTree = "<group>"; };
+ F622AFE01608FF870020027E /* zbar-back.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "zbar-back.png"; sourceTree = "<group>"; };
+ F622AFE11608FF870020027E /* zbar-help.html */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.html; path = "zbar-help.html"; sourceTree = "<group>"; };
+ F622AFE21608FF870020027E /* zbar-helpicons.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "zbar-helpicons.png"; sourceTree = "<group>"; };
+ F622AFE31608FF870020027E /* zbar-samples.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "zbar-samples.png"; sourceTree = "<group>"; };
+ F62E0FA515D2B0A4005DF6F2 /* third.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = third.png; path = minrva/third.png; sourceTree = "<group>"; };
+ F62E0FAD15D2B3F9005DF6F2 /* fifth.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = fifth.png; path = minrva/fifth.png; sourceTree = "<group>"; };
+ F62E0FAF15D2B3FE005DF6F2 /* fourth.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = fourth.png; path = minrva/fourth.png; sourceTree = "<group>"; };
+ F62E0FB115D2B4E8005DF6F2 /* WayFinder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WayFinder.h; sourceTree = "<group>"; };
+ F62E0FB215D2B4E8005DF6F2 /* WayFinder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = WayFinder.m; sourceTree = "<group>"; };
+ F62E0FB315D2B4E8005DF6F2 /* WayFinder.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = WayFinder.xib; path = minrva/WayFinder.xib; sourceTree = "<group>"; };
+ F62E0FB615D2B62C005DF6F2 /* LoanableTech.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LoanableTech.h; sourceTree = "<group>"; };
+ F62E0FB715D2B62C005DF6F2 /* LoanableTech.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LoanableTech.m; sourceTree = "<group>"; };
+ F62E0FB815D2B62C005DF6F2 /* LoanableTech.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = LoanableTech.xib; path = minrva/LoanableTech.xib; sourceTree = "<group>"; };
+ F62E0FBB15D2B881005DF6F2 /* background.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = background.png; path = minrva/background.png; sourceTree = "<group>"; };
+ F62E0FBD15D2BD08005DF6F2 /* header.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = header.png; path = minrva/header.png; sourceTree = "<group>"; };
+ F65BB72E15F27AB500CA6E95 /* MKAnnotationView+WebCache.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "MKAnnotationView+WebCache.h"; sourceTree = "<group>"; };
+ F65BB72F15F27AB500CA6E95 /* MKAnnotationView+WebCache.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "MKAnnotationView+WebCache.m"; sourceTree = "<group>"; };
+ F65BB73015F27AB500CA6E95 /* SDImageCache.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDImageCache.h; sourceTree = "<group>"; };
+ F65BB73115F27AB500CA6E95 /* SDImageCache.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDImageCache.m; sourceTree = "<group>"; };
+ F65BB73215F27AB500CA6E95 /* SDImageCacheDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDImageCacheDelegate.h; sourceTree = "<group>"; };
+ F65BB73315F27AB500CA6E95 /* SDWebImageCompat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDWebImageCompat.h; sourceTree = "<group>"; };
+ F65BB73415F27AB500CA6E95 /* SDWebImageDecoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDWebImageDecoder.h; sourceTree = "<group>"; };
+ F65BB73515F27AB500CA6E95 /* SDWebImageDecoder.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDWebImageDecoder.m; sourceTree = "<group>"; };
+ F65BB73615F27AB500CA6E95 /* SDWebImageDownloader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDWebImageDownloader.h; sourceTree = "<group>"; };
+ F65BB73715F27AB500CA6E95 /* SDWebImageDownloader.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDWebImageDownloader.m; sourceTree = "<group>"; };
+ F65BB73815F27AB500CA6E95 /* SDWebImageDownloaderDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDWebImageDownloaderDelegate.h; sourceTree = "<group>"; };
+ F65BB73915F27AB500CA6E95 /* SDWebImageManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDWebImageManager.h; sourceTree = "<group>"; };
+ F65BB73A15F27AB500CA6E95 /* SDWebImageManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDWebImageManager.m; sourceTree = "<group>"; };
+ F65BB73B15F27AB500CA6E95 /* SDWebImageManagerDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDWebImageManagerDelegate.h; sourceTree = "<group>"; };
+ F65BB73C15F27AB500CA6E95 /* SDWebImagePrefetcher.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDWebImagePrefetcher.h; sourceTree = "<group>"; };
+ F65BB73D15F27AB500CA6E95 /* SDWebImagePrefetcher.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDWebImagePrefetcher.m; sourceTree = "<group>"; };
+ F65BB73E15F27AB500CA6E95 /* UIButton+WebCache.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIButton+WebCache.h"; sourceTree = "<group>"; };
+ F65BB73F15F27AB500CA6E95 /* UIButton+WebCache.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIButton+WebCache.m"; sourceTree = "<group>"; };
+ F65BB74015F27AB500CA6E95 /* UIImageView+WebCache.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIImageView+WebCache.h"; sourceTree = "<group>"; };
+ F65BB74115F27AB500CA6E95 /* UIImageView+WebCache.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIImageView+WebCache.m"; sourceTree = "<group>"; };
+ F66C7AFB15D2AD72009810A2 /* Scanner.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; name = Scanner.xib; path = minrva/Scanner.xib; sourceTree = "<group>"; };
+ F6AF637C15F6A6BA00A8C944 /* VuFind.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VuFind.m; sourceTree = "<group>"; };
+ F6AF637D15F6A6BA00A8C944 /* VuFind.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VuFind.h; sourceTree = "<group>"; };
+ F6BA01CB15D1C4A500D104F1 /* Minrva.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Minrva.app; sourceTree = BUILT_PRODUCTS_DIR; };
+ F6BA01CF15D1C4A500D104F1 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
+ F6BA01D115D1C4A500D104F1 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
+ F6BA01D315D1C4A500D104F1 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
+ F6BA01D715D1C4A500D104F1 /* Minrva-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Minrva-Info.plist"; sourceTree = "<group>"; };
+ F6BA01D915D1C4A500D104F1 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = "<group>"; };
+ F6BA01DB15D1C4A500D104F1 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; };
+ F6BA01DD15D1C4A500D104F1 /* Minrva-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "Minrva-Prefix.pch"; sourceTree = "<group>"; };
+ F6BA01DE15D1C4A500D104F1 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; };
+ F6BA01DF15D1C4A500D104F1 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; };
+ F6BA01E115D1C4A500D104F1 /* Display.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Display.h; sourceTree = "<group>"; };
+ F6BA01E215D1C4A500D104F1 /* Display.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = Display.m; sourceTree = "<group>"; };
+ F6BA01F015D1C4A500D104F1 /* en */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = en; path = en.lproj/Display.xib; sourceTree = "<group>"; };
+ F6BA020115D1C4A500D104F1 /* SenTestingKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SenTestingKit.framework; path = Library/Frameworks/SenTestingKit.framework; sourceTree = DEVELOPER_DIR; };
+ F6BA021815D1C4C200D104F1 /* first.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = first.png; path = minrva/first.png; sourceTree = "<group>"; };
+ F6BA021A15D1C4F800D104F1 /* second.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = second.png; path = minrva/second.png; sourceTree = "<group>"; };
+ F6BA022415D1C65300D104F1 /* Scanner.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Scanner.h; sourceTree = "<group>"; };
+ F6BA022515D1C65300D104F1 /* Scanner.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Scanner.m; sourceTree = "<group>"; };
+ F6D85C0315E6896B006F2E43 /* NSObject+SBJson.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSObject+SBJson.h"; sourceTree = "<group>"; };
+ F6D85C0415E6896B006F2E43 /* NSObject+SBJson.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "NSObject+SBJson.m"; sourceTree = "<group>"; };
+ F6D85C0515E6896B006F2E43 /* SBJson.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SBJson.h; sourceTree = "<group>"; };
+ F6D85C0615E6896B006F2E43 /* SBJsonParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SBJsonParser.h; sourceTree = "<group>"; };
+ F6D85C0715E6896B006F2E43 /* SBJsonParser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SBJsonParser.m; sourceTree = "<group>"; };
+ F6D85C0815E6896C006F2E43 /* SBJsonStreamParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SBJsonStreamParser.h; sourceTree = "<group>"; };
+ F6D85C0915E6896C006F2E43 /* SBJsonStreamParser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SBJsonStreamParser.m; sourceTree = "<group>"; };
+ F6D85C0A15E6896C006F2E43 /* SBJsonStreamParserAccumulator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SBJsonStreamParserAccumulator.h; sourceTree = "<group>"; };
+ F6D85C0B15E6896C006F2E43 /* SBJsonStreamParserAccumulator.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SBJsonStreamParserAccumulator.m; sourceTree = "<group>"; };
+ F6D85C0C15E6896C006F2E43 /* SBJsonStreamParserAdapter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SBJsonStreamParserAdapter.h; sourceTree = "<group>"; };
+ F6D85C0D15E6896C006F2E43 /* SBJsonStreamParserAdapter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SBJsonStreamParserAdapter.m; sourceTree = "<group>"; };
+ F6D85C0E15E6896C006F2E43 /* SBJsonStreamParserState.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SBJsonStreamParserState.h; sourceTree = "<group>"; };
+ F6D85C0F15E6896C006F2E43 /* SBJsonStreamParserState.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SBJsonStreamParserState.m; sourceTree = "<group>"; };
+ F6D85C1015E6896C006F2E43 /* SBJsonStreamWriter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SBJsonStreamWriter.h; sourceTree = "<group>"; };
+ F6D85C1115E6896C006F2E43 /* SBJsonStreamWriter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SBJsonStreamWriter.m; sourceTree = "<group>"; };
+ F6D85C1215E6896C006F2E43 /* SBJsonStreamWriterAccumulator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SBJsonStreamWriterAccumulator.h; sourceTree = "<group>"; };
+ F6D85C1315E6896C006F2E43 /* SBJsonStreamWriterAccumulator.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SBJsonStreamWriterAccumulator.m; sourceTree = "<group>"; };
+ F6D85C1415E6896C006F2E43 /* SBJsonStreamWriterState.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SBJsonStreamWriterState.h; sourceTree = "<group>"; };
+ F6D85C1515E6896C006F2E43 /* SBJsonStreamWriterState.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SBJsonStreamWriterState.m; sourceTree = "<group>"; };
+ F6D85C1615E6896C006F2E43 /* SBJsonTokeniser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SBJsonTokeniser.h; sourceTree = "<group>"; };
+ F6D85C1715E6896C006F2E43 /* SBJsonTokeniser.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SBJsonTokeniser.m; sourceTree = "<group>"; };
+ F6D85C1815E6896C006F2E43 /* SBJsonUTF8Stream.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SBJsonUTF8Stream.h; sourceTree = "<group>"; };
+ F6D85C1915E6896C006F2E43 /* SBJsonUTF8Stream.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SBJsonUTF8Stream.m; sourceTree = "<group>"; };
+ F6D85C1A15E6896C006F2E43 /* SBJsonWriter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SBJsonWriter.h; sourceTree = "<group>"; };
+ F6D85C1B15E6896C006F2E43 /* SBJsonWriter.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SBJsonWriter.m; sourceTree = "<group>"; };
+ F6DBCEEA15E6D78A00192633 /* ImageIO.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ImageIO.framework; path = System/Library/Frameworks/ImageIO.framework; sourceTree = SDKROOT; };
+ F6DBCEEC15E6D7EA00192633 /* MapKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = MapKit.framework; path = System/Library/Frameworks/MapKit.framework; sourceTree = SDKROOT; };
+ F6E7E97015F92E4E00179C1B /* UILabel+dynamicSizeMe.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UILabel+dynamicSizeMe.h"; sourceTree = "<group>"; };
+ F6E7E97115F92E4E00179C1B /* UILabel+dynamicSizeMe.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UILabel+dynamicSizeMe.m"; sourceTree = "<group>"; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+ F6BA01C815D1C4A500D104F1 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ F61417681601079B00960251 /* libiconv.dylib in Frameworks */,
+ F61417661601078400960251 /* QuartzCore.framework in Frameworks */,
+ F61417641601077200960251 /* CoreVideo.framework in Frameworks */,
+ F61417621601076A00960251 /* CoreMedia.framework in Frameworks */,
+ F61417601601076200960251 /* AVFoundation.framework in Frameworks */,
+ F6DBCEED15E6D7EA00192633 /* MapKit.framework in Frameworks */,
+ F6DBCEEB15E6D78A00192633 /* ImageIO.framework in Frameworks */,
+ F6BA01D015D1C4A500D104F1 /* UIKit.framework in Frameworks */,
+ F6BA01D215D1C4A500D104F1 /* Foundation.framework in Frameworks */,
+ F6BA01D415D1C4A500D104F1 /* CoreGraphics.framework in Frameworks */,
+ F622AFE41608FF870020027E /* libzbar.a in Frameworks */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+ F6189EFC15F7DBE900090DF6 /* touch */ = {
+ isa = PBXGroup;
+ children = (
+ F6189EFE15F7DC5500090DF6 /* TouchImageViewController.h */,
+ F6189EFF15F7DC5500090DF6 /* TouchImageViewController.m */,
+ );
+ name = touch;
+ sourceTree = "<group>";
+ };
+ F622AFC61608FF870020027E /* ZBarSDK */ = {
+ isa = PBXGroup;
+ children = (
+ F622AFC71608FF870020027E /* Headers */,
+ F622AFDE1608FF870020027E /* libzbar.a */,
+ F622AFDF1608FF870020027E /* Resources */,
+ );
+ path = ZBarSDK;
+ sourceTree = "<group>";
+ };
+ F622AFC71608FF870020027E /* Headers */ = {
+ isa = PBXGroup;
+ children = (
+ F622AFC81608FF870020027E /* ZBarSDK */,
+ );
+ path = Headers;
+ sourceTree = "<group>";
+ };
+ F622AFC81608FF870020027E /* ZBarSDK */ = {
+ isa = PBXGroup;
+ children = (
+ F622AFC91608FF870020027E /* zbar */,
+ F622AFD31608FF870020027E /* zbar.h */,
+ F622AFD41608FF870020027E /* ZBarCameraSimulator.h */,
+ F622AFD51608FF870020027E /* ZBarCaptureReader.h */,
+ F622AFD61608FF870020027E /* ZBarHelpController.h */,
+ F622AFD71608FF870020027E /* ZBarImage.h */,
+ F622AFD81608FF870020027E /* ZBarImageScanner.h */,
+ F622AFD91608FF870020027E /* ZBarReaderController.h */,
+ F622AFDA1608FF870020027E /* ZBarReaderView.h */,
+ F622AFDB1608FF870020027E /* ZBarReaderViewController.h */,
+ F622AFDC1608FF870020027E /* ZBarSDK.h */,
+ F622AFDD1608FF870020027E /* ZBarSymbol.h */,
+ );
+ path = ZBarSDK;
+ sourceTree = "<group>";
+ };
+ F622AFC91608FF870020027E /* zbar */ = {
+ isa = PBXGroup;
+ children = (
+ F622AFCA1608FF870020027E /* Decoder.h */,
+ F622AFCB1608FF870020027E /* Exception.h */,
+ F622AFCC1608FF870020027E /* Image.h */,
+ F622AFCD1608FF870020027E /* ImageScanner.h */,
+ F622AFCE1608FF870020027E /* Processor.h */,
+ F622AFCF1608FF870020027E /* Scanner.h */,
+ F622AFD01608FF870020027E /* Symbol.h */,
+ F622AFD11608FF870020027E /* Video.h */,
+ F622AFD21608FF870020027E /* Window.h */,
+ );
+ path = zbar;
+ sourceTree = "<group>";
+ };
+ F622AFDF1608FF870020027E /* Resources */ = {
+ isa = PBXGroup;
+ children = (
+ F622AFE01608FF870020027E /* zbar-back.png */,
+ F622AFE11608FF870020027E /* zbar-help.html */,
+ F622AFE21608FF870020027E /* zbar-helpicons.png */,
+ F622AFE31608FF870020027E /* zbar-samples.png */,
+ );
+ path = Resources;
+ sourceTree = "<group>";
+ };
+ F65BB74F15F2845200CA6E95 /* Resources */ = {
+ isa = PBXGroup;
+ children = (
+ 4409DDA216151445002AC326 /* properties.plist */,
+ F65BB75115F2851100CA6E95 /* Views */,
+ F65BB75015F284F500CA6E95 /* Images */,
+ );
+ name = Resources;
+ sourceTree = "<group>";
+ };
+ F65BB75015F284F500CA6E95 /* Images */ = {
+ isa = PBXGroup;
+ children = (
+ 4409DDA616151471002AC326 /* scanner_example.jpg */,
+ 4409DDA416151464002AC326 /* Icon.png */,
+ F62E0FBD15D2BD08005DF6F2 /* header.png */,
+ F62E0FBB15D2B881005DF6F2 /* background.png */,
+ F6BA021815D1C4C200D104F1 /* first.png */,
+ F6BA021A15D1C4F800D104F1 /* second.png */,
+ F62E0FA515D2B0A4005DF6F2 /* third.png */,
+ F62E0FAF15D2B3FE005DF6F2 /* fourth.png */,
+ F62E0FAD15D2B3F9005DF6F2 /* fifth.png */,
+ );
+ name = Images;
+ sourceTree = "<group>";
+ };
+ F65BB75115F2851100CA6E95 /* Views */ = {
+ isa = PBXGroup;
+ children = (
+ 4409DDA016151430002AC326 /* Options.xib */,
+ 4409DD9D1615141E002AC326 /* VuFind.xib */,
+ F6BA01EF15D1C4A500D104F1 /* Display.xib */,
+ F62E0FB815D2B62C005DF6F2 /* LoanableTech.xib */,
+ F66C7AFB15D2AD72009810A2 /* Scanner.xib */,
+ F62E0FB315D2B4E8005DF6F2 /* WayFinder.xib */,
+ );
+ name = Views;
+ sourceTree = "<group>";
+ };
+ F65BB75215F2866D00CA6E95 /* display */ = {
+ isa = PBXGroup;
+ children = (
+ F6BA01E115D1C4A500D104F1 /* Display.h */,
+ F6BA01E215D1C4A500D104F1 /* Display.m */,
+ );
+ name = display;
+ sourceTree = "<group>";
+ };
+ F65BB75315F2867A00CA6E95 /* loanabletech */ = {
+ isa = PBXGroup;
+ children = (
+ F62E0FB615D2B62C005DF6F2 /* LoanableTech.h */,
+ F62E0FB715D2B62C005DF6F2 /* LoanableTech.m */,
+ );
+ name = loanabletech;
+ sourceTree = "<group>";
+ };
+ F65BB75415F2869800CA6E95 /* scanner */ = {
+ isa = PBXGroup;
+ children = (
+ F6BA022415D1C65300D104F1 /* Scanner.h */,
+ F6BA022515D1C65300D104F1 /* Scanner.m */,
+ );
+ name = scanner;
+ sourceTree = "<group>";
+ };
+ F65BB75515F286A200CA6E95 /* vufind */ = {
+ isa = PBXGroup;
+ children = (
+ F6AF637D15F6A6BA00A8C944 /* VuFind.h */,
+ F6AF637C15F6A6BA00A8C944 /* VuFind.m */,
+ );
+ name = vufind;
+ sourceTree = "<group>";
+ };
+ F65BB75615F286B500CA6E95 /* wayfinder */ = {
+ isa = PBXGroup;
+ children = (
+ F62E0FB115D2B4E8005DF6F2 /* WayFinder.h */,
+ F62E0FB215D2B4E8005DF6F2 /* WayFinder.m */,
+ );
+ name = wayfinder;
+ sourceTree = "<group>";
+ };
+ F65BB75715F287BB00CA6E95 /* config */ = {
+ isa = PBXGroup;
+ children = (
+ F6BA01D715D1C4A500D104F1 /* Minrva-Info.plist */,
+ F6BA01D815D1C4A500D104F1 /* InfoPlist.strings */,
+ F6BA01DB15D1C4A500D104F1 /* main.m */,
+ F6BA01DD15D1C4A500D104F1 /* Minrva-Prefix.pch */,
+ );
+ name = config;
+ sourceTree = "<group>";
+ };
+ F65BB75815F287CF00CA6E95 /* cache */ = {
+ isa = PBXGroup;
+ children = (
+ F65BB72E15F27AB500CA6E95 /* MKAnnotationView+WebCache.h */,
+ F65BB72F15F27AB500CA6E95 /* MKAnnotationView+WebCache.m */,
+ F65BB73015F27AB500CA6E95 /* SDImageCache.h */,
+ F65BB73115F27AB500CA6E95 /* SDImageCache.m */,
+ F65BB73215F27AB500CA6E95 /* SDImageCacheDelegate.h */,
+ F65BB73315F27AB500CA6E95 /* SDWebImageCompat.h */,
+ F65BB73415F27AB500CA6E95 /* SDWebImageDecoder.h */,
+ F65BB73515F27AB500CA6E95 /* SDWebImageDecoder.m */,
+ F65BB73615F27AB500CA6E95 /* SDWebImageDownloader.h */,
+ F65BB73715F27AB500CA6E95 /* SDWebImageDownloader.m */,
+ F65BB73815F27AB500CA6E95 /* SDWebImageDownloaderDelegate.h */,
+ F65BB73915F27AB500CA6E95 /* SDWebImageManager.h */,
+ F65BB73A15F27AB500CA6E95 /* SDWebImageManager.m */,
+ F65BB73B15F27AB500CA6E95 /* SDWebImageManagerDelegate.h */,
+ F65BB73C15F27AB500CA6E95 /* SDWebImagePrefetcher.h */,
+ F65BB73D15F27AB500CA6E95 /* SDWebImagePrefetcher.m */,
+ F65BB73E15F27AB500CA6E95 /* UIButton+WebCache.h */,
+ F65BB73F15F27AB500CA6E95 /* UIButton+WebCache.m */,
+ F65BB74015F27AB500CA6E95 /* UIImageView+WebCache.h */,
+ F65BB74115F27AB500CA6E95 /* UIImageView+WebCache.m */,
+ );
+ name = cache;
+ sourceTree = "<group>";
+ };
+ F65BB75915F2881A00CA6E95 /* json */ = {
+ isa = PBXGroup;
+ children = (
+ F6D85C0315E6896B006F2E43 /* NSObject+SBJson.h */,
+ F6D85C0415E6896B006F2E43 /* NSObject+SBJson.m */,
+ F6D85C0515E6896B006F2E43 /* SBJson.h */,
+ F6D85C0615E6896B006F2E43 /* SBJsonParser.h */,
+ F6D85C0715E6896B006F2E43 /* SBJsonParser.m */,
+ F6D85C0815E6896C006F2E43 /* SBJsonStreamParser.h */,
+ F6D85C0915E6896C006F2E43 /* SBJsonStreamParser.m */,
+ F6D85C0A15E6896C006F2E43 /* SBJsonStreamParserAccumulator.h */,
+ F6D85C0B15E6896C006F2E43 /* SBJsonStreamParserAccumulator.m */,
+ F6D85C0C15E6896C006F2E43 /* SBJsonStreamParserAdapter.h */,
+ F6D85C0D15E6896C006F2E43 /* SBJsonStreamParserAdapter.m */,
+ F6D85C0E15E6896C006F2E43 /* SBJsonStreamParserState.h */,
+ F6D85C0F15E6896C006F2E43 /* SBJsonStreamParserState.m */,
+ F6D85C1015E6896C006F2E43 /* SBJsonStreamWriter.h */,
+ F6D85C1115E6896C006F2E43 /* SBJsonStreamWriter.m */,
+ F6D85C1215E6896C006F2E43 /* SBJsonStreamWriterAccumulator.h */,
+ F6D85C1315E6896C006F2E43 /* SBJsonStreamWriterAccumulator.m */,
+ F6D85C1415E6896C006F2E43 /* SBJsonStreamWriterState.h */,
+ F6D85C1515E6896C006F2E43 /* SBJsonStreamWriterState.m */,
+ F6D85C1615E6896C006F2E43 /* SBJsonTokeniser.h */,
+ F6D85C1715E6896C006F2E43 /* SBJsonTokeniser.m */,
+ F6D85C1815E6896C006F2E43 /* SBJsonUTF8Stream.h */,
+ F6D85C1915E6896C006F2E43 /* SBJsonUTF8Stream.m */,
+ F6D85C1A15E6896C006F2E43 /* SBJsonWriter.h */,
+ F6D85C1B15E6896C006F2E43 /* SBJsonWriter.m */,
+ );
+ name = json;
+ sourceTree = "<group>";
+ };
+ F65BB75A15F2883E00CA6E95 /* tabs */ = {
+ isa = PBXGroup;
+ children = (
+ F6BA01DE15D1C4A500D104F1 /* AppDelegate.h */,
+ F6BA01DF15D1C4A500D104F1 /* AppDelegate.m */,
+ );
+ name = tabs;
+ sourceTree = "<group>";
+ };
+ F666E2EE160270D40048FDA2 /* optionview */ = {
+ isa = PBXGroup;
+ children = (
+ 4409DDAA161514B6002AC326 /* Options.h */,
+ 4409DDA8161514B2002AC326 /* Options.m */,
+ );
+ name = optionview;
+ sourceTree = "<group>";
+ };
+ F6BA01C015D1C4A500D104F1 = {
+ isa = PBXGroup;
+ children = (
+ F622AFC61608FF870020027E /* ZBarSDK */,
+ F61417671601079B00960251 /* libiconv.dylib */,
+ F61417651601078400960251 /* QuartzCore.framework */,
+ F61417631601077200960251 /* CoreVideo.framework */,
+ F61417611601076A00960251 /* CoreMedia.framework */,
+ F614175F1601076200960251 /* AVFoundation.framework */,
+ F65BB74F15F2845200CA6E95 /* Resources */,
+ F6BA01D515D1C4A500D104F1 /* Classes */,
+ F6BA01CE15D1C4A500D104F1 /* Frameworks */,
+ F6BA01CC15D1C4A500D104F1 /* Products */,
+ );
+ sourceTree = "<group>";
+ };
+ F6BA01CC15D1C4A500D104F1 /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ F6BA01CB15D1C4A500D104F1 /* Minrva.app */,
+ );
+ name = Products;
+ sourceTree = "<group>";
+ };
+ F6BA01CE15D1C4A500D104F1 /* Frameworks */ = {
+ isa = PBXGroup;
+ children = (
+ F6DBCEEC15E6D7EA00192633 /* MapKit.framework */,
+ F6DBCEEA15E6D78A00192633 /* ImageIO.framework */,
+ F6BA01CF15D1C4A500D104F1 /* UIKit.framework */,
+ F6BA01D115D1C4A500D104F1 /* Foundation.framework */,
+ F6BA01D315D1C4A500D104F1 /* CoreGraphics.framework */,
+ F6BA020115D1C4A500D104F1 /* SenTestingKit.framework */,
+ );
+ name = Frameworks;
+ sourceTree = "<group>";
+ };
+ F6BA01D515D1C4A500D104F1 /* Classes */ = {
+ isa = PBXGroup;
+ children = (
+ F6BA01D615D1C4A500D104F1 /* core */,
+ F65BB75215F2866D00CA6E95 /* display */,
+ F65BB75315F2867A00CA6E95 /* loanabletech */,
+ F65BB75415F2869800CA6E95 /* scanner */,
+ F65BB75515F286A200CA6E95 /* vufind */,
+ F65BB75615F286B500CA6E95 /* wayfinder */,
+ );
+ name = Classes;
+ path = minrva;
+ sourceTree = "<group>";
+ };
+ F6BA01D615D1C4A500D104F1 /* core */ = {
+ isa = PBXGroup;
+ children = (
+ F666E2EE160270D40048FDA2 /* optionview */,
+ F6E7E96E15F92E1900179C1B /* dynlabel */,
+ F6189EFC15F7DBE900090DF6 /* touch */,
+ F65BB75A15F2883E00CA6E95 /* tabs */,
+ F65BB75915F2881A00CA6E95 /* json */,
+ F65BB75815F287CF00CA6E95 /* cache */,
+ F65BB75715F287BB00CA6E95 /* config */,
+ );
+ name = core;
+ sourceTree = "<group>";
+ };
+ F6E7E96E15F92E1900179C1B /* dynlabel */ = {
+ isa = PBXGroup;
+ children = (
+ F6E7E97015F92E4E00179C1B /* UILabel+dynamicSizeMe.h */,
+ F6E7E97115F92E4E00179C1B /* UILabel+dynamicSizeMe.m */,
+ );
+ name = dynlabel;
+ sourceTree = "<group>";
+ };
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+ F6BA01CA15D1C4A500D104F1 /* Minrva */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = F6BA021215D1C4A600D104F1 /* Build configuration list for PBXNativeTarget "Minrva" */;
+ buildPhases = (
+ F6BA01C715D1C4A500D104F1 /* Sources */,
+ F6BA01C815D1C4A500D104F1 /* Frameworks */,
+ F6BA01C915D1C4A500D104F1 /* Resources */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = Minrva;
+ productName = minrva;
+ productReference = F6BA01CB15D1C4A500D104F1 /* Minrva.app */;
+ productType = "com.apple.product-type.application";
+ };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+ F6BA01C215D1C4A500D104F1 /* Project object */ = {
+ isa = PBXProject;
+ attributes = {
+ LastUpgradeCheck = 0440;
+ };
+ buildConfigurationList = F6BA01C515D1C4A500D104F1 /* Build configuration list for PBXProject "Minrva" */;
+ compatibilityVersion = "Xcode 3.2";
+ developmentRegion = English;
+ hasScannedForEncodings = 0;
+ knownRegions = (
+ en,
+ );
+ mainGroup = F6BA01C015D1C4A500D104F1;
+ productRefGroup = F6BA01CC15D1C4A500D104F1 /* Products */;
+ projectDirPath = "";
+ projectRoot = "";
+ targets = (
+ F6BA01CA15D1C4A500D104F1 /* Minrva */,
+ );
+ };
+/* End PBXProject section */
+
+/* Begin PBXResourcesBuildPhase section */
+ F6BA01C915D1C4A500D104F1 /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ F6BA01DA15D1C4A500D104F1 /* InfoPlist.strings in Resources */,
+ F6BA01F115D1C4A500D104F1 /* Display.xib in Resources */,
+ F6BA021915D1C4C200D104F1 /* first.png in Resources */,
+ F6BA021B15D1C4F800D104F1 /* second.png in Resources */,
+ F66C7AFC15D2AD72009810A2 /* Scanner.xib in Resources */,
+ F62E0FA615D2B0A4005DF6F2 /* third.png in Resources */,
+ F62E0FAE15D2B3F9005DF6F2 /* fifth.png in Resources */,
+ F62E0FB015D2B3FE005DF6F2 /* fourth.png in Resources */,
+ F62E0FB515D2B4E8005DF6F2 /* WayFinder.xib in Resources */,
+ F62E0FBA15D2B62C005DF6F2 /* LoanableTech.xib in Resources */,
+ F62E0FBC15D2B881005DF6F2 /* background.png in Resources */,
+ F62E0FBE15D2BD08005DF6F2 /* header.png in Resources */,
+ F622AFE51608FF870020027E /* zbar-back.png in Resources */,
+ F622AFE61608FF870020027E /* zbar-help.html in Resources */,
+ F622AFE71608FF870020027E /* zbar-helpicons.png in Resources */,
+ F622AFE81608FF870020027E /* zbar-samples.png in Resources */,
+ 4409DD9E1615141E002AC326 /* VuFind.xib in Resources */,
+ 4409DDA116151430002AC326 /* Options.xib in Resources */,
+ 4409DDA316151445002AC326 /* properties.plist in Resources */,
+ 4409DDA516151464002AC326 /* Icon.png in Resources */,
+ 4409DDA716151471002AC326 /* scanner_example.jpg in Resources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+ F6BA01C715D1C4A500D104F1 /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ F6BA01DC15D1C4A500D104F1 /* main.m in Sources */,
+ F6BA01E015D1C4A500D104F1 /* AppDelegate.m in Sources */,
+ F6BA01E315D1C4A500D104F1 /* Display.m in Sources */,
+ F6BA022715D1C65300D104F1 /* Scanner.m in Sources */,
+ F62E0FB415D2B4E8005DF6F2 /* WayFinder.m in Sources */,
+ F62E0FB915D2B62C005DF6F2 /* LoanableTech.m in Sources */,
+ F6D85C1C15E6896C006F2E43 /* NSObject+SBJson.m in Sources */,
+ F6D85C1D15E6896C006F2E43 /* SBJsonParser.m in Sources */,
+ F6D85C1E15E6896C006F2E43 /* SBJsonStreamParser.m in Sources */,
+ F6D85C1F15E6896C006F2E43 /* SBJsonStreamParserAccumulator.m in Sources */,
+ F6D85C2015E6896C006F2E43 /* SBJsonStreamParserAdapter.m in Sources */,
+ F6D85C2115E6896C006F2E43 /* SBJsonStreamParserState.m in Sources */,
+ F6D85C2215E6896C006F2E43 /* SBJsonStreamWriter.m in Sources */,
+ F6D85C2315E6896C006F2E43 /* SBJsonStreamWriterAccumulator.m in Sources */,
+ F6D85C2415E6896C006F2E43 /* SBJsonStreamWriterState.m in Sources */,
+ F6D85C2515E6896C006F2E43 /* SBJsonTokeniser.m in Sources */,
+ F6D85C2615E6896C006F2E43 /* SBJsonUTF8Stream.m in Sources */,
+ F6D85C2715E6896C006F2E43 /* SBJsonWriter.m in Sources */,
+ F65BB74215F27AB500CA6E95 /* MKAnnotationView+WebCache.m in Sources */,
+ F65BB74315F27AB500CA6E95 /* SDImageCache.m in Sources */,
+ F65BB74415F27AB500CA6E95 /* SDWebImageDecoder.m in Sources */,
+ F65BB74515F27AB500CA6E95 /* SDWebImageDownloader.m in Sources */,
+ F65BB74615F27AB500CA6E95 /* SDWebImageManager.m in Sources */,
+ F65BB74715F27AB500CA6E95 /* SDWebImagePrefetcher.m in Sources */,
+ F65BB74815F27AB500CA6E95 /* UIButton+WebCache.m in Sources */,
+ F65BB74915F27AB500CA6E95 /* UIImageView+WebCache.m in Sources */,
+ F6AF637E15F6A6BA00A8C944 /* VuFind.m in Sources */,
+ F6189F0015F7DC5500090DF6 /* TouchImageViewController.m in Sources */,
+ F6E7E97215F92E4E00179C1B /* UILabel+dynamicSizeMe.m in Sources */,
+ 4409DDA9161514B2002AC326 /* Options.m in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXVariantGroup section */
+ F6BA01D815D1C4A500D104F1 /* InfoPlist.strings */ = {
+ isa = PBXVariantGroup;
+ children = (
+ F6BA01D915D1C4A500D104F1 /* en */,
+ );
+ name = InfoPlist.strings;
+ sourceTree = "<group>";
+ };
+ F6BA01EF15D1C4A500D104F1 /* Display.xib */ = {
+ isa = PBXVariantGroup;
+ children = (
+ F6BA01F015D1C4A500D104F1 /* en */,
+ );
+ name = Display.xib;
+ path = minrva;
+ sourceTree = "<group>";
+ };
+/* End PBXVariantGroup section */
+
+/* Begin XCBuildConfiguration section */
+ F6BA021015D1C4A600D104F1 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ ARCHS = (
+ armv6,
+ armv7,
+ );
+ CLANG_ENABLE_OBJC_ARC = YES;
+ CODE_SIGN_IDENTITY = "iPhone Developer";
+ "CODE_SIGN_IDENTITY[sdk=*]" = "iPhone Developer";
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
+ COPY_PHASE_STRIP = NO;
+ GCC_C_LANGUAGE_STANDARD = gnu99;
+ GCC_DYNAMIC_NO_PIC = NO;
+ GCC_OPTIMIZATION_LEVEL = 0;
+ GCC_PREPROCESSOR_DEFINITIONS = (
+ "DEBUG=1",
+ "$(inherited)",
+ );
+ GCC_SYMBOLS_PRIVATE_EXTERN = NO;
+ GCC_THUMB_SUPPORT = NO;
+ GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
+ GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ HEADER_SEARCH_PATHS = "";
+ IPHONEOS_DEPLOYMENT_TARGET = 4.0;
+ PROVISIONING_PROFILE = "";
+ "PROVISIONING_PROFILE[sdk=*]" = "";
+ "PROVISIONING_PROFILE[sdk=iphoneos*]" = "";
+ SDKROOT = iphoneos;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ USER_HEADER_SEARCH_PATHS = "";
+ };
+ name = Debug;
+ };
+ F6BA021115D1C4A600D104F1 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ ALWAYS_SEARCH_USER_PATHS = NO;
+ ARCHS = (
+ armv6,
+ armv7,
+ );
+ CLANG_ENABLE_OBJC_ARC = YES;
+ CODE_SIGN_IDENTITY = "iPhone Distribution";
+ "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
+ COPY_PHASE_STRIP = YES;
+ GCC_C_LANGUAGE_STANDARD = gnu99;
+ GCC_THUMB_SUPPORT = NO;
+ GCC_VERSION = com.apple.compilers.llvm.clang.1_0;
+ GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ HEADER_SEARCH_PATHS = "";
+ IPHONEOS_DEPLOYMENT_TARGET = 4.0;
+ OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1";
+ PROVISIONING_PROFILE = "";
+ "PROVISIONING_PROFILE[sdk=iphoneos*]" = "";
+ SDKROOT = iphoneos;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ USER_HEADER_SEARCH_PATHS = "";
+ VALIDATE_PRODUCT = YES;
+ };
+ name = Release;
+ };
+ F6BA021315D1C4A600D104F1 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = "minrva/Minrva-Prefix.pch";
+ GCC_THUMB_SUPPORT = NO;
+ INFOPLIST_FILE = "minrva/Minrva-Info.plist";
+ IPHONEOS_DEPLOYMENT_TARGET = 4.0;
+ LIBRARY_SEARCH_PATHS = (
+ "$(inherited)",
+ "\"$(SRCROOT)/ZBarSDK\"",
+ );
+ PRODUCT_NAME = Minrva;
+ WRAPPER_EXTENSION = app;
+ };
+ name = Debug;
+ };
+ F6BA021415D1C4A600D104F1 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ GCC_PRECOMPILE_PREFIX_HEADER = YES;
+ GCC_PREFIX_HEADER = "minrva/Minrva-Prefix.pch";
+ GCC_THUMB_SUPPORT = NO;
+ INFOPLIST_FILE = "minrva/Minrva-Info.plist";
+ IPHONEOS_DEPLOYMENT_TARGET = 4.0;
+ LIBRARY_SEARCH_PATHS = (
+ "$(inherited)",
+ "\"$(SRCROOT)/ZBarSDK\"",
+ );
+ PRODUCT_NAME = Minrva;
+ WRAPPER_EXTENSION = app;
+ };
+ name = Release;
+ };
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+ F6BA01C515D1C4A500D104F1 /* Build configuration list for PBXProject "Minrva" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ F6BA021015D1C4A600D104F1 /* Debug */,
+ F6BA021115D1C4A600D104F1 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ F6BA021215D1C4A600D104F1 /* Build configuration list for PBXNativeTarget "Minrva" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ F6BA021315D1C4A600D104F1 /* Debug */,
+ F6BA021415D1C4A600D104F1 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+/* End XCConfigurationList section */
+ };
+ rootObject = F6BA01C215D1C4A500D104F1 /* Project object */;
+}
4 README.md
@@ -0,0 +1,4 @@
+Minrva-iOS
+==========
+
+Minrva-iOS
45 ZBarSDK/Headers/ZBarSDK/ZBarCameraSimulator.h
@@ -0,0 +1,45 @@
+//------------------------------------------------------------------------
+// Copyright 2010-2011 (c) Jeff Brown <spadix@users.sourceforge.net>
+//
+// This file is part of the ZBar Bar Code Reader.
+//
+// The ZBar Bar Code Reader is free software; you can redistribute it
+// and/or modify it under the terms of the GNU Lesser Public License as
+// published by the Free Software Foundation; either version 2.1 of
+// the License, or (at your option) any later version.
+//
+// The ZBar Bar Code Reader is distributed in the hope that it will be
+// useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+// of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser Public License for more details.
+//
+// You should have received a copy of the GNU Lesser Public License
+// along with the ZBar Bar Code Reader; if not, write to the Free
+// Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+// Boston, MA 02110-1301 USA
+//
+// http://sourceforge.net/projects/zbar
+//------------------------------------------------------------------------
+
+@class ZBarReaderView;
+
+// hack around missing simulator support for AVCapture interfaces
+
+@interface ZBarCameraSimulator
+ : NSObject
+ < UINavigationControllerDelegate,
+ UIImagePickerControllerDelegate,
+ UIPopoverControllerDelegate >
+{
+ UIViewController *viewController;
+ ZBarReaderView *readerView;
+ UIImagePickerController *picker;
+ UIPopoverController *pickerPopover;
+}
+
+- (id) initWithViewController: (UIViewController*) viewController;
+- (void) takePicture;
+
+@property (nonatomic, assign) ZBarReaderView *readerView;
+
+@end
111 ZBarSDK/Headers/ZBarSDK/ZBarCaptureReader.h
@@ -0,0 +1,111 @@
+//------------------------------------------------------------------------
+// Copyright 2010 (c) Jeff Brown <spadix@users.sourceforge.net>
+//
+// This file is part of the ZBar Bar Code Reader.
+//
+// The ZBar Bar Code Reader is free software; you can redistribute it
+// and/or modify it under the terms of the GNU Lesser Public License as
+// published by the Free Software Foundation; either version 2.1 of
+// the License, or (at your option) any later version.
+//
+// The ZBar Bar Code Reader is distributed in the hope that it will be
+// useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+// of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser Public License for more details.
+//
+// You should have received a copy of the GNU Lesser Public License
+// along with the ZBar Bar Code Reader; if not, write to the Free
+// Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+// Boston, MA 02110-1301 USA
+//
+// http://sourceforge.net/projects/zbar
+//------------------------------------------------------------------------
+
+#import <CoreGraphics/CoreGraphics.h>
+#import "ZBarImageScanner.h"
+
+@class AVCaptureVideoDataOutput, AVCaptureOutput;
+@class ZBarCaptureReader, ZBarCVImage;
+
+@protocol ZBarCaptureDelegate <NSObject>
+
+// called when a new barcode is detected. the image refers to the
+// video buffer and must not be retained for long
+- (void) captureReader: (ZBarCaptureReader*) captureReader
+ didReadNewSymbolsFromImage: (ZBarImage*) image;
+
+@optional
+// called when a potential/uncertain barcode is detected. will also
+// be called *after* captureReader:didReadNewSymbolsFromImage:
+// when good barcodes are detected
+- (void) captureReader: (ZBarCaptureReader*) captureReader
+ didTrackSymbols: (ZBarSymbolSet*) symbols;
+
+@end
+
+@interface ZBarCaptureReader
+ : NSObject
+{
+#if !TARGET_IPHONE_SIMULATOR
+ AVCaptureVideoDataOutput *captureOutput;
+ id<ZBarCaptureDelegate> captureDelegate;
+ ZBarImageScanner *scanner;
+ CGRect scanCrop;
+ CGSize size;
+ CGFloat framesPerSecond;
+ BOOL enableCache;
+
+ dispatch_queue_t queue;
+ ZBarImage *image;
+ ZBarCVImage *result;
+ volatile uint32_t state;
+ int framecnt;
+ unsigned width, height;
+ uint64_t t_frame, t_fps, t_scan;
+ CGFloat dt_frame;
+#endif
+}
+
+// supply a pre-configured image scanner
+- (id) initWithImageScanner: (ZBarImageScanner*) imageScanner;
+
+// this must be called before the session is started
+- (void) willStartRunning;
+
+// this must be called *before* the session is stopped
+- (void) willStopRunning;
+
+// clear the internal result cache
+- (void) flushCache;
+
+// capture the next frame after processing. the captured image will
+// follow the same delegate path as an image with decoded symbols.
+- (void) captureFrame;
+
+// the capture output. add this to an instance of AVCaptureSession
+@property (nonatomic, readonly) AVCaptureOutput *captureOutput;
+
+// delegate is notified of decode results and symbol tracking.
+@property (nonatomic, assign) id<ZBarCaptureDelegate> captureDelegate;
+
+// access to image scanner for configuration.
+@property (nonatomic, readonly) ZBarImageScanner *scanner;
+
+// region of image to scan in normalized coordinates.
+// NB horizontal crop currently ignored...
+@property (nonatomic, assign) CGRect scanCrop;
+
+// size of video frames.
+@property (nonatomic, readonly) CGSize size;
+
+// (quickly) gate the reader function without interrupting the video
+// stream. also flushes the cache when enabled. defaults to *NO*
+@property (nonatomic) BOOL enableReader;
+
+// current frame rate (for debug/optimization).
+// only valid when running
+@property (nonatomic, readonly) CGFloat framesPerSecond;
+
+@property (nonatomic) BOOL enableCache;
+
+@end
60 ZBarSDK/Headers/ZBarSDK/ZBarHelpController.h
@@ -0,0 +1,60 @@
+//------------------------------------------------------------------------
+// Copyright 2009-2010 (c) Jeff Brown <spadix@users.sourceforge.net>
+//
+// This file is part of the ZBar Bar Code Reader.
+//
+// The ZBar Bar Code Reader is free software; you can redistribute it
+// and/or modify it under the terms of the GNU Lesser Public License as
+// published by the Free Software Foundation; either version 2.1 of
+// the License, or (at your option) any later version.
+//
+// The ZBar Bar Code Reader is distributed in the hope that it will be
+// useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+// of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser Public License for more details.
+//
+// You should have received a copy of the GNU Lesser Public License
+// along with the ZBar Bar Code Reader; if not, write to the Free
+// Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+// Boston, MA 02110-1301 USA
+//
+// http://sourceforge.net/projects/zbar
+//------------------------------------------------------------------------
+
+#import <UIKit/UIKit.h>
+
+@class ZBarHelpController;
+
+@protocol ZBarHelpDelegate
+@optional
+
+- (void) helpControllerDidFinish: (ZBarHelpController*) help;
+
+@end
+
+
+// failure dialog w/a few useful tips
+
+@interface ZBarHelpController : UIViewController
+ < UIWebViewDelegate,
+ UIAlertViewDelegate >
+{
+ NSString *reason;
+ id delegate;
+ UIWebView *webView;
+ UIToolbar *toolbar;
+ UIBarButtonItem *doneBtn, *backBtn, *space;
+ NSURL *linkURL;
+ NSUInteger orientations;
+}
+
+@property (nonatomic, assign) id<ZBarHelpDelegate> delegate;
+
+// designated initializer
+- (id) initWithReason: (NSString*) reason;
+
+- (BOOL) isInterfaceOrientationSupported: (UIInterfaceOrientation) orientation;
+- (void) setInterfaceOrientation: (UIInterfaceOrientation) orientation
+ supported: (BOOL) supported;
+
+@end
69 ZBarSDK/Headers/ZBarSDK/ZBarImage.h
@@ -0,0 +1,69 @@
+//------------------------------------------------------------------------
+// Copyright 2009 (c) Jeff Brown <spadix@users.sourceforge.net>
+//
+// This file is part of the ZBar Bar Code Reader.
+//
+// The ZBar Bar Code Reader is free software; you can redistribute it
+// and/or modify it under the terms of the GNU Lesser Public License as
+// published by the Free Software Foundation; either version 2.1 of
+// the License, or (at your option) any later version.
+//
+// The ZBar Bar Code Reader is distributed in the hope that it will be
+// useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+// of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser Public License for more details.
+//
+// You should have received a copy of the GNU Lesser Public License
+// along with the ZBar Bar Code Reader; if not, write to the Free
+// Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+// Boston, MA 02110-1301 USA
+//
+// http://sourceforge.net/projects/zbar
+//------------------------------------------------------------------------
+
+#import <UIKit/UIKit.h>
+#import "zbar.h"
+#import "ZBarSymbol.h"
+
+#ifdef __cplusplus
+using namespace zbar;
+#endif
+
+// Obj-C wrapper for ZBar image
+
+@interface ZBarImage : NSObject
+{
+ zbar_image_t *zimg;
+ double t_convert;
+}
+
+@property (nonatomic) unsigned long format;
+@property (nonatomic) unsigned sequence;
+@property (nonatomic) CGSize size;
+@property (nonatomic) CGRect crop;
+@property (readonly, nonatomic) const void *data;
+@property (readonly, nonatomic) unsigned long dataLength;
+@property (copy, nonatomic) ZBarSymbolSet *symbols;
+@property (readonly, nonatomic) zbar_image_t *zbarImage;
+@property (readonly, nonatomic) UIImage *UIImage;
+
+- (id) initWithImage: (zbar_image_t*) image;
+- (id) initWithCGImage: (CGImageRef) image;
+- (id) initWithCGImage: (CGImageRef) image
+ size: (CGSize) size;
+- (id) initWithCGImage: (CGImageRef) image
+ crop: (CGRect) crop
+ size: (CGSize) size;
+
+- (void) setData: (const void*) data
+ withLength: (unsigned long) length;
+- (UIImage*) UIImageWithOrientation: (UIImageOrientation) imageOrientation;
+- (void) cleanup;
+
++ (unsigned long) fourcc: (NSString*) format;
+
+#if 0
+- convertToFormat: (unsigned long) format;
+#endif
+
+@end
51 ZBarSDK/Headers/ZBarSDK/ZBarImageScanner.h
@@ -0,0 +1,51 @@
+//------------------------------------------------------------------------
+// Copyright 2009 (c) Jeff Brown <spadix@users.sourceforge.net>
+//
+// This file is part of the ZBar Bar Code Reader.
+//
+// The ZBar Bar Code Reader is free software; you can redistribute it
+// and/or modify it under the terms of the GNU Lesser Public License as
+// published by the Free Software Foundation; either version 2.1 of
+// the License, or (at your option) any later version.
+//
+// The ZBar Bar Code Reader is distributed in the hope that it will be
+// useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+// of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser Public License for more details.
+//
+// You should have received a copy of the GNU Lesser Public License
+// along with the ZBar Bar Code Reader; if not, write to the Free
+// Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+// Boston, MA 02110-1301 USA
+//
+// http://sourceforge.net/projects/zbar
+//------------------------------------------------------------------------
+
+#import <Foundation/Foundation.h>
+#import "zbar.h"
+#import "ZBarImage.h"
+
+#ifdef __cplusplus
+using namespace zbar;
+#endif
+
+// Obj-C wrapper for ZBar image scanner
+
+@interface ZBarImageScanner : NSObject
+{
+ zbar_image_scanner_t *scanner;
+}
+
+@property (nonatomic) BOOL enableCache;
+@property (readonly, nonatomic) ZBarSymbolSet *results;
+
+// decoder configuration
+- (void) parseConfig: (NSString*) configStr;
+- (void) setSymbology: (zbar_symbol_type_t) symbology
+ config: (zbar_config_t) config
+ to: (int) value;
+
+// image scanning interface
+- (NSInteger) scanImage: (ZBarImage*) image;
+
+@end
142 ZBarSDK/Headers/ZBarSDK/ZBarReaderController.h
@@ -0,0 +1,142 @@
+//------------------------------------------------------------------------
+// Copyright 2009-2010 (c) Jeff Brown <spadix@users.sourceforge.net>
+//
+// This file is part of the ZBar Bar Code Reader.
+//
+// The ZBar Bar Code Reader is free software; you can redistribute it
+// and/or modify it under the terms of the GNU Lesser Public License as
+// published by the Free Software Foundation; either version 2.1 of
+// the License, or (at your option) any later version.
+//
+// The ZBar Bar Code Reader is distributed in the hope that it will be
+// useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+// of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser Public License for more details.
+//
+// You should have received a copy of the GNU Lesser Public License
+// along with the ZBar Bar Code Reader; if not, write to the Free
+// Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+// Boston, MA 02110-1301 USA
+//
+// http://sourceforge.net/projects/zbar
+//------------------------------------------------------------------------
+
+#import <UIKit/UIKit.h>
+#import "ZBarImageScanner.h"
+
+#ifdef __cplusplus
+using namespace zbar;
+#endif
+
+typedef enum {
+ // default interface provided by UIImagePickerController - user manually
+ // captures an image by pressing a button
+ ZBarReaderControllerCameraModeDefault = 0,
+
+ // automatically scan by taking screenshots with UIGetScreenImage().
+ // resolution is limited by the screen, so this is inappropriate for
+ // longer codes
+ ZBarReaderControllerCameraModeSampling,
+
+ // automatically scan by rapidly taking pictures with takePicture.
+ // tradeoff resolution with frame rate by adjusting the crop, and size
+ // properties of the reader along with the density configs of the image
+ // scanner
+ ZBarReaderControllerCameraModeSequence,
+
+} ZBarReaderControllerCameraMode;
+
+
+@class ZBarReaderController, ZBarHelpController;
+
+@protocol ZBarReaderDelegate <UIImagePickerControllerDelegate>
+@optional
+
+// called when no barcode is found in an image selected by the user.
+// if retry is NO, the delegate *must* dismiss the controller
+- (void) readerControllerDidFailToRead: (ZBarReaderController*) reader
+ withRetry: (BOOL) retry;
+
+@end
+
+
+@interface ZBarReaderController
+ : UIImagePickerController
+ < UINavigationControllerDelegate,
+ UIImagePickerControllerDelegate >
+{
+ ZBarImageScanner *scanner;
+ ZBarHelpController *help;
+ UIView *overlay, *boxView;
+ CALayer *boxLayer;
+
+ UIToolbar *toolbar;
+ UIBarButtonItem *cancelBtn, *scanBtn, *space[3];
+ UIButton *infoBtn;
+
+ id <ZBarReaderDelegate> readerDelegate;
+ BOOL showsZBarControls, showsHelpOnFail, takesPicture, enableCache;
+ ZBarReaderControllerCameraMode cameraMode;
+ CGRect scanCrop;
+ NSInteger maxScanDimension;
+
+ BOOL hasOverlay, sampling;
+ uint64_t t_frame;
+ double dt_frame;
+
+ ZBarSymbol *symbol;
+}
+
+// access to configure image scanner
+@property (readonly, nonatomic) ZBarImageScanner *scanner;
+
+// barcode result recipient (NB don't use delegate)
+@property (nonatomic, assign) id <ZBarReaderDelegate> readerDelegate;
+
+// whether to use alternate control set
+@property (nonatomic) BOOL showsZBarControls;
+
+// whether to display helpful information when decoding fails
+@property (nonatomic) BOOL showsHelpOnFail;
+
+// how to use the camera (when sourceType == Camera)
+@property (nonatomic) ZBarReaderControllerCameraMode cameraMode;
+
+// whether to outline symbols with the green tracking box.
+@property (nonatomic) BOOL tracksSymbols;
+
+// whether to automatically take a full picture when a barcode is detected
+// (when cameraMode == Sampling)
+@property (nonatomic) BOOL takesPicture;
+
+// whether to use the "cache" for realtime modes (default YES). this can be
+// used to safely disable the inter-frame consistency and duplicate checks,
+// speeding up recognition, iff:
+// 1. the controller is dismissed when a barcode is read and
+// 2. unreliable symbologies are disabled (all EAN/UPC variants and I2/5)
+@property (nonatomic) BOOL enableCache;
+
+// crop images for scanning. the original image will be cropped to this
+// rectangle before scanning. the rectangle is normalized to the image size
+// and aspect ratio; useful values will place the rectangle between 0 and 1
+// on each axis, where the x-axis corresponds to the image major axis.
+// defaults to the full image (0, 0, 1, 1).
+@property (nonatomic) CGRect scanCrop;
+
+// scale image to scan. after cropping, the image will be scaled if
+// necessary, such that neither of its dimensions exceed this value.
+// defaults to 640.
+@property (nonatomic) NSInteger maxScanDimension;
+
+// display the built-in help browser. for use with custom overlays if
+// you don't also want to create your own help view. only send this
+// message when the reader is displayed. the argument will be passed
+// to the onZBarHelp() javascript function.
+- (void) showHelpWithReason: (NSString*) reason;
+
+// direct scanner interface - scan UIImage and return something enumerable
+- (id <NSFastEnumeration>) scanImage: (CGImageRef) image;
+
+@end
+
+extern NSString* const ZBarReaderControllerResults;
140 ZBarSDK/Headers/ZBarSDK/ZBarReaderView.h
@@ -0,0 +1,140 @@
+//------------------------------------------------------------------------
+// Copyright 2010 (c) Jeff Brown <spadix@users.sourceforge.net>
+//
+// This file is part of the ZBar Bar Code Reader.
+//
+// The ZBar Bar Code Reader is free software; you can redistribute it
+// and/or modify it under the terms of the GNU Lesser Public License as
+// published by the Free Software Foundation; either version 2.1 of
+// the License, or (at your option) any later version.
+//
+// The ZBar Bar Code Reader is distributed in the hope that it will be
+// useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+// of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser Public License for more details.
+//
+// You should have received a copy of the GNU Lesser Public License
+// along with the ZBar Bar Code Reader; if not, write to the Free
+// Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+// Boston, MA 02110-1301 USA
+//
+// http://sourceforge.net/projects/zbar
+//------------------------------------------------------------------------
+
+#import <UIKit/UIKit.h>
+#import "ZBarImageScanner.h"
+
+@class AVCaptureSession, AVCaptureDevice;
+@class CALayer;
+@class ZBarImageScanner, ZBarCaptureReader, ZBarReaderView;
+
+// delegate is notified of decode results.
+
+@protocol ZBarReaderViewDelegate < NSObject >
+
+- (void) readerView: (ZBarReaderView*) readerView
+ didReadSymbols: (ZBarSymbolSet*) symbols
+ fromImage: (UIImage*) image;
+
+@optional
+- (void) readerViewDidStart: (ZBarReaderView*) readerView;
+- (void) readerView: (ZBarReaderView*) readerView
+ didStopWithError: (NSError*) error;
+
+@end
+
+// read barcodes from the displayed video preview. the view maintains
+// a complete video capture session feeding a ZBarCaptureReader and
+// presents the associated preview with symbol tracking annotations.
+
+@interface ZBarReaderView
+ : UIView
+{
+ id<ZBarReaderViewDelegate> readerDelegate;
+ ZBarCaptureReader *captureReader;
+ CGRect scanCrop, effectiveCrop;
+ CGAffineTransform previewTransform;
+ CGFloat zoom, zoom0, maxZoom;
+ UIColor *trackingColor;
+ BOOL tracksSymbols, showsFPS;
+ NSInteger torchMode;
+ UIInterfaceOrientation interfaceOrientation;
+ NSTimeInterval animationDuration;
+
+ CALayer *preview, *overlay, *tracking, *cropLayer;
+ UIView *fpsView;
+ UILabel *fpsLabel;
+ UIPinchGestureRecognizer *pinch;
+ CGFloat imageScale;
+ CGSize imageSize;
+ BOOL started, running;
+}
+
+// supply a pre-configured image scanner.
+- (id) initWithImageScanner: (ZBarImageScanner*) imageScanner;
+
+// start the video stream and barcode reader.
+- (void) start;
+
+// stop the video stream and barcode reader.
+- (void) stop;
+
+// clear the internal result cache
+- (void) flushCache;
+
+// compensate for device/camera/interface orientation
+- (void) willRotateToInterfaceOrientation: (UIInterfaceOrientation) orient
+ duration: (NSTimeInterval) duration;
+
+// delegate is notified of decode results.
+@property (nonatomic, assign) id<ZBarReaderViewDelegate> readerDelegate;
+
+// access to image scanner for configuration.
+@property (nonatomic, readonly) ZBarImageScanner *scanner;
+
+// whether to display the tracking annotation for uncertain barcodes
+// (default YES).
+@property (nonatomic) BOOL tracksSymbols;
+
+// color of the tracking box (default green)
+@property (nonatomic, retain) UIColor *trackingColor;
+
+// enable pinch gesture recognition for zooming the preview/decode
+// (default YES).
+@property (nonatomic) BOOL allowsPinchZoom;
+
+// torch mode to set automatically (default Auto).
+@property (nonatomic) NSInteger torchMode;
+
+// whether to display the frame rate for debug/configuration
+// (default NO).
+@property (nonatomic) BOOL showsFPS;
+
+// zoom scale factor applied to video preview *and* scanCrop.
+// also updated by pinch-zoom gesture. clipped to range [1,maxZoom],
+// defaults to 1.25
+@property (nonatomic) CGFloat zoom;
+- (void) setZoom: (CGFloat) zoom
+ animated: (BOOL) animated;
+
+// maximum settable zoom factor.
+@property (nonatomic) CGFloat maxZoom;
+
+// the region of the image that will be scanned. normalized coordinates.
+@property (nonatomic) CGRect scanCrop;
+
+// additional transform applied to video preview.
+// (NB *not* applied to scan crop)
+@property (nonatomic) CGAffineTransform previewTransform;
+
+// specify an alternate capture device.
+@property (nonatomic, retain) AVCaptureDevice *device;
+
+// direct access to the capture session. warranty void if opened...
+@property (nonatomic, readonly) AVCaptureSession *session;
+@property (nonatomic, readonly) ZBarCaptureReader *captureReader;
+
+// this flag still works, but its use is deprecated
+@property (nonatomic) BOOL enableCache;
+
+@end
130 ZBarSDK/Headers/ZBarSDK/ZBarReaderViewController.h
@@ -0,0 +1,130 @@
+//------------------------------------------------------------------------
+// Copyright 2010 (c) Jeff Brown <spadix@users.sourceforge.net>
+//
+// This file is part of the ZBar Bar Code Reader.
+//
+// The ZBar Bar Code Reader is free software; you can redistribute it
+// and/or modify it under the terms of the GNU Lesser Public License as
+// published by the Free Software Foundation; either version 2.1 of
+// the License, or (at your option) any later version.
+//
+// The ZBar Bar Code Reader is distributed in the hope that it will be
+// useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+// of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser Public License for more details.
+//
+// You should have received a copy of the GNU Lesser Public License
+// along with the ZBar Bar Code Reader; if not, write to the Free
+// Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+// Boston, MA 02110-1301 USA
+//
+// http://sourceforge.net/projects/zbar
+//------------------------------------------------------------------------
+
+#import <UIKit/UIKit.h>
+#import "ZBarReaderController.h"
+
+// orientation set support
+#define ZBarOrientationMask(orient) (1 << orient)
+#define ZBarOrientationMaskAll \
+ (ZBarOrientationMask(UIInterfaceOrientationPortrait) | \
+ ZBarOrientationMask(UIInterfaceOrientationPortraitUpsideDown) | \
+ ZBarOrientationMask(UIInterfaceOrientationLandscapeLeft) | \
+ ZBarOrientationMask(UIInterfaceOrientationLandscapeRight))
+
+@class ZBarReaderView, ZBarCameraSimulator;
+
+// drop in video scanning replacement for ZBarReaderController.
+// this is a thin controller around a ZBarReaderView that adds the UI
+// controls and select functionality offered by ZBarReaderController.
+// Automatically falls back to a ZBarReaderController if video APIs
+// are unavailable (eg for OS < 4.0)
+
+@interface ZBarReaderViewController
+ : UIViewController
+{
+ ZBarImageScanner *scanner;
+ id <ZBarReaderDelegate> readerDelegate;
+ ZBarReaderView *readerView;
+ UIView *cameraOverlayView;
+ CGAffineTransform cameraViewTransform;
+ CGRect scanCrop;
+ NSUInteger supportedOrientationsMask;
+ UIImagePickerControllerCameraDevice cameraDevice;
+ UIImagePickerControllerCameraFlashMode cameraFlashMode;
+ UIImagePickerControllerQualityType videoQuality;
+ BOOL showsZBarControls, tracksSymbols, enableCache;
+
+ ZBarHelpController *helpController;
+ UIView *controls, *shutter;
+ BOOL didHideStatusBar, rotating;
+ ZBarCameraSimulator *cameraSim;
+}
+
+// access to configure image scanner
+@property (nonatomic, readonly) ZBarImageScanner *scanner;
+
+// barcode result recipient
+@property (nonatomic, assign) id <ZBarReaderDelegate> readerDelegate;
+
+// whether to use alternate control set
+@property (nonatomic) BOOL showsZBarControls;
+
+// whether to show the green tracking box. note that, even when
+// enabled, the box will only be visible when scanning EAN and I2/5.
+@property (nonatomic) BOOL tracksSymbols;
+
+// interface orientation support. bit-mask of accepted orientations.
+// see eg ZBarOrientationMask() and ZBarOrientationMaskAll
+@property (nonatomic) NSUInteger supportedOrientationsMask;
+
+// crop images for scanning. the image will be cropped to this
+// rectangle before scanning. the rectangle is normalized to the
+// image size and aspect ratio; useful values will place the rectangle
+// between 0 and 1 on each axis, where the x-axis corresponds to the
+// image major axis. defaults to the full image (0, 0, 1, 1).
+@property (nonatomic) CGRect scanCrop;
+
+// provide a custom overlay. note that this can be used with
+// showsZBarControls enabled (but not if you want backward compatibility)
+@property (nonatomic, retain) UIView *cameraOverlayView;
+
+// transform applied to the preview image.
+@property (nonatomic) CGAffineTransform cameraViewTransform;
+
+// display the built-in help browser. the argument will be passed to
+// the onZBarHelp() javascript function.
+- (void) showHelpWithReason: (NSString*) reason;
+
+// capture the next frame and send it over the usual delegate path.
+- (void) takePicture;
+
+// these attempt to emulate UIImagePickerController
++ (BOOL) isCameraDeviceAvailable: (UIImagePickerControllerCameraDevice) cameraDevice;
++ (BOOL) isFlashAvailableForCameraDevice: (UIImagePickerControllerCameraDevice) cameraDevice;
++ (NSArray*) availableCaptureModesForCameraDevice: (UIImagePickerControllerCameraDevice) cameraDevice;
+@property(nonatomic) UIImagePickerControllerCameraDevice cameraDevice;
+@property(nonatomic) UIImagePickerControllerCameraFlashMode cameraFlashMode;
+@property(nonatomic) UIImagePickerControllerCameraCaptureMode cameraCaptureMode;
+@property(nonatomic) UIImagePickerControllerQualityType videoQuality;
+
+// direct access to the ZBarReaderView
+@property (nonatomic, readonly) ZBarReaderView *readerView;
+
+// this flag still works, but its use is deprecated
+@property (nonatomic) BOOL enableCache;
+
+// these are present only for backward compatibility.
+// they will error if inappropriate/unsupported values are set
+@property (nonatomic) UIImagePickerControllerSourceType sourceType; // Camera
+@property (nonatomic) BOOL allowsEditing; // NO
+@property (nonatomic) BOOL allowsImageEditing; // NO
+@property (nonatomic) BOOL showsCameraControls; // NO
+@property (nonatomic) BOOL showsHelpOnFail; // ignored
+@property (nonatomic) ZBarReaderControllerCameraMode cameraMode; // Sampling
+@property (nonatomic) BOOL takesPicture; // NO
+@property (nonatomic) NSInteger maxScanDimension; // ignored
+
++ (BOOL) isSourceTypeAvailable: (UIImagePickerControllerSourceType) sourceType;
+
+@end
34 ZBarSDK/Headers/ZBarSDK/ZBarSDK.h
@@ -0,0 +1,34 @@
+/*------------------------------------------------------------------------
+ * Copyright 2010 (c) Jeff Brown <spadix@users.sourceforge.net>
+ *
+ * This file is part of the ZBar Bar Code Reader.
+ *
+ * The ZBar Bar Code Reader is free software; you can redistribute it
+ * and/or modify it under the terms of the GNU Lesser Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * The ZBar Bar Code Reader is distributed in the hope that it will be
+ * useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser Public License
+ * along with the ZBar Bar Code Reader; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301 USA
+ *
+ * http://sourceforge.net/projects/zbar
+ *------------------------------------------------------------------------*/
+
+#import "zbar.h"
+
+#import "ZBarSymbol.h"
+#import "ZBarImage.h"
+#import "ZBarImageScanner.h"
+#import "ZBarReaderView.h"
+#import "ZBarReaderViewController.h"
+#import "ZBarReaderController.h"
+#import "ZBarCaptureReader.h"
+#import "ZBarHelpController.h"
+#import "ZBarCameraSimulator.h"
71 ZBarSDK/Headers/ZBarSDK/ZBarSymbol.h
@@ -0,0 +1,71 @@
+//------------------------------------------------------------------------
+// Copyright 2009-2010 (c) Jeff Brown <spadix@users.sourceforge.net>
+//
+// This file is part of the ZBar Bar Code Reader.
+//
+// The ZBar Bar Code Reader is free software; you can redistribute it
+// and/or modify it under the terms of the GNU Lesser Public License as
+// published by the Free Software Foundation; either version 2.1 of
+// the License, or (at your option) any later version.
+//
+// The ZBar Bar Code Reader is distributed in the hope that it will be
+// useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+// of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Lesser Public License for more details.
+//
+// You should have received a copy of the GNU Lesser Public License
+// along with the ZBar Bar Code Reader; if not, write to the Free
+// Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+// Boston, MA 02110-1301 USA
+//
+// http://sourceforge.net/projects/zbar
+//------------------------------------------------------------------------
+
+#import <Foundation/Foundation.h>
+#import <CoreGraphics/CoreGraphics.h>
+#import "zbar.h"
+
+#ifdef __cplusplus
+using namespace zbar;
+#endif
+
+// Obj-C wrapper for ZBar result types
+
+@interface ZBarSymbolSet
+ : NSObject <NSFastEnumeration>
+{
+ const zbar_symbol_set_t *set;
+ BOOL filterSymbols;
+}
+
+@property (readonly, nonatomic) int count;
+@property (readonly, nonatomic) const zbar_symbol_set_t *zbarSymbolSet;
+@property (nonatomic) BOOL filterSymbols;
+
+- (id) initWithSymbolSet: (const zbar_symbol_set_t*) set;
+
+@end
+
+
+@interface ZBarSymbol : NSObject
+{
+ const zbar_symbol_t *symbol;
+}
+
+@property (readonly, nonatomic) zbar_symbol_type_t type;
+@property (readonly, nonatomic) NSString *typeName;
+@property (readonly, nonatomic) NSUInteger configMask;
+@property (readonly, nonatomic) NSUInteger modifierMask;
+@property (readonly, nonatomic) NSString *data;
+@property (readonly, nonatomic) int quality;
+@property (readonly, nonatomic) int count;
+@property (readonly, nonatomic) zbar_orientation_t orientation;
+@property (readonly, nonatomic) ZBarSymbolSet *components;
+@property (readonly, nonatomic) const zbar_symbol_t *zbarSymbol;
+@property (readonly, nonatomic) CGRect bounds;
+
+- (id) initWithSymbol: (const zbar_symbol_t*) symbol;
+
++ (NSString*) nameForType: (zbar_symbol_type_t) type;
+
+@end
1,498 ZBarSDK/Headers/ZBarSDK/zbar.h
@@ -0,0 +1,1498 @@
+/*------------------------------------------------------------------------
+ * Copyright 2007-2010 (c) Jeff Brown <spadix@users.sourceforge.net>
+ *
+ * This file is part of the ZBar Bar Code Reader.
+ *
+ * The ZBar Bar Code Reader is free software; you can redistribute it
+ * and/or modify it under the terms of the GNU Lesser Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * The ZBar Bar Code Reader is distributed in the hope that it will be
+ * useful, but WITHOUT ANY WARRANTY; without even the implied warranty
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser Public License
+ * along with the ZBar Bar Code Reader; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor,
+ * Boston, MA 02110-1301 USA
+ *
+ * http://sourceforge.net/projects/zbar
+ *------------------------------------------------------------------------*/
+#ifndef _ZBAR_H_
+#define _ZBAR_H_
+
+/** @file
+ * ZBar Barcode Reader C API definition
+ */
+
+/** @mainpage
+ *
+ * interface to the barcode reader is available at several levels.
+ * most applications will want to use the high-level interfaces:
+ *
+ * @section high-level High-Level Interfaces
+ *
+ * these interfaces wrap all library functionality into an easy-to-use
+ * package for a specific toolkit:
+ * - the "GTK+ 2.x widget" may be used with GTK GUI applications. a
+ * Python wrapper is included for PyGtk
+ * - the @ref zbar::QZBar "Qt4 widget" may be used with Qt GUI
+ * applications
+ * - the Processor interface (in @ref c-processor "C" or @ref
+ * zbar::Processor "C++") adds a scanning window to an application
+ * with no GUI.
+ *
+ * @section mid-level Intermediate Interfaces
+ *
+ * building blocks used to construct high-level interfaces:
+ * - the ImageScanner (in @ref c-imagescanner "C" or @ref
+ * zbar::ImageScanner "C++") looks for barcodes in a library defined
+ * image object
+ * - the Window abstraction (in @ref c-window "C" or @ref
+ * zbar::Window "C++") sinks library images, displaying them on the
+ * platform display
+ * - the Video abstraction (in @ref c-video "C" or @ref zbar::Video
+ * "C++") sources library images from a video device
+ *
+ * @section low-level Low-Level Interfaces
+ *
+ * direct interaction with barcode scanning and decoding:
+ * - the Scanner (in @ref c-scanner "C" or @ref zbar::Scanner "C++")
+ * looks for barcodes in a linear intensity sample stream
+ * - the Decoder (in @ref c-decoder "C" or @ref zbar::Decoder "C++")
+ * extracts barcodes from a stream of bar and space widths
+ */
+
+#ifdef __cplusplus
+
+/** C++ namespace for library interfaces */
+namespace zbar {
+ extern "C" {
+#endif
+
+
+/** @name Global library interfaces */
+/*@{*/
+
+/** "color" of element: bar or space. */
+typedef enum zbar_color_e {
+ ZBAR_SPACE = 0, /**< light area or space between bars */
+ ZBAR_BAR = 1, /**< dark area or colored bar segment */
+} zbar_color_t;
+
+/** decoded symbol type. */
+typedef enum zbar_symbol_type_e {
+ ZBAR_NONE = 0, /**< no symbol decoded */
+ ZBAR_PARTIAL = 1, /**< intermediate status */
+ ZBAR_EAN2 = 2, /**< GS1 2-digit add-on */
+ ZBAR_EAN5 = 5, /**< GS1 5-digit add-on */
+ ZBAR_EAN8 = 8, /**< EAN-8 */
+ ZBAR_UPCE = 9, /**< UPC-E */
+ ZBAR_ISBN10 = 10, /**< ISBN-10 (from EAN-13). @since 0.4 */
+ ZBAR_UPCA = 12, /**< UPC-A */
+ ZBAR_EAN13 = 13, /**< EAN-13 */
+ ZBAR_ISBN13 = 14, /**< ISBN-13 (from EAN-13). @since 0.4 */
+ ZBAR_COMPOSITE = 15, /**< EAN/UPC composite */
+ ZBAR_I25 = 25, /**< Interleaved 2 of 5. @since 0.4 */
+ ZBAR_DATABAR = 34, /**< GS1 DataBar (RSS). @since 0.11 */
+ ZBAR_DATABAR_EXP = 35, /**< GS1 DataBar Expanded. @since 0.11 */
+ ZBAR_CODABAR = 38, /**< Codabar. @since 0.11 */
+ ZBAR_CODE39 = 39, /**< Code 39. @since 0.4 */
+ ZBAR_PDF417 = 57, /**< PDF417. @since 0.6 */
+ ZBAR_QRCODE = 64, /**< QR Code. @since 0.10 */
+ ZBAR_CODE93 = 93, /**< Code 93. @since 0.11 */
+ ZBAR_CODE128 = 128, /**< Code 128 */
+
+ /** mask for base symbol type.
+ * @deprecated in 0.11, remove this from existing code
+ */
+ ZBAR_SYMBOL = 0x00ff,
+ /** 2-digit add-on flag.
+ * @deprecated in 0.11, a ::ZBAR_EAN2 component is used for
+ * 2-digit GS1 add-ons
+ */
+ ZBAR_ADDON2 = 0x0200,
+ /** 5-digit add-on flag.
+ * @deprecated in 0.11, a ::ZBAR_EAN5 component is used for
+ * 5-digit GS1 add-ons
+ */
+ ZBAR_ADDON5 = 0x0500,
+ /** add-on flag mask.
+ * @deprecated in 0.11, GS1 add-ons are represented using composite
+ * symbols of type ::ZBAR_COMPOSITE; add-on components use ::ZBAR_EAN2
+ * or ::ZBAR_EAN5
+ */
+ ZBAR_ADDON = 0x0700,
+} zbar_symbol_type_t;
+
+/** decoded symbol coarse orientation.
+ * @since 0.11
+ */
+typedef enum zbar_orientation_e {
+ ZBAR_ORIENT_UNKNOWN = -1, /**< unable to determine orientation */
+ ZBAR_ORIENT_UP, /**< upright, read left to right */
+ ZBAR_ORIENT_RIGHT, /**< sideways, read top to bottom */
+ ZBAR_ORIENT_DOWN, /**< upside-down, read right to left */
+ ZBAR_ORIENT_LEFT, /**< sideways, read bottom to top */
+} zbar_orientation_t;
+
+/** error codes. */
+typedef enum zbar_error_e {
+ ZBAR_OK = 0, /**< no error */
+ ZBAR_ERR_NOMEM, /**< out of memory */
+ ZBAR_ERR_INTERNAL, /**< internal library error */
+ ZBAR_ERR_UNSUPPORTED, /**< unsupported request */
+ ZBAR_ERR_INVALID, /**< invalid request */
+ ZBAR_ERR_SYSTEM, /**< system error */
+ ZBAR_ERR_LOCKING, /**< locking error */
+ ZBAR_ERR_BUSY, /**< all resources busy */
+ ZBAR_ERR_XDISPLAY, /**< X11 display error */
+ ZBAR_ERR_XPROTO, /**< X11 protocol error */
+ ZBAR_ERR_CLOSED, /**< output window is closed */
+ ZBAR_ERR_WINAPI, /**< windows system error */
+ ZBAR_ERR_NUM /**< number of error codes */
+} zbar_error_t;
+
+/** decoder configuration options.
+ * @since 0.4
+ */
+typedef enum zbar_config_e {
+ ZBAR_CFG_ENABLE = 0, /**< enable symbology/feature */
+ ZBAR_CFG_ADD_CHECK, /**< enable check digit when optional */
+ ZBAR_CFG_EMIT_CHECK, /**< return check digit when present */
+ ZBAR_CFG_ASCII, /**< enable full ASCII character set */
+ ZBAR_CFG_NUM, /**< number of boolean decoder configs */
+
+ ZBAR_CFG_MIN_LEN = 0x20, /**< minimum data length for valid decode */
+ ZBAR_CFG_MAX_LEN, /**< maximum data length for valid decode */
+
+ ZBAR_CFG_UNCERTAINTY = 0x40,/**< required video consistency frames */
+
+ ZBAR_CFG_POSITION = 0x80, /**< enable scanner to collect position data */
+
+ ZBAR_CFG_X_DENSITY = 0x100, /**< image scanner vertical scan density */
+ ZBAR_CFG_Y_DENSITY, /**< image scanner horizontal scan density */
+} zbar_config_t;
+
+/** decoder symbology modifier flags.
+ * @since 0.11
+ */
+typedef enum zbar_modifier_e {
+ /** barcode tagged as GS1 (EAN.UCC) reserved
+ * (eg, FNC1 before first data character).
+ * data may be parsed as a sequence of GS1 AIs
+ */
+ ZBAR_MOD_GS1 = 0,
+
+ /** barcode tagged as AIM reserved
+ * (eg, FNC1 after first character or digit pair)
+ */
+ ZBAR_MOD_AIM,
+
+ /** number of modifiers */
+ ZBAR_MOD_NUM,
+} zbar_modifier_t;
+
+/** retrieve runtime library version information.
+ * @param major set to the running major version (unless NULL)
+ * @param minor set to the running minor version (unless NULL)
+ * @returns 0
+ */
+extern int zbar_version(unsigned *major,
+ unsigned *minor);
+
+/** set global library debug level.
+ * @param verbosity desired debug level. higher values create more spew
+ */
+extern void zbar_set_verbosity(int verbosity);
+
+/** increase global library debug level.
+ * eg, for -vvvv
+ */
+extern void zbar_increase_verbosity(void);
+
+/** retrieve string name for symbol encoding.
+ * @param sym symbol type encoding
+ * @returns the static string name for the specified symbol type,
+ * or "UNKNOWN" if the encoding is not recognized
+ */
+extern const char *zbar_get_symbol_name(zbar_symbol_type_t sym);
+
+/** retrieve string name for addon encoding.
+ * @param sym symbol type encoding
+ * @returns static string name for any addon, or the empty string
+ * if no addons were decoded
+ * @deprecated in 0.11
+ */
+extern const char *zbar_get_addon_name(zbar_symbol_type_t sym);
+
+/** retrieve string name for configuration setting.
+ * @param config setting to name
+ * @returns static string name for config,
+ * or the empty string if value is not a known config
+ */
+extern const char *zbar_get_config_name(zbar_config_t config);
+
+/** retrieve string name for modifier.
+ * @param modifier flag to name
+ * @returns static string name for modifier,
+ * or the empty string if the value is not a known flag
+ */
+extern const char *zbar_get_modifier_name(zbar_modifier_t modifier);
+
+/** retrieve string name for orientation.
+ * @param orientation orientation encoding
+ * @returns the static string name for the specified orientation,
+ * or "UNKNOWN" if the orientation is not recognized
+ * @since 0.11
+ */
+extern const char *zbar_get_orientation_name(zbar_orientation_t orientation);
+
+/** parse a configuration string of the form "[symbology.]config[=value]".
+ * the config must match one of the recognized names.
+ * the symbology, if present, must match one of the recognized names.
+ * if symbology is unspecified, it will be set to 0.
+ * if value is unspecified it will be set to 1.
+ * @returns 0 if the config is parsed successfully, 1 otherwise
+ * @since 0.4
+ */
+extern int zbar_parse_config(const char *config_string,
+ zbar_symbol_type_t *symbology,
+ zbar_config_t *config,
+ int *value);
+
+/** consistently compute fourcc values across architectures
+ * (adapted from v4l2 specification)
+ * @since 0.11
+ */
+#define zbar_fourcc(a, b, c, d) \
+ ((unsigned long)(a) | \
+ ((unsigned long)(b) << 8) | \
+ ((unsigned long)(c) << 16) | \
+ ((unsigned long)(d) << 24))
+
+/** parse a fourcc string into its encoded integer value.
+ * @since 0.11
+ */
+static inline unsigned long zbar_fourcc_parse (const char *format)
+{
+ unsigned long fourcc = 0;
+ if(format) {
+ int i;
+ for(i = 0; i < 4 && format[i]; i++)
+ fourcc |= ((unsigned long)format[i]) << (i * 8);
+ }
+ return(fourcc);
+}
+
+/** @internal type unsafe error API (don't use) */
+extern int _zbar_error_spew(const void *object,
+ int verbosity);
+extern const char *_zbar_error_string(const void *object,
+ int verbosity);
+extern zbar_error_t _zbar_get_error_code(const void *object);
+
+/*@}*/
+
+struct zbar_symbol_s;
+typedef struct zbar_symbol_s zbar_symbol_t;
+
+struct zbar_symbol_set_s;
+typedef struct zbar_symbol_set_s zbar_symbol_set_t;
+
+
+/*------------------------------------------------------------*/
+/** @name Symbol interface
+ * decoded barcode symbol result object. stores type, data, and image
+ * location of decoded symbol. all memory is owned by the library
+ */
+/*@{*/
+
+/** @typedef zbar_symbol_t
+ * opaque decoded symbol object.
+ */
+
+/** symbol reference count manipulation.
+ * increment the reference count when you store a new reference to the
+ * symbol. decrement when the reference is no longer used. do not
+ * refer to the symbol once the count is decremented and the
+ * containing image has been recycled or destroyed.
+ * @note the containing image holds a reference to the symbol, so you
+ * only need to use this if you keep a symbol after the image has been
+ * destroyed or reused.
+ * @since 0.9
+ */
+extern void zbar_symbol_ref(const zbar_symbol_t *symbol,
+ int refs);
+
+/** retrieve type of decoded symbol.
+ * @returns the symbol type
+ */
+extern zbar_symbol_type_t zbar_symbol_get_type(const zbar_symbol_t *symbol);
+
+/** retrieve symbology boolean config settings.
+ * @returns a bitmask indicating which configs were set for the detected
+ * symbology during decoding.
+ * @since 0.11
+ */
+extern unsigned int zbar_symbol_get_configs(const zbar_symbol_t *symbol);
+
+/** retrieve symbology modifier flag settings.
+ * @returns a bitmask indicating which characteristics were detected
+ * during decoding.
+ * @since 0.11
+ */
+extern unsigned int zbar_symbol_get_modifiers(const zbar_symbol_t *symbol);
+
+/** retrieve data decoded from symbol.
+ * @returns the data string
+ */
+extern const char *zbar_symbol_get_data(const zbar_symbol_t *symbol);
+
+/** retrieve length of binary data.
+ * @returns the length of the decoded data
+ */
+extern unsigned int zbar_symbol_get_data_length(const zbar_symbol_t *symbol);
+
+/** retrieve a symbol confidence metric.
+ * @returns an unscaled, relative quantity: larger values are better
+ * than smaller values, where "large" and "small" are application
+ * dependent.
+ * @note expect the exact definition of this quantity to change as the
+ * metric is refined. currently, only the ordered relationship
+ * between two values is defined and will remain stable in the future
+ * @since 0.9
+ */
+extern int zbar_symbol_get_quality(const zbar_symbol_t *symbol);
+
+/** retrieve current cache count. when the cache is enabled for the
+ * image_scanner this provides inter-frame reliability and redundancy
+ * information for video streams.
+ * @returns < 0 if symbol is still uncertain.
+ * @returns 0 if symbol is newly verified.
+ * @returns > 0 for duplicate symbols
+ */
+extern int zbar_symbol_get_count(const zbar_symbol_t *symbol);
+
+/** retrieve the number of points in the location polygon. the
+ * location polygon defines the image area that the symbol was
+ * extracted from.
+ * @returns the number of points in the location polygon
+ * @note this is currently not a polygon, but the scan locations
+ * where the symbol was decoded
+ */
+extern unsigned zbar_symbol_get_loc_size(const zbar_symbol_t *symbol);
+
+/** retrieve location polygon x-coordinates.
+ * points are specified by 0-based index.
+ * @returns the x-coordinate for a point in the location polygon.
+ * @returns -1 if index is out of range
+ */
+extern int zbar_symbol_get_loc_x(const zbar_symbol_t *symbol,
+ unsigned index);
+
+/** retrieve location polygon y-coordinates.
+ * points are specified by 0-based index.
+ * @returns the y-coordinate for a point in the location polygon.
+ * @returns -1 if index is out of range
+ */
+extern int zbar_symbol_get_loc_y(const zbar_symbol_t *symbol,
+ unsigned index);
+
+/** retrieve general orientation of decoded symbol.
+ * @returns a coarse, axis-aligned indication of symbol orientation or
+ * ::ZBAR_ORIENT_UNKNOWN if unknown
+ * @since 0.11
+ */
+extern zbar_orientation_t
+zbar_symbol_get_orientation(const zbar_symbol_t *symbol);
+
+/** iterate the set to which this symbol belongs (there can be only one).
+ * @returns the next symbol in the set, or
+ * @returns NULL when no more results are available
+ */
+extern const zbar_symbol_t *zbar_symbol_next(const zbar_symbol_t *symbol);
+
+/** retrieve components of a composite result.
+ * @returns the symbol set containing the components
+ * @returns NULL if the symbol is already a physical symbol
+ * @since 0.10
+ */
+extern const zbar_symbol_set_t*
+zbar_symbol_get_components(const zbar_symbol_t *symbol);
+
+/** iterate components of a composite result.
+ * @returns the first physical component symbol of a composite result
+ * @returns NULL if the symbol is already a physical symbol
+ * @since 0.10
+ */
+extern const zbar_symbol_t*
+zbar_symbol_first_component(const zbar_symbol_t *symbol);
+
+/** print XML symbol element representation to user result buffer.
+ * @see http://zbar.sourceforge.net/2008/barcode.xsd for the schema.
+ * @param symbol is the symbol to print
+ * @param buffer is the inout result pointer, it will be reallocated
+ * with a larger size if necessary.
+ * @param buflen is inout length of the result buffer.
+ * @returns the buffer pointer
+ * @since 0.6
+ */
+extern char *zbar_symbol_xml(const zbar_symbol_t *symbol,
+ char **buffer,
+ unsigned *buflen);
+
+/*@}*/
+
+/*------------------------------------------------------------*/
+/** @name Symbol Set interface
+ * container for decoded result symbols associated with an image
+ * or a composite symbol.
+ * @since 0.10
+ */
+/*@{*/
+
+/** @typedef zbar_symbol_set_t
+ * opaque symbol iterator object.
+ * @since 0.10
+ */
+
+/** reference count manipulation.
+ * increment the reference count when you store a new reference.
+ * decrement when the reference is no longer used. do not refer to
+ * the object any longer once references have been released.
+ * @since 0.10
+ */
+extern void zbar_symbol_set_ref(const zbar_symbol_set_t *symbols,
+ int refs);
+
+/** retrieve set size.
+ * @returns the number of symbols in the set.
+ * @since 0.10
+ */
+extern int zbar_symbol_set_get_size(const zbar_symbol_set_t *symbols);
+
+/** set iterator.
+ * @returns the first decoded symbol result in a set
+ * @returns NULL if the set is empty
+ * @since 0.10
+ */
+extern const zbar_symbol_t*
+zbar_symbol_set_first_symbol(const zbar_symbol_set_t *symbols);
+
+/** raw result iterator.
+ * @returns the first decoded symbol result in a set, *before* filtering
+ * @returns NULL if the set is empty
+ * @since 0.11
+ */
+extern const zbar_symbol_t*
+zbar_symbol_set_first_unfiltered(const zbar_symbol_set_t *symbols);
+
+/*@}*/
+
+/*------------------------------------------------------------*/
+/** @name Image interface
+ * stores image data samples along with associated format and size
+ * metadata
+ */
+/*@{*/
+
+struct zbar_image_s;
+/** opaque image object. */
+typedef struct zbar_image_s zbar_image_t;
+
+/** cleanup handler callback function.
+ * called to free sample data when an image is destroyed.
+ */
+typedef void (zbar_image_cleanup_handler_t)(zbar_image_t *image);
+
+/** data handler callback function.
+ * called when decoded symbol results are available for an image
+ */
+typedef void (zbar_image_data_handler_t)(zbar_image_t *image,
+ const void *userdata);
+
+/** new image constructor.
+ * @returns a new image object with uninitialized data and format.
+ * this image should be destroyed (using zbar_image_destroy()) as
+ * soon as the application is finished with it
+ */
+extern zbar_image_t *zbar_image_create(void);
+
+/** image destructor. all images created by or returned to the
+ * application should be destroyed using this function. when an image
+ * is destroyed, the associated data cleanup handler will be invoked
+ * if available
+ * @note make no assumptions about the image or the data buffer.
+ * they may not be destroyed/cleaned immediately if the library
+ * is still using them. if necessary, use the cleanup handler hook
+ * to keep track of image data buffers
+ */
+extern void zbar_image_destroy(zbar_image_t *image);
+
+/** image reference count manipulation.
+ * increment the reference count when you store a new reference to the
+ * image. decrement when the reference is no longer used. do not
+ * refer to the image any longer once the count is decremented.
+ * zbar_image_ref(image, -1) is the same as zbar_image_destroy(image)
+ * @since 0.5
+ */
+extern void zbar_image_ref(zbar_image_t *image,
+ int refs);
+
+/** image format conversion. refer to the documentation for supported
+ * image formats
+ * @returns a @em new image with the sample data from the original image
+ * converted to the requested format. the original image is
+ * unaffected.
+ * @note the converted image size may be rounded (up) due to format
+ * constraints
+ */
+extern zbar_image_t *zbar_image_convert(const zbar_image_t *image,
+ unsigned long format);
+
+/** image format conversion with crop/pad.
+ * if the requested size is larger than the image, the last row/column
+ * are duplicated to cover the difference. if the requested size is
+ * smaller than the image, the extra rows/columns are dropped from the
+ * right/bottom.
+ * @returns a @em new image with the sample data from the original
+ * image converted to the requested format and size.
+ * @note the image is @em not scaled
+ * @see zbar_image_convert()
+ * @since 0.4
+ */
+extern zbar_image_t *zbar_image_convert_resize(const zbar_image_t *image,
+ unsigned long format,
+ unsigned width,
+ unsigned height);
+
+/** retrieve the image format.
+ * @returns the fourcc describing the format of the image sample data
+ */
+extern unsigned long zbar_image_get_format(const zbar_image_t *image);
+
+/** retrieve a "sequence" (page/frame) number associated with this image.
+ * @since 0.6
+ */
+extern unsigned zbar_image_get_sequence(const zbar_image_t *image);
+
+/** retrieve the width of the image.
+ * @returns the width in sample columns
+ */
+extern unsigned zbar_image_get_width(const zbar_image_t *image);
+
+/** retrieve the height of the image.
+ * @returns the height in sample rows
+ */
+extern unsigned zbar_image_get_height(const zbar_image_t *image);
+
+/** retrieve both dimensions of the image.
+ * fills in the width and height in samples
+ */
+extern void zbar_image_get_size(const zbar_image_t *image,
+ unsigned *width,