From e8b36067795825caedad5a93693cf7f9e656f733 Mon Sep 17 00:00:00 2001 From: dkavanagh Date: Thu, 13 May 2010 17:34:36 +0000 Subject: [PATCH] Added beep. Settable sound file location via widget property. Client app sets this. git-svn-id: https://zxing.googlecode.com/svn/trunk@1361 59b500cc-1b3d-0410-9834-0bbf25fbcc57 --- iphone/ScanTest/Classes/RootViewController.m | 2 + .../ScanTest.xcodeproj/project.pbxproj | 4 ++ iphone/ScanTest/beep-beep.aiff | Bin 0 -> 66046 bytes .../ZXingWidget.xcodeproj/project.pbxproj | 2 - iphone/ZXingWidget/ZXingWidgetController.h | 2 + iphone/ZXingWidget/ZXingWidgetController.m | 39 +++++++++++------- 6 files changed, 31 insertions(+), 18 deletions(-) create mode 100644 iphone/ScanTest/beep-beep.aiff diff --git a/iphone/ScanTest/Classes/RootViewController.m b/iphone/ScanTest/Classes/RootViewController.m index bbcb33508..d852d7f63 100644 --- a/iphone/ScanTest/Classes/RootViewController.m +++ b/iphone/ScanTest/Classes/RootViewController.m @@ -19,6 +19,8 @@ [super viewDidLoad]; [self setTitle:@"ZXing"]; scanController = [[ZXingWidgetController alloc] initWithDelegate:self]; + NSBundle *mainBundle = [NSBundle mainBundle]; + [scanController setSoundToPlay:[[NSURL fileURLWithPath:[mainBundle pathForResource:@"beep-beep" ofType:@"aiff"] isDirectory:NO] retain]]; } - (IBAction)scanPressed:(id)sender { diff --git a/iphone/ScanTest/ScanTest.xcodeproj/project.pbxproj b/iphone/ScanTest/ScanTest.xcodeproj/project.pbxproj index a26753e26..6da81c0b8 100755 --- a/iphone/ScanTest/ScanTest.xcodeproj/project.pbxproj +++ b/iphone/ScanTest/ScanTest.xcodeproj/project.pbxproj @@ -17,6 +17,7 @@ 28F335F11007B36200424DE2 /* RootViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = 28F335F01007B36200424DE2 /* RootViewController.xib */; }; E5345BC91198D74D000CB77F /* libZXingWidget.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E5345BC81198D74D000CB77F /* libZXingWidget.a */; }; E5345BF11198D81A000CB77F /* AudioToolbox.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E5345BF01198D81A000CB77F /* AudioToolbox.framework */; }; + E548755C119C62B9001CC0F8 /* beep-beep.aiff in Resources */ = {isa = PBXBuildFile; fileRef = E548755B119C62B9001CC0F8 /* beep-beep.aiff */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -72,6 +73,7 @@ E5345BED1198D7E2000CB77F /* ZXingWidgetController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ZXingWidgetController.h; path = ../ZXingWidget/ZXingWidgetController.h; sourceTree = SOURCE_ROOT; }; E5345BF01198D81A000CB77F /* AudioToolbox.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AudioToolbox.framework; path = System/Library/Frameworks/AudioToolbox.framework; sourceTree = SDKROOT; }; E5345FD6119B27D2000CB77F /* libZXingWidget.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; name = libZXingWidget.a; path = "build/Debug-iphoneos/libZXingWidget.a"; sourceTree = ""; }; + E548755B119C62B9001CC0F8 /* beep-beep.aiff */ = {isa = PBXFileReference; lastKnownFileType = audio.aiff; path = "beep-beep.aiff"; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -135,6 +137,7 @@ 29B97317FDCFA39411CA2CEA /* Resources */ = { isa = PBXGroup; children = ( + E548755B119C62B9001CC0F8 /* beep-beep.aiff */, 28F335F01007B36200424DE2 /* RootViewController.xib */, 28AD735F0D9D9599002E5188 /* MainWindow.xib */, 8D1107310486CEB800E47090 /* ScanTest-Info.plist */, @@ -248,6 +251,7 @@ files = ( 28AD73600D9D9599002E5188 /* MainWindow.xib in Resources */, 28F335F11007B36200424DE2 /* RootViewController.xib in Resources */, + E548755C119C62B9001CC0F8 /* beep-beep.aiff in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/iphone/ScanTest/beep-beep.aiff b/iphone/ScanTest/beep-beep.aiff new file mode 100644 index 0000000000000000000000000000000000000000..8854a590a2b5c2570f9c5f51214468924bf8c69d GIT binary patch literal 66046 zcmafa1z6l#7i}^w3_3H+4DL<~v=nKJwm?gbQukYTce}M)cfEC`F4P5SftD61?moZ_ zI><0Ep1gz*p!fgYd+8T)lAN>m+H0?UauVq12~pz!5bO?$7(F^M7aDuEF6 zC}(ICaBl`skGM5W?>z_sjph%}42p++vuFnJ_WvrPmybSnaV}BHQALn@&}w_^W4gd1LK(xbVL$tE|4*wY zBCPHZWC#`%E9M8|M}uJgbH_4|-o;ggw0bc1<_lw~&vKtq`uhB*QU>%VBAKHgJ3gkL z9V{Z0Ba}0oiT)NEDH=VF6^#bxq`!q{0_O)CgGYkIgKs@p`*ETzEJhRomRU5HAaaHw zCc#k87z{%%{=QKIRN8l~pSAyJ4C4dshqU@N+MCPX@fh*}71BSduLsT)io7@TJr=Qy zYLQs~R2ZI5)GAsbeY08r_&-`W6L{|dJofcNJz#$DXz*T0JUy6EEB%VaGmchf|JDB3 z|7_uUz%!5YjEwEG{bw$ExaeiI-#(_J0Xz-Bk7gU2QwBaS5bXGd^u=|D`Wnc}fL>^C zq$kE{kDhvSf!oGr-hNCdYuK#P9|2aO{ZB_M8q6v>5Y(Yg<&;;qr|j?XAixKUBT6lTEwHpGKTucW5Z_$OlAL3UypYb zGhT)GC_HNXIFQvppY1p+SQfA|oJHJfA6~>C5@`=!)GPjcM%hQ>!fo}j+j|8^)#C%{ z*PkuSQ~!9}f4`-EwD`4tKNuQ}&%W7tK>cDfWG}Lw>zF@ura(EvS;zeki~;k4tyFM+ z(ffTnrpp1|@C@T@{aHI$meCb&4-38H`p00ILfJ**!LRq9_g?E^wC66ycrTm%szh6V zDjtg&jTMg*V{+hid<^cl#~T_gmb(9M3yrxi13j2H2-g-? z894ViCZrF>c~6A6;&5$Y5#aTQKJokO0^ObdD96NTzGKu~~bA!EEU|Q~v5A;t$J+ zh5qRNK!)DwLyF}Ks7ne=L7^C1GCBtNs3Z+Gy7vPXnF^eF%H-_RL=B8$9|hhCYjt zXJXF?JfA45c;q;ao+oEduK~;>cF|QNzAEa=TVFpM16Bdpb02>q4b%!c63YN~6+7!6 zh56_kiP-Or6>arJhjTH2tN*!&_UZS9o?#o-!fT{=#ev-I%|Op6yiPF&`tS7T?$7Mt zc=~-}Pu4%sBbM=*1l8A{vpmKLnh)Ft_LkMBzFu5Co_b>K>5KHn*~D779gNYQ^>vS5 zTqy%r>liwW!#?dIB%wagt;ZKSx@X5Z!S4+`M{9`!D*-C<1*Z4?2{nL>!xVv_}?#BXbx~LunNTUfchPvupayv z66`Gny)bZO|Jnw%^Pl(YUSxeEQ3m@)V-<&Gx}Rgz7akkl!bf2lLAk{11$*-L$J}G5 zhdZo=W9{vMoc6GdU>KM;%=@4D=&uvBCpJg*R=}V9{1Fq*C3eKC1G9iegXsXv2l6el zj|(i0|KzaeF3wj!C#cna^^tnN_Tksi^k9lY`(TV=TEf+bp+f9pcM)3{qy1|p)CRs` z-1Mry4=Lp`KLb#+ct4bF6eYS1TzO!5!eYX> zz%gPG;W6X!V+;=biL0jvIf}TKgC08=>jSQ!&qxe4hNjPRe{_Ge{x5#fFmS7VQDaY{ zKmGQc_4LGR9nUz<45lKCv;MqeZy@+pj3v}5x(ytOj_&0Z@$$d1|8KPYabw;vYuMQT zn|<8lz_I_u)V~hE);Jh*cz*FSRN?5?-`;1`|3riKLpCH9tUj@7!@q)KDnilp-^F;v z;>5imID4~$@$c5Awf_cQ|-GSAFR}A_Fi1j?-|j1-rL5w#BkuqdXGIG@OtR=iuy+P{(HShFrPRtm{nzox{@=%51@!vC z(BfI^R~8l%8aoy()WbOeU1Ou`bbyRtN414y3gs5D24ERNuA*;7=$anS2bOWPFSe@0 zwT%2m1L=dV+>yN}#|TTP#h!Tu9R>H;Lf>&1$aNjWvkr2kAsVA1I|bPh9H>4JL`co` z`~!MWq25r=Q4i?15p2b;M%w6(;Kg?Iytj=UkTD>#O2lR;ET26Q_Si?Qp{!%*u(c!= zv5cZaXF)o0M3JG0C`eyAVhz1U?HPmVw@1UsJwi`x2*=1h0un6|@roiOz;a}lB6~aH zOM)C*5j2g6ojQO8ixCzih`n~?ycJ-=9Y|Y^SU^4KAU2tZWd^JO^x>Xrt4z2H z?SqJ9xPC?f{QISAJy{*_3J4YwkGO#x##7nUI2OaWKG1kQ)I0WW~lFb{SC7XqK@ zA=C$y)8rx0Vd%Qzh00dyC;MB{(JpNAlQfHzO|xsR)}N?8Au6jrC~6c=72l{K)_d2E zX;>pRYpQPA-@2pCLF(VRv#V6GTnRz%U<+~zse}nJK>Z9|4#&(OmVbvc)9eQCj75rI zs^t(tg5^*_oaG3?Ba0RM3e(rdr+B;AEViHiF8vUe9dke3iyTZcg=Rv#75>UiorAlE zxB7ILHNY(ub=Mll*SOY)30I5n2tB0d|)^kA{#S_^bmbF)?QA5p|RirmteM)H`~0Nf6k&?u*tH)#M<(XAk%ygpJ)=r zUCawLD(4J0n5bXEdd7&Q-6t6lM?#*^3WZ2T=?w2$C7IfOqhUhJ5s_14Q*B_wXyHn6 zLRF4vdsU2Rp>Vypyl!NptGKm!Yh#L}K_cmx*%{kSRf^P1co%%1R7rB>KG6Yd(1-#QH$=o9TNcK~XmBCQGjXG!P$En{) zQN(qy32dQgQgNg~vR5q++D#k2x73P$G|j3>uNPM@5J6Q>Mfgb|@z4vXSpGuk)KMr~CRyH| z(l}4DR^-vd6sFftsty+Oswaufs^i4#ghR!(H6I)N#O!8LQ%viJHdpD~&ZAvo#dnn} zJPF=T@g!+=OzB_s+gNWomkrJfrf}AqlX!D2KJZ^#68N2#mIAJ&ufWm5p6_ew%1z_3 zjSjH&^~dW|SX4#Uot7kZL^mvIX|JoJ# zCs$R8AOz3n+C>c&;-=;YO_8lrB^@1+($20$%8jaffGq%$TS+gNjq;uFsFkz!{`>rP+zSd&f+oXG$Z0If?O+u zRw=eAyQB+cP|MhMPW{=IsdaCg^lDNXwpITUmsf>~9#^dr{T5EGpH|!0xJbOJd1>Q* zNpq`n$8(u|_j;A1+712(UO^@k3z^esDuXy(S8ldpgus=VM%OB4^$1c=w)icnEq|c@%kp#q3&|a9NASmNH_Q-a&M6^$AI3fua zc{Xho*3`eMIx9-8@(^vUUMXH8RM%gq-O`XG%5HkoSkVf!=}GNmqq|2bXR8*#j<7ws zgY;JC0mH;Vt~-|_H@M4x$4)fcY+PtLSO8kWg8P1FEX>Nqoo(RPw96C1Tz&`LQ=q3qZv+a)2ir#C#5IM=Ocd?{R0Kel?Bct!Pk@v7=O z;ypr=IISkNVYE29*{Lb6^(lhIy7Np|meO6d6t05vD9gz@Ofh|{{x{ZE&Ub_Bf*8&f za|_-gi_82g7An5Xa;jjIMNScWEwcTH3n0 z)vaSk=hm(t$~H9#2m#E=C8Ybzada~SJ61jSso^37%QaJl@hIfAW*TQ1-8M4QE7ZNCGn!sPTS{ys{;jpv)^(>V zK6adw?QRjZUu$q^Ia^!Zpg`u6tm=7U_v%Gr$Lj53bD=jm^ zG1Y+Zg|Jb(4)T=8D%W*vl-V@@Zku2Kv4v4r-I!Q2r~Y=epD4a+orqe!MAT3-ss3!; z*hYc)MAOeEmgIVyprb^V)qP7fTFrsq!n?@dNXK-{=rV&;-B_-`(3QV}on?B;c$GyM z|GVXBfzZ-Wu-N=M-_nd=TqDqM7Z`srN;b07Ytm&iKhfQ&sU&^kQ^*1ODo;{IOF`LA z$v^G6jkS^n@juNbwRakB)e!1O2a7HkY?eZjb8JmnC-J zQEpbvhoq2@)It<7w$k?Nv2;cn(e-w7e;eN6t2r}G%DA1T(~T#Zni}&>9&_^qkGb}| zz3gQiFM~S?{cWecroPV0EduJ(%doX%ac*WKroi&Yz;n@}3@6``FLM7gZ9 zpFz@pz*^0oq`!@;Fuck;Xq3%g%09-gH*7`b$S zI-lf2Tn+Dl&#NgKYWH)+ap{sSYU{-gar3*jTaAUS9u3zee)U-`hwEcnrZuc?Q8%$# zXSED&=d?cP(01IA&Fq>ZU!#1c>VkBjEreh&jk1mG!1zGBu6v)EYLKQoimjv1b$8OFKf9v4?G#L9 zqDrjYs4WAdK@xchX#zcpx=QC6gQ+)9$I0L#tHWrf-ct5H{i*Cy{Y&hv`e8=b_3j!j z)_tXamldk(&5UG@qseJzlwG8E#6r*jXxI8{OO)$X`Q3DdOQ&O3bNl;KO=k=&3u$@PO_$!@0Vr4N7$f>ld-6>3QoAScZ(rj0d#M)NaZ& zQYEnrTn!p)CD3HmV|5ZzPpf2dd9d_&*Yx&>ot15CrJb#5((SG1q+zW;r7PPGcGB9@ zWhT-SUAtxXOKb9WoTHLWfw!8gtXG#0i&Xes2I^TB;lZ}y1>9Xxi>>kp!O@2~-MLAk!s-C1N z)9!;~;J1WjU=!Jv^PwTG%2FZ(JV)Y;K}wDVH8cjwLS!AN_F?09!Y*G~DZ?yrgm zim}Ra6<-~sG1rtrvd+1N7v9tx0r<6+ada@~rO0*!X1Bt*_s0KFBWNA03^3)AVs_Jj~5#_k< zxr+H+$K`Lk^yFh?b#l8dx;&ukfc$#*SVf?GoYG8jQe~|&R8LVCXcDx^&?xvjTm+_o zD~Rt1Qt~m0ha7G%3}R+Cqt>JSIny z?MYnX8bU011sn!{ggc^Vv+Hu-Wm6w*>K%GG^>3PxYC{XB+@|g%cT!f94ainRnD~g0PT+$70PBIFP&`zm)z$7s zauuL*QoAY*RpAOBJlDWhhVilp9un+tSl7VCJ9(bY_hRigVwIHHMlFCo*temFWs(7oEDWa866>iEa zis8z)ii1jp5>PEvzE-JK=ha`-S2fo(smL3JIrJ1h1s4KZxDq%>kR@jH=7xJe*^Q-C()ZN3RMHV+DrLZ^;{XKnyI9#hA7D@AElpaiSm{zK{ZJ2t7=vksefrM zYBIFzkavpZ@DO+dupQU|z619X>Ii#@O5##d9m$z|my|+rArGbOA#b4EN4U5|-b$HB z9!{<%m69V#Q%Pru?})Jk72!F-7Ca7m0tRjY=m9aOi~N7aKhbakWVvF3+%k@hR(4Q0Znun=GXNqy@xsQaZ_p%p|Qu>ShO- zPg+H4AO(~DC2B}^#7o5UL<54Du!&#|{sc#X6ksmk2XBQpKxd(6+V|RKjZ7P;8LxS( z{;3(IUanTC-PP%8zB*a$q%K#_)aa^TXl80GHA$M6+R@sn+ER!M{R6eYA@DEcyVZRl z5!?lCBSaGHh$KP+@dj}ii9@_dT16~H6atW*5FzBfs1o7iA<2+9op_Vbjxe*Huo$cW zpMt}HO5hNni+s5Wge{>>&{pj$ZIPC&9jDo?sn&2cC)635sp?yr;p)qpk?OaaIqGK3 zWleylLGxBSQ5&rNjl5UPhHgPBcs_g&um>Um2_Qx4>LQ|LH$pezDRC`Phxn5iO(GBv zkW7geNXEpYL^*LW@e|RN_!psq&`H=%SdQrTC%6;j169CcAOL<2--Ki^0EI$JwGXsa zS~KlB%?mA0GfPvTaYXdN(fo_>@lX?{`K>vmr6JG9soF^GM{N!?2wDeyKvXjpPDhlp z3(>JFXaHt`*9mh8Y(f!X2ho?1PW+olCO#qBA&PY&-Y4>jI|&`cp@dI_62dCNY625% z1h0ZoAQyNG903fGFOkdPwNMgN4LL&dwRg20T2Ji-#OFB8J*}nYZ>^4IixyG0)=cwJ z8>9uayO8?J)TSd?!lCO>Da=7~eHq{Y7Qjc~Avgte0jt5ggc$@1;VWSVQHOAz7(jSW zoJROboJ#nHv>za9*-1zv1Q6DMQUZv~zz0A#Kn}bCmH?h`4l*12z$2i0(09lhny!7V z)oP=)AGC(r!=~z7d84 zi-3Hf1e^^jm8f2FttmPp}zeivY7J_LAGyB1Npc^p{s~}S11a}0YiIGo39PmzR}uh?`utw47zFKw3D=T+5-?z z`vaN+nL)Rq{g4vsglEI+;UCCXNmpe3cp4A`asmY}G=U4@MEEGY5FQTeLS2ZS-$8q!zo9Y6S5OCNG-L>k zgjh($37{E}2ecDm<}S1c%0^~A8uI5gVekZmn;7JqZ#OU)(atvD4v+$LfOOCc906`X zyv2Ygz+~_ym;>Gi^O55(dtvSwI^Qe&!(a^cZa}6snaY^NTgK3R(%Bhw`C3*bC|X03Hok!#9B) za21dVxPfNCA#gH~3$6uCk?7}xtB`y}f}cS?_zh5jxj-TE|Il87Z-5x^GH@4M2HXTK zfm;YOmw?s4VdVL;8omvLz{3GUNCGE97vVWj7|ep~p|_A8G##QLb?*h~LhH4i&|R$t zs)bx(PiQW@26_&^hFy?I9srX8N8mc}3ds-|nQtb6p5STZDRB&$?GJ-t;AZ4F7~~)` zKLq3fMZf{zAB2M`z!-oB41@E5XgCg7244cU!0UjE@G@joF&6j>_5w!2p~&wUroxYr zDp?H2!p3kb^aP+mlK~ru3;1et05femK!NZ@lo7s29=%m54E1mGm>3VeWKfnU%*Kn|?}Nzi}Q!j>WAqDNMg%?a^B0D0Pr@I3W&h$ydBKk7;KgwlC(inOk~NH$r%x0|RKrJACughA~GVgxXW zPA7%39#B8&r!(Bx7CJ(9gRYU$URI&O57u8SKSmOznX(V`CA?9#XbYs56bB^_WUm`u zwI_(yOCE^<$?Ez@$7V}+3-S(CoR zK}PL5MHm7O)4jla#y`)QVHagl;_}XZocjf*i-X!-%$y%N%(beuJZb#FxS95bsiWMY zJ=EOQ;al-{U2JY*X-3Ac{9!+pS@CII+4{NR1tw+X<#(D~>d&c(vTuxkzznQxvj zEoa`>kOJx+^hWiv@pBB+a!S}B-h3SRm8$=xvBN7*Mx0uGB<+IMN zZG!objM@If%@(W~Nt}1oe@E0`gIA0!vbbtLi%FuamYRugmY)43{r>Xho!6so0uNFy z9J<|dHvaCpYvZ3keO{Bu|9&pNxbAd^JJ~~5YrD(&ZK(Yyo7tr^&aJXvYP0#)TJ0v; z+EXh67uU=Po7x=U6y$I5*}(zy*4ZMgX&;fIDxCBpF=@w**RQiKet*33%GQT3Z|6RB zdDZ-$_w!Ba+8Y0o=h`C4b>0gC%k{hAy5U_Gs_?l^7Gpe}?~OXdcS*#Y5u%$%~1fR*;-jUtafnTZ4D?FXg`qj?QxZ zKSmvnGKvz+*PofYC~wx;`D3SSnet&QE%>8Pz4K736?zV|h_)9kDcO=->3daN*X3z9RY*H_$G`DF6@x-WNg&gHIYl{cp{FA*ag9r;ax=iUCAwA}yM z?CR0m7sQVZn!79f?`Sw^dFZ#H@Sqs`bU~wW5M?QqCEX`asF6xm7o8F>$vIo&mp7;O zc!_6&U(L++koGdo8{iD>sNQG8b~BCH4*MIn0_V5(1+HZKL-tM+_9*m9jL0ta%D@TB&Jp=np8fd5-1s5)>;-`Q6d~H94mR; zn6EwECDYwbjInNDFCFG#%MYLBVLmls#HqQPM?Ibw8$NON(=dZc1p$i!ZhE#lncMp4 zat!o4s?>=^A@!%@UGt3}+NY4O%>0;f`uwYRr*vMJpKp0R{#L-}^4KY<&A-USi-mCG zZS@JwB({%kozp0@0)ICrVVKtQSY-Q9P2{4Xxufen0{pK#M7eD+C73qqTQSOsV>DF7 z{r2d#JaJb;OHD<6c&%@vTYaWvX@{`uvvx6joF-&YI7c{VEK1Cp?UmNGF5dReP7`dk z*555D{DZtmMjdmvqD-?}lp%SLbFJdQ*TI<$Z!D7EJc7SO-GBXY>%+NUz?Y)0-HAIg z2Iq6j6wM~BdgMifN0$EFreQM2g^|mB7R;I(ny~Qx*cnU7m7o0!}NEEis=^Rx$uP!*9Q8MT2oE*~U(;4HwO!yu5H7xhQFHNasahHhSFtrVm zPf`a_Mp3N{uINScE7*6;i+G@EEB7Sw9d@E_w+@{k0=IS(x*s;yNX}P$sasv3tqjkF z%jV}UEe$MMS$RabUo39@)P4qJKvZ@P%iX@zB*hVfW zX1~(iN--g1Dh0~1EmzwuL$*3{h)zt-d`M;U!!UUMdxRgYZjK4{z)-&@nR1m(^8IC}T= zv!U?B!~mPnokJIT4tKCMOXca)y=fh?>x$>K^P1`kmRC>x)lzJjBFfMGeyM=+tFCBf z-knNy)rUs?mb0BE8b2tP{+71FP_7p)IL!sjcs$U=j1$G}Ht^S}qqW0nP*!Jd*E;dH z#)h)X)q;FR>B--4;iBK-!sGddWz6!=!ii0@TdLGC>RQ%q#u#g!z+foTu`0M`$e8hA zBezVUhuTeX3AsG+Z~z=yJ?w{PyYoQ{4-+Ta4_Z?D+AcwPyk1^KnaG{hd4^etJgzZ+Y>r8i$4rT}$K=Y6)en;23+M<0&(VM~dyfVRM}hd+&9u z^$^=`c7AFuFuP{-S}%(J7vTip*|oH5T64SPvIuTW6z;3{t3BHIp((lT@6LtYRJa}l zShHAO{N2XE_IIp~4C;2g>$TYB_7G3E5rb|!?YGOeJi?#AB~X`BQ>8Nb^Xh{QzcNjW zo8zCRb-lJs5uw5-Tg4Pg%7&=UM&O@UwraO4U&E!0lX*n;7d)V-y z&P)0da2LE=da{#HdtKaI99(fN^M1bUmuZ&vXJhuH45z%m3Rai4){POz%0!*DG#ZI& zdYN-`&>Y*Ezzomi@qdrxOqmrrW7@s2i0Hgg_r}DInB)J|Bf)W$4PSqQ{$*tZ#H)2} zR{vgGIwbD=Z`W7ZDeT9U@##-8<3GM?NYedW`0H1?ps=hWu?}j#BP}NFBg|!2>&>^4 z@DI8jvL5HzZ1>1B!Ome&unpZ#ZBiicGj!06rrm~XwBemVXGW8Yd5g_%6Vb zv`R--U8@%t)CnhL-6-FfwYc0S??=_Q(i@^pVoqyk=Mm*Rz=H6%PJ&JZcf66zW*Bs{0vSu;ZunDsm9(l>zuvsypR&@lRk?L3RhgTUk7N|4f?0#Ibqh<& z?+LFRiD%7Y>z`s=qU_RIsD;wao#z_t znv<(r>y4@c#Z}dL4Yc}yTbep;xh@ve^C6J|TZi(7 zfAHKf)Zay8A7g3DZZ&)WQi*m=4ejxT&#Qzft~tav?^D3X^0>el{>Qm7#UDyu#3eAl z#Qr>y@w#AZ?LzT>wV7g}fj9lFgS$z)?>OfNql1T>p0H)O>m;+0DG;#_J}dq3Z@YI*+H>P1ESYHm~&HC$+ZFC}!pQo+Qz zKQ zqav&^dV9#-uxY-jLnB;ISuxE5=;@5P(vR{t75D1*r!k8+#(DhS^!Cn=s#oG<&o@`T z-~G~_k&v2Mu)nxW*xAf!+oGPWZe*(HBlz!(4p|HNJDtXxn>+0`UuL^Wu-mMWV`X$! z$BLo=i`9JP!q$ZLIU=`)^6FC}!-}?=?y8$2UOl~q*s)qR1^LGCuRfnO*SuX|uolZXOq z!&=%}wsx@<7hnc?3Vn;-c!L_=5dL-Z3+8hyEk2fqmoAXhVAxW=9BCG#UbZMVE4BS@#j@p^ zCs=gzbB%8sv@j=7DX^hBPpWM9svj&`Sea9Ks6<;TE}2t$r1DW^Q~gVEcjq_hGh#KU z;A}H^ZJ%jbFwAVw-yw8=?igip_{BlWb+;GWKY+tX(D zL;rG_5%hBC@zG2CxT6pH&kou$?56iRcd}!ibr?^dy_S5PyrVlpalCO>%d0A<+WDoP zRjZ2ON_F|Inu%g=Bh+!Sa~E_2p2}LN(;!&M3$j~ewb*Tz&JN zUIn9yIaJBg7>aD0t#Y$VQQ{r`@u}i*QkWpR-G6x6^g=T>rc7@`zLZrzUS5HFoOkh>uan!v7uP9W3$> z^3JsXZttb{+bE@509~taYz#{+FP!=I!gq(5!yl_|vtK9PRK1FNF!+t)wQGEJl1*A? zVMqD&){eGj@;ZXPi4S|TJKa|3Z!&mnXqwON@caJ9LqGZ482-@n)nI~Su*C&_k=`ig zY{*fwR-$bESW_p`En89XshC=7P>9J=g z3qwsq*AAQM>FZc-dcxS0e3SUDW43g1g;Ln|`*i;O}_KP7(ih$c!$K zlwGVbXfbPFtKP4DM}N+E#Yy50HS;iAV71UH&}x-cgh_zuDuY+-HnM{8Q$f;ZHFb0> ztC}p{S}>x*Fx#SNUshMa-n@B*spa&Fum*YkTg5loLLGae#G;Dr;o)I(G>GEq7MU@E z9Mv9N9DQ+=+XR)+2x`RnP$&&OiM zzo$J~^C9cyoOn(gFV*$;^MageBhh!+Ecsfx3$0mj(m2A&-;`Z6c*OTFE;`wms zU+&p1nf5a+YE458H|s}}ED3FLsoYC)MY3FUL+n`7QfpOrw>F?rEdJ0rzx552tu$bU zk~Z-q`WJ1ZO$=PLHj@SyJ00^NxQuh%;CRG#y!9LIN8TfHICF95G)-EycZF%PwvANDq7{+ie3gh{_ zoER5aI_2@GW6_63U5(rnkPt-iUg&Yx$<=%`Pr+!V`zScdJz{y&zS0$y>Ks<#@$?-z zaJnXUS9WfpNy)+rQ1o~Gd8u>fC|C#fW-1v^IGc=o1QNcj8Qt`PAjo95(N*p|hQID! zE%Mu-)F+7X(KbKMMJBT#L-<=@-XUTs-f{k&P=;cR-x{3 zj<>z&u4_GE*BZBrj#q5!EUWoHx$(?0#sg>&tS5abt7x3qTwO;O+txJIO&4)RO)ZO? z-^zc>u8^)kt%mi?v6e~3LYH=Ho1ym36a4^ph0p0hWG{kCo8v><75p$`n0k~xSK6(3 zSrJfgmbS7e`V;)K{CPn9rkGbB9^dbJ&wPCA)1-G> zt12SrO_6>kkhdiBZJsn2Dh@24Rh`?A-h8|p=*}X(APDs$SlPxmxJ0vmOpcjnnAQru z3#dkm*xPA(%wUx+tkbNL&Z!6#Ey?DV$Wou>+9&H|sFN3`SNzJ)o||u0e7knGh$f%Y zHA06?8DkaA+c8w-d~NhKU-!wmp*v^6WADt~6InCuR76gsCg`$%qgRx}0&9}qE8VDW zu98>95gkn{$cz8vZwWC?RoLWs^c|F zs;q>zwFhcTTP`%4$)#O}lz+e+W44~sPGwr)rRVs0_*qZCz_s48z^GyIeo0=B-H$o@ zntwB^V=mO?bOop_s~HWa(pMCI`dIR#`dQeQ`1>hu!|x`{#oS){~SlLcCeA@lX$qxFg9S{+ z1^R8pbCp|TeoJM=BB7|@uQJcv=;GSE{UySZu1aYgwSG<8o{kbt4W!3#p#NqIjW}iz zf)iGA&5JBoA(=X8a)51R)JfH&olz{(a2s4&9g7{R64GPx%D!c%ZI3fZX^-npfs(%e zZ2Fy=6I?m8GQES5k{58W9! z!DobPkz*+5Dto849dH$YY6VlQ$Gk+GT zs>SuZPK)j`@?uId$BAuWDw%d6A8 z@m9m%HAJCB1;6}W`S9|H>ip`AM(c(NUH3b~$y33#Y)Ie7&cYe0Q0r%&} zo_`kmLHK2Tic_Y2{-iqh`r%qYqtCvjSLgKEnmF9RLmsXfp+7M?xG5?+)NY(tKyvUA z?-xUkJBQlA5&#yo=l0X*&F!yH?3RRI zZ(YCE$9?;GC5@V&TvA-~yJd=W6O=%p>3Zw!G`VczU^mAm)JbLU=lsR)sr^bTFSA*^ zi-w8142masP;o{!Q35ues~u6DQ=VIzSXNjPS;;I5s2eTZ+1A*SpzTnW>T+l|EN1Z< z+`c)i^sVwL4DlJ^J9>WLkI;ny@)1G)>_N{5k28N}b)HeHSK8UBK2h z{_uJx{`??j{agL}sjuCiOnblKT~p#e-@j(Km2xVa+o!j0qP!wLGt=YF9PDKuF*3k& ze7J+ZUS#;ldt+t{pA}N<%^CL6<-WsFa|3RzUOM>@aJkD=8r9%ZpHWd(%`4`VNsB|v zACx_--d2;=U@0l>yrldEM^nBq?Tp57FPgNNtE`%AyKR3voV50_J#C^iA7*fp{fuyg z%Iu^nM%LOk+|JD|&iKL1xEI%&-14C_Vdkf@gu`EBlK)B1{7tMdD5rOvmOQ7P0QQ?- zX6Jel9j=8M3|k&$8lss=9?O|^Wt`5moH6<1<_0H@BoF=Qa>6c-V`*5X{Q&Q4m?lZj z?yJ~8Xl7gp+uw~fg|-WjAAe#uLt{)o=i=D(^sB|6f2yBpBRD7zTz*vXu1b89ni z+W@Nudk5=t)){6Urgyk0hFL5IxdqUuT)Mur(VEKZI)v_3dgWkwM5$H9wzA!IH-*C1 zr_E#3f63o4&r&y;#B&Q==GwXYUiRD+eAxeCm|YMnEG~F*(76#d-ov~$+OM~tX7Gfa zuKof{H%9d?=l+b>Hy^%yt9%*vr7OYm=d>Kt;!rWG@uDVK z^U!dk-c-AZ7PGvqT-$=}z1_mZezPNt{f$ERc&GZ^a$DX_OXATSZITtu8FlK~=Bgc) zQ_Am@&8oasv89ez>n>T7!LwuSCcZclv^Bc1>@cNj#AjPPJ zkq3rv_bzl>?Q};lnAc4DP9;e8be=7Wt-kl&FWdFq#H5fXlRjBK`1jqWn9z6Mo?rYD z`gz9p<}_a3>x%Dn4?6F4|Da8$E;JDuN4YMv3-B>_&kfu@Bq!vmcXXhh=LerO)_XOyO6GPP=*reU10K@HGgL;Y z>^QSAWEUvT>Qa4B^XMXGg>&lTY*O6$AH?^o z5}V$d#4r1B|Ldi%T|YIMnfVWd6?J3e$GdN{`1Dye6w~R$4BR|N$NN@Ad56rOb~}9W z)H`7*lRScxN1ON*4E^rhXu~pjqPvnILjLkFp;kTlb#(G|i@B$`$tI101LkZ&jp=A(5od(Hg!zbO46N3^ z?^Jh48};koRHaniD}GbbR(Pg(O7VqK$4b|#;D&7t4P8xLd&uvIF~+e*fsQ|{{e~?b zG$&-M-?*_rAUy6saK~6?;HO|W-)%$m-IA@>nkTcS>OAOfR-P6PtKXI(EW8_c<7a#9 z&BXIh9Y6a$dG*=xRdnK*D%)132L%P-XhwPnjD5wDOgajJ}l*~-l&gR>l@!``^c zd>6Z290oey9TaQx%=R$9(D;FF9X*;LS3i{}wO?qhtAE&FU$ee0M<^2=5)Emb(DJ?g zr94qpM{J;27*Guj%;uX>>|5=oxFxz64xZo&xfMHKb~s`C!}PtNnDvx3S91;uZfurx z70s(?PTi5s`g}a)dF-2bgBQC$uX=SlF8Jfdq>dk9nJbHRD}p7AR+z*k%o8kT3*9^H ziUPxjSVh{5kWVIryokOU`e?$LfUZ%?ht2Yqx@@z3VS2#ewoVoFSsUGQq&1`BNA3OG z?`6l*^9xU;?JczXJ+mY%AE^3THK;MUWw30I@+CZ$8p4P$s5ktN`2his zpTluCC}xStIfQP-_U>=Zw9K$Mre+C-q9jO<&qj+>x}jp zU=XmGy;?ukp}{K7H)ODMbpG%)lT1QCO?et_I(hr(nUR5kaRIZ3=DJO@591wSr+^mV zsm7(P)AJK6rX^D|{ok!kYJL7IKJ2Ogm-LsUMB`7pQ@5qg$c-tUC-y2MuVqKwm-@NY zm7=KXyP`*8)26i63TcxvQ|m-q%m_6e!M$m_%xctNhKq-{+GB+83@;;}u^t;dtemIV z-nCf9t~Q*2{Jl%O#J^2dQc~seqb+OPhdoK{&yRnue>Cj9;bZXqsaL$X!Y>`EcE7I_ zwAH?@FH+r7EjMUnbvkrd9`$n^G$TCIuQkdv*f)A`D0vbss3`o5U#8!F_n%HLtN`vq zgGRzPf=|bL*|S>rhK!<+sukIn%JegXN)58tmRlFktogU*do!c;O_!eLH;_q>VcccU zG@NUi$$Ml;7UWsD@gJH5ajqG_I(g)UV5{7>dwP9zqixBEiqK4ty!!7OGroPRNjsDR zW>lp;%-vf=DOcB@Z62(esGh0!l6B0^*CN2j$Nh2m`r*STOGguDJRI|B=B%--=pCb~ z!+!W5_P*`bX0^riH9eV5ldkQmF8fh?JoRSY_K(`sczeHkGT z4v^iFy=daJT&ShhJ69g6ZLKmF&8wTWQ7>`VIpqfhWb$uh*v$L~)#pL3pb&ilSkJOJD?IF0*DQdHqRPC^NL zQ~$4yv%L@5-hxft6XNwErF!YeN~2)5%3^^{wM{+Rh-`Pdh)*KHh(RO@p_F(7-RE%K z?iJ9e{B4*xn`f2GW!zPox=OJ>_{?jgY+(djYr*muYg zV6#gg_G6&u+$?)x$gV7U%)?dMg`R8fCu5hdPFR>KjWUY_`(;v;t{nIWd%KCM=|e-e z6z#1ax_Q61wAvQr*O)%{RnoptE8l$+)NQC**dEkj>@617DXtr%CbomCfX^_gaDm$b z!WLSR%K>_h>qXj(^KZ8sxMJ)V_@H*<->vs=}qrOa4EH3}tr0cxj-KEG?vCP%8 zzSt}F1K#PJoME&c^K!_`%kB4w+Y8r zPK&Vt$N~FBzzIN{;jeKAiJhW=W7S8m*L0jMQ#X7ncCCdK+tmE~JE_6F!L{QlkK2Dh z9iW-DJYjYQzt`a(pH%nNF){vY7B7zqUm;6yTivj5?}{@CDT^1)*F{4Dk25Hqb=U%w z$=uTNnPT_IR?dGy%Q~m7gQd9Uuy0}YyNV*}F8`!7s%jamKb^E*mS~<_GpAKq3fOMB z7P;2$g0nYzsRt4NgM5Nm=l&JH)bS589hn9F0=jL{F&Q=9rYRpLi;l_QeS3#k-OmR1 z^aKrk9E3}&l|93MPxzbMtjXZ@_=V^^T9Dh>klT#j*off$iHTvq6W@oQj{OnxAS92u zifTh@K#>t%GyBZlWi+h|YqaliIjg1R>(Q!=kFcMGZ)rcQKLi%@zPv66{?azYw*AZP z6N6wy| zex4dvZy5C-x}^BpyG1XO=^thjDFQ*){Hl33wSr;1l;6^#NpjvJMADh zx&(XtbYeQ|aSu`N;Uv&WK$`LS_;!hR7 z?6gX>cnm)dZ6nwt!LCLe!mS3Ub2))=#_1gv!2W~yT1J_L8fFYP6qi&w!Hn3Ae|O+- z&WCHTp9<18UPP)sfY~PI#-X-BJZ{Zwm}mq8^e1Ror&Zu{1uiR z^&#Mx4~rV^2*SMvR)8b4mkrB#`$bD@KC%D%hOZy{RP_7e+mk<+zPtF-l)Iw*RY^(1 zf~G{yasffSLBGmy*2W#EaXN=eW9}m*g~fSYiLUl}5a;T*VSW^o5;Q>U0na+g#3--+XU^+MeMUUEo!PgSNnrU%cEW;fdyA#1VD2t8>H@eFkr zsnm<@0id09r@B9KF2F6tP#`Sm{E4aAQ0bN7Lmcy=zv|+;MoV@#y)1y$#^qD1ScNBR zHkRR={F;V1?)_{LPJeZ51Ud*jREYU3how+^y#)``58!KqhyEDSV5680t zfI)8LbP^2fZR-KyZ#kB``-9G`_aKN>GF??5Jg~6>*Gd+%29`w(%bi zzHCSGFEkzN@@a}>uWmcT4dB!I&r51$YGa!IKZv{4I^ul<+s)TVp2zABNEB)08u=naBc%l-VS6o#N#PmGfsPx9(KeuhP)wnj%b{wh&P(DPGp_ zqjI+Wcl+0#p`p+6Mt#~i37i9R!LLGAQR198_@l_}Av5$fp}zFUz+j4s?&tc!X##_{ zUu|>Q?8XdNhaOokIxSn${qMjr_RF5%ou-~-?yY_&!6VUgmAR&7a?Ru}>j98G?g&EY zdC2LL&rUKi=o>vd_>uP?{{k<#SF(G#V+}si*3UM|tI#1Ov?p)U#&t-Sn3n+sf z@|U_*hIBKbh1i|~Tj2N=&mgGJajw)0D=Se8ht0$No!Q^ z`S%8dZPq;BKMz@rb*tJd8frUNu#kLy{~FANOT?SZ+DB(m>`7_7{g^I$2q^|OBG@({b)cb>aAyvO@x+;RU+@lOL- zF{!@mL(kD(d&ym>_}dO#@KLL2{g|Om^j`jh>n?cJg5r_uFS3K{yV!Nj|M0$dbq_=f z-zoz~9gXWPw^;ch9@$G>4uOS?zi@(zBB7e~s!GLSS^Jyw`jOs=*2*LuIJ6^82*SaRyXhd`A-9@Ox5gNo7h*3u&9^(c z%0D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 literal 0 HcmV?d00001 diff --git a/iphone/ZXingWidget/ZXingWidget.xcodeproj/project.pbxproj b/iphone/ZXingWidget/ZXingWidget.xcodeproj/project.pbxproj index 3eafbc085..10f4b6645 100644 --- a/iphone/ZXingWidget/ZXingWidget.xcodeproj/project.pbxproj +++ b/iphone/ZXingWidget/ZXingWidget.xcodeproj/project.pbxproj @@ -430,7 +430,6 @@ E5345AA21198859A000CB77F /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; E5345AC611988B6E000CB77F /* GrayBytesMonochromeBitmapSource.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GrayBytesMonochromeBitmapSource.h; sourceTree = ""; }; E5345AC711988B6E000CB77F /* GrayBytesMonochromeBitmapSource.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = GrayBytesMonochromeBitmapSource.cpp; sourceTree = ""; }; - E5345D2911999F62000CB77F /* beep-beep.caf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "beep-beep.caf"; sourceTree = ""; }; E5345F2B119B0762000CB77F /* Decoder.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = Decoder.mm; sourceTree = ""; }; /* End PBXFileReference section */ @@ -816,7 +815,6 @@ E5345D2811999F53000CB77F /* Resources */ = { isa = PBXGroup; children = ( - E5345D2911999F62000CB77F /* beep-beep.caf */, ); name = Resources; sourceTree = ""; diff --git a/iphone/ZXingWidget/ZXingWidgetController.h b/iphone/ZXingWidget/ZXingWidgetController.h index 9429fe6c3..6955d3453 100755 --- a/iphone/ZXingWidget/ZXingWidgetController.h +++ b/iphone/ZXingWidget/ZXingWidgetController.h @@ -28,12 +28,14 @@ OverlayView *overlayView; SystemSoundID beepSound; BOOL showCancel; + NSURL *soundToPlay; id delegate; BOOL wasCancelled; } @property (nonatomic, assign) id delegate; @property (nonatomic, assign) BOOL showCancel; +@property (nonatomic, assign) NSURL *soundToPlay; @property (nonatomic, retain) ParsedResult *result; @property (nonatomic, retain) NSArray *actions; diff --git a/iphone/ZXingWidget/ZXingWidgetController.m b/iphone/ZXingWidget/ZXingWidgetController.m index d3560afe9..adfc11753 100755 --- a/iphone/ZXingWidget/ZXingWidgetController.m +++ b/iphone/ZXingWidget/ZXingWidgetController.m @@ -29,12 +29,13 @@ CGImageRef UIGetScreenImage(); @implementation ZXingWidgetController -@synthesize result, actions, showCancel, delegate; +@synthesize result, actions, showCancel, delegate, soundToPlay; - (id)initWithDelegate:(id)scanDelegate { if (self = [super init]) { [self setDelegate:scanDelegate]; showCancel = true; + beepSound = -1; self.wantsFullScreenLayout = YES; self.sourceType = UIImagePickerControllerSourceTypeCamera; float zoomFactor = CAMERA_SCALAR; @@ -55,7 +56,9 @@ CGImageRef UIGetScreenImage(); } - (void)dealloc { - AudioServicesDisposeSystemSoundID(beepSound); + if (beepSound != -1) { + AudioServicesDisposeSystemSoundID(beepSound); + } [overlayView dealloc]; [super dealloc]; } @@ -85,13 +88,16 @@ CGImageRef UIGetScreenImage(); return false; } -- (void)viewDidLoad { - [super viewDidLoad]; - NSBundle *mainBundle = [NSBundle mainBundle]; - OSStatus error = AudioServicesCreateSystemSoundID((CFURLRef)[NSURL fileURLWithPath:[mainBundle pathForResource:@"beep-beep" ofType:@"caf"] isDirectory:NO], &beepSound); - if (error != kAudioServicesNoError) { - NSLog(@"Problem loading nearSound.caf"); - } +- (void)viewWillAppear:(BOOL)animated { + [super viewWillAppear:animated]; + NSLog(@"should load sound"); + if ([self soundToPlay] != nil) { + NSLog(@"will try to load sound"); + OSStatus error = AudioServicesCreateSystemSoundID((CFURLRef)[self soundToPlay], &beepSound); + if (error != kAudioServicesNoError) { + NSLog(@"Problem loading nearSound.caf"); + } + } } - (void)viewDidAppear:(BOOL)animated { @@ -113,27 +119,30 @@ CGImageRef UIGetScreenImage(); CGRect cropRect = overlayView.cropRect; cropRect.origin.x = 0.0; cropRect.origin.y = 0.0; - NSLog(@"crop rect %f, %f, %f, %f", cropRect.origin.x, cropRect.origin.y, cropRect.size.width, cropRect.size.height); [d decodeImage:scrn cropRect:cropRect]; } // DecoderDelegate methods - (void)decoder:(Decoder *)decoder willDecodeImage:(UIImage *)image usingSubset:(UIImage *)subset{ +#ifdef DEBUG NSLog(@"DecoderViewController MessageWhileDecodingWithDimensions: Decoding image (%.0fx%.0f) ...", image.size.width, image.size.height); +#endif } - (void)decoder:(Decoder *)decoder decodingImage:(UIImage *)image usingSubset:(UIImage *)subset progress:(NSString *)message { - NSLog(@"decoding image %@", message); } - (void)presentResultForString:(NSString *)resultString { - NSLog(@"in presentResultForString()"); self.result = [ResultParser parsedResultForString:resultString]; - AudioServicesPlaySystemSound(beepSound); + + if (beepSound != -1) { + NSLog(@"about to play beep... trying..."); + AudioServicesPlaySystemSound(beepSound); + } #ifdef DEBUG NSLog(@"result string = %@", resultString); NSLog(@"result has %d actions", actions ? 0 : actions.count); @@ -145,13 +154,11 @@ CGImageRef UIGetScreenImage(); forImage:(UIImage *)image usingSubset:(UIImage *)subset { // simply add the points to the image view - NSLog(@"got points for display"); [overlayView setPoints:resultPoints]; } - (void)decoder:(Decoder *)decoder didDecodeImage:(UIImage *)image usingSubset:(UIImage *)subset withResult:(TwoDDecoderResult *)twoDResult { - // [self presentResultForString:twoDResult.text]; - NSLog(@"decoded image!!"); + [self presentResultForString:[twoDResult text]]; [self presentResultPoints:[twoDResult points] forImage:image usingSubset:subset]; // now, in a selector, call the delegate to give this overlay time to show the points [self performSelector:@selector(alertDelegate:) withObject:[[twoDResult text] copy] afterDelay:1.0];