| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 | 
							- /*
 -  * Copyright 2012 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 "ZXUPCEANExtensionSupport.h"
 - #import "ZXUPCEANExtension2Support.h"
 - #import "ZXUPCEANExtension5Support.h"
 - #import "ZXUPCEANReader.h"
 - 
 - const int ZX_UPCEAN_EXTENSION_START_PATTERN[] = {1,1,2};
 - 
 - @interface ZXUPCEANExtensionSupport ()
 - 
 - @property (nonatomic, strong, readonly) ZXUPCEANExtension2Support *twoSupport;
 - @property (nonatomic, strong, readonly) ZXUPCEANExtension5Support *fiveSupport;
 - 
 - @end
 - 
 - @implementation ZXUPCEANExtensionSupport
 - 
 - - (id)init {
 -   if (self = [super init]) {
 -     _twoSupport = [[ZXUPCEANExtension2Support alloc] init];
 -     _fiveSupport = [[ZXUPCEANExtension5Support alloc] init];
 -   }
 - 
 -   return self;
 - }
 - 
 - - (ZXResult *)decodeRow:(int)rowNumber row:(ZXBitArray *)row rowOffset:(int)rowOffset error:(NSError **)error {
 -   NSRange extensionStartRange = [ZXUPCEANReader findGuardPattern:row
 -                                                        rowOffset:rowOffset
 -                                                       whiteFirst:NO
 -                                                          pattern:ZX_UPCEAN_EXTENSION_START_PATTERN
 -                                                       patternLen:sizeof(ZX_UPCEAN_EXTENSION_START_PATTERN)/sizeof(int)
 -                                                            error:error];
 - 
 -   if (extensionStartRange.location == NSNotFound) {
 -     return nil;
 -   }
 - 
 -   ZXResult *result = [self.fiveSupport decodeRow:rowNumber row:row extensionStartRange:extensionStartRange error:error];
 -   if (!result) {
 -     result = [self.twoSupport decodeRow:rowNumber row:row extensionStartRange:extensionStartRange error:error];
 -   }
 - 
 -   return result;
 - }
 - 
 - @end
 
 
  |