474413b2d632b1ba48889a0c7b2fe5c1fb3a87b6
[zxing.git] / iphone / ZXingWidget / Classes / FormatReader.mm
1 //
2 //  FormatReader.mm
3 //
4 //  Created by Dave MacLachlan on 2010-05-03.
5 /*
6  * Copyright 2010 ZXing authors
7  *
8  * Licensed under the Apache License, Version 2.0 (the "License");
9  * you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at
11  *
12  *      http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  */
20
21 #import "FormatReader.h"
22
23 @implementation FormatReader
24
25 static NSMutableSet *sFormatReaders = nil;
26
27 + (void)registerFormatReader:(FormatReader*)formatReader {
28   NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
29   @synchronized(self) {
30     if (!sFormatReaders) {
31       sFormatReaders = [[NSMutableSet alloc] init];
32     }
33     [sFormatReaders addObject:formatReader];
34   }
35   [pool drain];
36 }
37
38 /*
39 + (NSSet *)formatReaders {
40   NSSet *formatReaders = nil;
41   @synchronized(self) {
42
43     formatReaders = [[sFormatReaders copy] autorelease];
44   }
45   return formatReaders;
46 }
47 */
48
49 - (id)initWithReader:(zxing::Reader *)reader {
50   if ((self = [super init])) {
51     reader_ = reader;
52   }
53   return self;
54 }
55
56 - (void)dealloc {
57   delete reader_;
58   [super dealloc];
59 }
60
61 - (zxing::Ref<zxing::Result>)decode:(zxing::Ref<zxing::BinaryBitmap>)grayImage {
62   return reader_->decode(grayImage);
63 }
64
65 @end