mirror of
https://github.com/zxing/zxing.git
synced 2025-03-05 20:48:51 -08:00
Add product parsed result and result parser for iPhone
git-svn-id: https://zxing.googlecode.com/svn/trunk@1859 59b500cc-1b3d-0410-9834-0bbf25fbcc57
This commit is contained in:
parent
de125e2ddc
commit
1314542b1d
|
@ -0,0 +1,36 @@
|
|||
//
|
||||
// ProductParsedResult.h
|
||||
// ZXing
|
||||
//
|
||||
// Created by George Nachman on 7/8/2011.
|
||||
/*
|
||||
* Copyright 2011 ZXing authors
|
||||
*
|
||||
* 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 "ParsedResult.h"
|
||||
|
||||
@interface ProductParsedResult : ParsedResult {
|
||||
NSString *productID;
|
||||
NSString *normalizedProductID;
|
||||
}
|
||||
|
||||
@property (nonatomic, copy) NSString *productID;
|
||||
@property (nonatomic, copy) NSString *normalizedProductID;
|
||||
|
||||
- (id)initWithProductID:(NSString*)newProductID
|
||||
normalizedProductID:(NSString*)newNormalizedProductID;
|
||||
|
||||
@end
|
|
@ -0,0 +1,43 @@
|
|||
//
|
||||
// ProductParsedResult.4
|
||||
// ZXing
|
||||
//
|
||||
// Created by George Nachman on 7/8/2011.
|
||||
/*
|
||||
* Copyright 2011 ZXing authors
|
||||
*
|
||||
* 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 "ProductParsedResult.h"
|
||||
|
||||
@implementation ProductParsedResult
|
||||
|
||||
@synthesize productID;
|
||||
@synthesize normalizedProductID;
|
||||
|
||||
- (id)initWithProductID:(NSString*)newProductID
|
||||
normalizedProductID:(NSString*)newNormalizedProductID {
|
||||
if ((self = [super init]) != nil) {
|
||||
self.productID = newProductID;
|
||||
self.normalizedProductID = newNormalizedProductID;
|
||||
}
|
||||
return self;
|
||||
}
|
||||
|
||||
- (NSString *)stringForDisplay {
|
||||
return self.productID;
|
||||
}
|
||||
|
||||
@end
|
|
@ -0,0 +1,30 @@
|
|||
//
|
||||
// ProductResultParser.h
|
||||
// ZXing
|
||||
//
|
||||
// Created by George Nachman on 7/7/2011.
|
||||
/*
|
||||
* Copyright 2011 ZXing authors
|
||||
*
|
||||
* 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 "ResultParser.h"
|
||||
|
||||
@interface ProductResultParser : ResultParser {
|
||||
|
||||
}
|
||||
|
||||
@end
|
||||
|
|
@ -0,0 +1,65 @@
|
|||
//
|
||||
// ProductResultParser.m
|
||||
// ZXing
|
||||
//
|
||||
// Ported to Objective-C by George Nachman on 7/7/2011.
|
||||
/*
|
||||
* Copyright 2011 ZXing authors
|
||||
*
|
||||
* 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 "ProductResultParser.h"
|
||||
#import "ProductParsedResult.h"
|
||||
#import "CBarcodeFormat.h"
|
||||
#include "../../../../cpp/core/src/zxing/oned/UPCEReader.h"
|
||||
|
||||
@implementation ProductResultParser
|
||||
|
||||
+ (void)load {
|
||||
[ResultParser registerResultParserClass:self];
|
||||
}
|
||||
|
||||
+ (ParsedResult *)parsedResultForString:(NSString *)s format:(BarcodeFormat)format {
|
||||
// Treat all UPC and EAN variants as UPCs, in the sense that they are all
|
||||
// product barcodes.
|
||||
if (format != BarcodeFormat_UPC_E &&
|
||||
format != BarcodeFormat_UPC_A &&
|
||||
format != BarcodeFormat_EAN_8 &&
|
||||
format != BarcodeFormat_EAN_13) {
|
||||
return nil;
|
||||
}
|
||||
|
||||
// Barcode must be all digits.
|
||||
for (unsigned int i = 0; i < [s length]; i++) {
|
||||
unichar c = [s characterAtIndex:i];
|
||||
if (c < '0' || c > '9') {
|
||||
return nil;
|
||||
}
|
||||
}
|
||||
|
||||
NSString *normalizedProductID;
|
||||
// Expand UPC-E for purposes of searching
|
||||
if (format == BarcodeFormat_UPC_E) {
|
||||
std::string textStr = std::string([s UTF8String]);
|
||||
std::string normal = zxing::oned::UPCEReader::convertUPCEtoUPCA(textStr);
|
||||
normalizedProductID = [NSString stringWithUTF8String:normal.c_str()];
|
||||
} else {
|
||||
normalizedProductID = s;
|
||||
}
|
||||
|
||||
return [[ProductParsedResult alloc] initWithProductID:s
|
||||
normalizedProductID:normalizedProductID];
|
||||
}
|
||||
|
||||
@end
|
|
@ -19,6 +19,7 @@
|
|||
#import "GeoResultParser.h"
|
||||
#import "TextResultParser.h"
|
||||
#import "CBarcodeFormat.h"
|
||||
#import "ProductResultParser.h"
|
||||
|
||||
@implementation UniversalResultParser
|
||||
static NSMutableArray *sTheResultParsers = nil;
|
||||
|
@ -50,6 +51,7 @@ static NSMutableArray *sTheResultParsers = nil;
|
|||
[self addParserClass:[EmailDoCoMoResultParser class]];
|
||||
[self addParserClass:[BookmarkDoCoMoResultParser class]];
|
||||
[self addParserClass:[GeoResultParser class]];
|
||||
[self addParserClass:[ProductResultParser class]];
|
||||
[self addParserClass:[TextResultParser class]];
|
||||
}
|
||||
|
||||
|
|
|
@ -9,6 +9,10 @@
|
|||
/* Begin PBXBuildFile section */
|
||||
1DFA090C13CE1A3900599044 /* CBarcodeFormat.h in Headers */ = {isa = PBXBuildFile; fileRef = 1DFA090A13CE1A3900599044 /* CBarcodeFormat.h */; };
|
||||
1DFA090D13CE1A3900599044 /* CBarcodeFormat.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1DFA090B13CE1A3900599044 /* CBarcodeFormat.mm */; };
|
||||
1DFA092413CE251600599044 /* ProductParsedResult.h in Headers */ = {isa = PBXBuildFile; fileRef = 1DFA092213CE251600599044 /* ProductParsedResult.h */; };
|
||||
1DFA092513CE251600599044 /* ProductParsedResult.m in Sources */ = {isa = PBXBuildFile; fileRef = 1DFA092313CE251600599044 /* ProductParsedResult.m */; };
|
||||
1DFA092A13CE252300599044 /* ProductResultParser.h in Headers */ = {isa = PBXBuildFile; fileRef = 1DFA092813CE252300599044 /* ProductResultParser.h */; };
|
||||
1DFA092B13CE252300599044 /* ProductResultParser.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1DFA092913CE252300599044 /* ProductResultParser.mm */; };
|
||||
1F027FAB11A7BEAF006B06DE /* Decoder.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F027F9F11A7BEAF006B06DE /* Decoder.h */; };
|
||||
1F027FAC11A7BEAF006B06DE /* Decoder.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1F027FA011A7BEAF006B06DE /* Decoder.mm */; };
|
||||
1F027FAD11A7BEAF006B06DE /* DecoderDelegate.h in Headers */ = {isa = PBXBuildFile; fileRef = 1F027FA111A7BEAF006B06DE /* DecoderDelegate.h */; };
|
||||
|
@ -240,6 +244,10 @@
|
|||
/* Begin PBXFileReference section */
|
||||
1DFA090A13CE1A3900599044 /* CBarcodeFormat.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CBarcodeFormat.h; path = Classes/CBarcodeFormat.h; sourceTree = "<group>"; };
|
||||
1DFA090B13CE1A3900599044 /* CBarcodeFormat.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = CBarcodeFormat.mm; path = Classes/CBarcodeFormat.mm; sourceTree = "<group>"; };
|
||||
1DFA092213CE251600599044 /* ProductParsedResult.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ProductParsedResult.h; path = Classes/parsedResults/ProductParsedResult.h; sourceTree = "<group>"; };
|
||||
1DFA092313CE251600599044 /* ProductParsedResult.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ProductParsedResult.m; path = Classes/parsedResults/ProductParsedResult.m; sourceTree = "<group>"; };
|
||||
1DFA092813CE252300599044 /* ProductResultParser.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ProductResultParser.h; path = Classes/resultParsers/ProductResultParser.h; sourceTree = "<group>"; };
|
||||
1DFA092913CE252300599044 /* ProductResultParser.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = ProductResultParser.mm; path = Classes/resultParsers/ProductResultParser.mm; sourceTree = "<group>"; };
|
||||
1F027F9F11A7BEAF006B06DE /* Decoder.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Decoder.h; path = Classes/Decoder.h; sourceTree = "<group>"; };
|
||||
1F027FA011A7BEAF006B06DE /* Decoder.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = Decoder.mm; path = Classes/Decoder.mm; sourceTree = "<group>"; };
|
||||
1F027FA111A7BEAF006B06DE /* DecoderDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = DecoderDelegate.h; path = Classes/DecoderDelegate.h; sourceTree = "<group>"; };
|
||||
|
@ -804,6 +812,8 @@
|
|||
1F02800411A7BF06006B06DE /* MeCardParser.m */,
|
||||
1F02800511A7BF06006B06DE /* PlainEmailResultParser.h */,
|
||||
1F02800611A7BF06006B06DE /* PlainEmailResultParser.m */,
|
||||
1DFA092813CE252300599044 /* ProductResultParser.h */,
|
||||
1DFA092913CE252300599044 /* ProductResultParser.mm */,
|
||||
1F02800711A7BF06006B06DE /* ResultParser.h */,
|
||||
1F02800811A7BF06006B06DE /* ResultParser.m */,
|
||||
1F02800911A7BF06006B06DE /* SMSResultParser.h */,
|
||||
|
@ -833,6 +843,8 @@
|
|||
1F027FE011A7BEEB006B06DE /* GeoParsedResult.m */,
|
||||
1F027FE111A7BEEB006B06DE /* ParsedResult.h */,
|
||||
1F027FE211A7BEEB006B06DE /* ParsedResult.m */,
|
||||
1DFA092213CE251600599044 /* ProductParsedResult.h */,
|
||||
1DFA092313CE251600599044 /* ProductParsedResult.m */,
|
||||
1F027FE311A7BEEB006B06DE /* SMSParsedResult.h */,
|
||||
1F027FE411A7BEEB006B06DE /* SMSParsedResult.m */,
|
||||
1F027FE511A7BEEB006B06DE /* TelParsedResult.h */,
|
||||
|
@ -993,6 +1005,8 @@
|
|||
3B72D97012130EF6007CEF32 /* ResultPointCallback.h in Headers */,
|
||||
1FB4319F12901C76002D63E8 /* UniversalResultParser.h in Headers */,
|
||||
1DFA090C13CE1A3900599044 /* CBarcodeFormat.h in Headers */,
|
||||
1DFA092413CE251600599044 /* ProductParsedResult.h in Headers */,
|
||||
1DFA092A13CE252300599044 /* ProductResultParser.h in Headers */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
@ -1157,6 +1171,8 @@
|
|||
3B72D96F12130EF6007CEF32 /* ResultPointCallback.cpp in Sources */,
|
||||
1FB431A012901C76002D63E8 /* UniversalResultParser.m in Sources */,
|
||||
1DFA090D13CE1A3900599044 /* CBarcodeFormat.mm in Sources */,
|
||||
1DFA092513CE251600599044 /* ProductParsedResult.m in Sources */,
|
||||
1DFA092B13CE252300599044 /* ProductResultParser.mm in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
|
|
Loading…
Reference in a new issue