--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<!--
+ Copyright 2008 Google Inc.
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<plist version="1.0">
+<dict>
+ <key>CFBundleDevelopmentRegion</key>
+ <string>en</string>
+ <key>CFBundleExecutable</key>
+ <string>ZXing</string>
+ <key>CFBundleIdentifier</key>
+ <string>zxing</string>
+ <key>CFBundleInfoDictionaryVersion</key>
+ <string>0.1</string>
+ <key>CFBundleName</key>
+ <string>ZXing</string>
+ <key>CFBundlePackageType</key>
+ <string>APPL</string>
+ <key>CFBundleShortVersionString</key>
+ <string>1.0.0</string>
+ <key>CFBundleSignature</key>
+ <string>????</string>
+ <key>CFBundleVersion</key>
+ <string>1.0</string>
+</dict>
+</plist>
--- /dev/null
+# Copyright 2008 Google Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+CC=/usr/local/bin/arm-apple-darwin-gcc -v
+LD=$(CC)
+
+CFLAGS = -L$(HEAVENLY)
+LDFLAGS = -framework CoreFoundation \
+ -framework Foundation \
+ -framework UIKit \
+ -framework CoreGraphics \
+ -framework PhotoLibrary \
+ -lobjc
+
+all: ZXing
+
+ZXing: ZXing.o ZXingApplication.o
+ $(LD) $(LDFLAGS) -o $@ $^
+
+%.o: %.m
+ $(CC) -c $(CFLAGS) $< -o $@
+
+clean:
+ rm -f *.o ZXing
+ rm -f ZXing.app/ZXing
--- /dev/null
+This is a temporary checkin of a rough shell of an iPhone application, for
+purposes of experimentation and sharing with developers. It should not be
+expected to be complete or functional, or ready for use.
--- /dev/null
+/*
+ * Copyright 2008 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#import <UIKit/UIKit.h>
+
+#import "ZXingApplication.h"
+
+int main(int argc, char **argv)
+{
+ NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
+ return UIApplicationMain(argc, argv, [ZXingApplication class]);
+}
--- /dev/null
+/*
+ * Copyright 2008 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#import <Foundation/Foundation.h>
+#import <PhotoLibrary/CameraController.h>
+#import <UIKit/UIKit.h>
+#import <UIKit/UIApplication.h>
+
+@interface ZXingApplication : UIApplication
+{
+ CameraController* cameraController;
+
+ UIWindow* mainWindow;
+
+ UIView* previewView;
+ UIView* decodeView;
+
+ UIImageView* decodeImageView;
+}
+
+- (void) decodeImage: (id) param1;
+
+- (void) cameraControllerReadyStateChanged: (id) param1;
+- (void) cameraController: (id) param1
+ tookPicture: (id) param2
+ withPreview: (id) preview
+ jpegData: (id) param3
+ imageProperties: (id) param4;
+
+@end
--- /dev/null
+/*
+ * Copyright 2008 Google Inc.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#import <CoreGraphics/CGGeometry.h>
+#import <CoreGraphics/CGImage.h>
+#import <Foundation/Foundation.h>
+#import <UIKit/UIPushButton.h>
+#import <UIKit/UIWindow.h>
+#import <PhotoLibrary/CameraController.h>
+#import "ZXingApplication.h"
+
+@implementation ZXingApplication
+
+- (void) applicationDidFinishLaunching: (id) param1 {
+ mainWindow = [[UIWindow alloc] initWithContentRect: [UIHardware
+ fullScreenApplicationContentRect]];
+
+ [mainWindow orderFront: self];
+ [mainWindow _setHidden: NO];
+
+ // Setup camera stuff
+ cameraController = [[CameraController alloc] init];
+ [cameraController startPreview];
+ [[CameraController sharedInstance] setDelegate: self];
+
+ struct CGRect fullscreen_rect =
+ [UIHardware fullScreenApplicationContentRect];
+ fullscreen_rect.origin.x = 0.0f;
+ fullscreen_rect.origin.y = 0.0f;
+ fullscreen_rect.size.width = 320.0f;
+ fullscreen_rect.size.height = 480.0f;
+
+ // Setup previewView
+ previewView = [[UIView alloc] initWithFrame: fullscreen_rect];
+ [previewView addSubview: [cameraController previewView]];
+
+ UIPushButton *decode_button =
+ [[UIPushButton alloc] initWithFrame:
+ CGRectMake(140.0f, 440.0f, 50.0f, 20.0f)];
+ [decode_button setTitle: @"Decode"];
+ [decode_button setEnabled: YES];
+ [decode_button addTarget: self action: @selector(decodeImage:)
+ forEvents: 255];
+
+ [previewView addSubview: decode_button];
+
+ // Setup decodeView
+ decodeView = [[UIView alloc] initWithFrame: fullscreen_rect];
+ decodeImageView = [[UIImageView alloc] initWithFrame:
+ CGRectMake(0.0f, 0.0f,
+ 320.0f, 480.0f)];
+ [decodeImageView setRotationBy: 90];
+ [decodeView addSubview: decodeImageView];
+
+ [mainWindow setContentView: previewView];
+}
+
+- (void) decodeImage: (id) param1 {
+ [cameraController capturePhoto];
+
+ [mainWindow setContentView: decodeView];
+}
+
+
+- (void) cameraControllerReadyStateChanged: (id) param1 {
+}
+
+- (void) cameraController: (id) param1
+ tookPicture: (id) param2
+ withPreview: (id) preview
+ jpegData: (id) param3
+ imageProperties: (id) param4 {
+ [cameraController stopPreview];
+
+ CGImageRef orig_image = [preview imageRef];
+ int orig_height = CGImageGetHeight(orig_image);
+ int orig_width = CGImageGetWidth(orig_image);
+
+ [decodeImageView setImage: preview];
+ // Height and width swapped since the image comes in rotated 90 degrees.
+ [decodeImageView setFrame: CGRectMake(0.0f, 0.0f, orig_height, orig_width)];
+}
+
+@end