From eb4e77d2bb6f5333c8ba2402e198b8f503217132 Mon Sep 17 00:00:00 2001 From: Natalia Terlecka Date: Thu, 24 Dec 2015 09:52:39 +0100 Subject: [PATCH] cameraIsReady property and addPreviewLayerToView competition block. --- .../UserInterfaceState.xcuserstate | Bin 65974 -> 66643 bytes camera/CameraManager.swift | 45 ++++++++++++++---- 2 files changed, 35 insertions(+), 10 deletions(-) diff --git a/camera.xcodeproj/project.xcworkspace/xcuserdata/nataliaterlecka.xcuserdatad/UserInterfaceState.xcuserstate b/camera.xcodeproj/project.xcworkspace/xcuserdata/nataliaterlecka.xcuserdatad/UserInterfaceState.xcuserstate index eef13d5e27b6f4436e7391cab24a1b72df5c837d..69b6270226405f6fdb9e500b4d9dc22a748da01c 100644 GIT binary patch delta 28859 zcma&O2Yi&p^EiCZ?enBO{nE=N0YU8x~9x+@1LJ(Yu$gO$F@Vah;dkTOIWs*F@dDdUv!N{upEnXb%G<|uQO zBbB3+g~}pjnbM%FQdTSLl?}=!WwWwP*=|%$P)<}%QBGAt<%`N0%9+Ynm9Hu1Dd#H} zDHki3DVHl(E7vI3D%UADDK{&(DYq+kDR(RPD)%W5Di0|?P=2WVMER-m8|5kGx60GX zGs?5d@0911=atu#zbLOOZzz9N-c zhO(vXD0|9*a-^K7fs_~JO%0+3Q$r{pYA6**#Zqxp5|v7&QR!4JHIf=d)ljum9aT>? zP@}0aR3p_wjibg>lc>qmH0nia2DPA!T1+jWmQyRJHB=|Hj#^K>L+zpVQv0a=)VtIH z>LB$Y^%3I-Aa+bLl)*#vAfgVe@(e3mEdI~+2o<`50XVSCi*XU*Ra(V^5l3qoxrq|Hx=?(N2dN=(x{SLi{ z-b){*-={yIKc>H+zod`Sr|56#@969F4f-=^==f6@Oi6l1|yGFFT= zqhf5Bfs7a9%?x4&Gea03W+>y&1Ti5@1QWv~Fv&~?lgVT;qZlotV~Uvyrjn^*CNLA3 zNz4n(WM&F8m6^sE850AU7n$kIOUxW*E;Emr&n#uSnYGM1W<9fkF>YiwF}s-E%-hU6 z%wgtz<^$$K<|y+ObBsC3oMx^v*O*_J>&y-2SLPOThq=rA$=qWevI>@DDVAe-R$xU| z#k#WtSWk8kJDBxlhp~ZdFdM?Avl(nAo5g0cIczSQ$L6yItd4DATiLN}8{5uyu;bYA zMs@-_k)6a!>_T=CyO>?VzQHbKm$A#)73@lO6}y>zlik8@Ww){W*>~9k>_PSr`w@GD z{eu0HJ(E}V)^(5lew3< z8Qe^67WW#rid)UC;X1i4uA5uSt>e~nyScZycen%G2i(WpC)^j@G43Sy4R?k+&t2dy zb62=uxZB(x+#T)__c!+sPw^JKC2z%xyoz@<@@n3VcjpK2BluuGgb(Gz_;5agkL08H zR6dPQ=QH>`Udxy8rF zhxzyUPxvqRj0Mpm#9oCLMdPZ%h8 z2}1-wAxH=jB7`_WBV-BLLXMyl^g^@HBD4x)g*KsG=n%#Up z5#|b#uufPnY!EgIn}p56o5B`hyYPwdsqmTbx$uSXrEpaEN;oEbEgToV5zY$V3qK0i zg&RiUSK$xgzVJj;h(NRwX^|IIqMhg>x{4lRKQTlM6~n}EF+z+Kqr_-2MvN8X#6&S! zOcOK39I;p|5lh7?v0AJb8^ji|U7RkyB)%-p5NC?B#8*T~TqrIQ7mLfp<>Cr)o48%v zA?_645_gHa#ka-1V(~ulpm<39Nc>bhBc2t%6VHj~#S7wP@rrm|ydmBf{}Lal2$fRB zsyLOc%2DN{a#syh`KSU^A*xVSv?@`Rp~_TcsYa=^DxJ!pDpysg8dRfIV^ocjhK?l{ zLE?loi(X=v1wk$ZWe~gw!E^{-HT`7zY1eS3fnZldVm&1GncNNHAj!a~cYVZqu*6j9 z7ndd}&)LUl5bY;V4)E<4Fx9u;% zJfWymR1wpOm&&pWvc`2(R5sScx3yJF>L#Wu)+%bv%`=FZC4J2WH67i=3}Tj|c2sr& z0!}KdvHaQ6LuWT)7ShH`vUX1OUZUviBqo?9oBYlFEtmUWVVc?7|7zU7G}pyZ`oP7T znAgiVV27e}O)t|fnQ6CaZZFdwGgFDHli1tuyTp$QzwM&8w8k}ENnDbyyQWj7^D-h_ zooZBCDy>WxO;=67o9>&QK*ACd3?u|dI6}e$5}uIofrK9^HNg*PN8Gl=AWo4y zd_$#w-0~PTMlD6;)iU`mlY1Ir*&id9OJ92o-StQRAi~lcBUVcDheb*){qrn`VtDng zuRTf$IsgNm2GJn(+nOxh@bt0_#;9&-jc2Q61pd8FDtFRIPX-UPjK%NFOHSf*j%&0Q~eml2lP7}zR(Kd9ES0RP@Dxos_z$7!Y1W5iB`@RQ2Zt)#=5 zcG9QY+!$pkZrEiIMnLQ+|jg8vOF;*%&@z5cB&qe&pvy%$2tI$4f>2dBj2~HXug2?myCU zDJK1*N8vc>V1OOH3geENXEhA<;3)Y7hFf-H^f5#lfo9rCYW8KMPXhfdH)8zpUH=4@ z5%g9JoRsITb!~#QVfYaGEsQ#45KAS~wzS^i(R(oZv_Txzr{tUw{VWe)^jWE&5Q3-R z3BtXPap$D@!T@RYHXrN}A7k8w1#WK*!{My_O!<|{okj6r ziB#nUC5qIw%8SbHl|LvinXZ|BFP!71^`$g20#J|SO81YU#179 zho(nsfi<8NzJN9TZTbf>JVp#trHF7Zf8YRIWd=v!1e}2jBovS!Afbc=SPRs^4Kbl4 zK|+Eu{R9aM+|kB}AwENZ-+w6v{6PR>34(+bB&=l?S{fPQ9S{bh|Ic1xKrCWGS%-xL zC$sP-cZrA?>X!mCWu{b+2GT(WBt%H4AYlUu+qEDIWFsb&q3j@GFEcq{)h0*w_bUPh znXMRsn9_DiB*0B-D^_liA!cTXIx?V-skTNA&OM2JN5&v7m(4 z4-)-lmH{Sr&-epFub!zmR$nNuHi01_0aNvpgF;3;GuL1WfU+7>!8Bk5CP)l~gcl^d zAu(tzco9rTGLe-ALt=<5lQv1WqbEy6(N2DIfF$$%=Y%W-ixA%uNDPI9ugo`0S`qE- zw-R*8EUUn3um*HO!XFX=kO+iC&|1(9)*=?PY7U3Q2$>}qjd-nb2Y6d%`A^%v1NNA; z3x!0OSvxf1{RhImU!#WM5eEeZ2lhHOI0QcYKSg~6jv!H=Kq3MXk+P^L*?9X8NVc)w zen-Ixnejg->LmCEF@6h)7)Zp*jB!#OVmS{k$t)MZMesfN0TKz2NQ6WZBs6QmkKi(5 zL8Qr$NRe4m(MYFCVR2r5zk|Cn+ke{hPjC;h{RN41NMy)tnbOQSU%$sBkXim~`bd(b z5DS{VY)ItDEVOhf&efk}N!9VoD`Yh=@&`H$=p$7G#Nw2Lc#!va!6D_qH--6PbMI4WaKJH zRLk5oIB2XAy?nCCg8$ThBst2geH|p~vG$TK(Zi>NtoTpzO0vpKJ{l5Z%;akj`Dn5Q zk^fIJBU{O_NFh{)G(n7{|4r4RbXRlI2@VhM4MB1z`Obfe*+cF%iGmrUx=%b7DcXv9=w&*DgaM}9Ah`F8>)e;_ZR*}e>kmmx7j7Bf?xj{`%m?aF8@ zESVe_GCT-{LSS&{)IyYlLxw+-gvnpX-{i6VdpRV3CvPE{e?a0DXi3bLg}y31OdjO- z7x@pO|L-t(Og>TgQUoMkhr}G2Wv-Ny;^j|SQY_-3tSD=Wrch};9}){7Awgo{T8g81 zvkB1VX0gme%b}Bez~x4B{>Z!rraR$1|*h3Vi_csucbVw zeyIBakXQkUm9nT+I0`q1+8GNcj|dDw)(q|wc7VH6JaDXu(k66(0=^tfRuI2-HuMoZh-1u~zPBojm#Og^4ZIHOVcF)$Jz~ z3>8l$P>F@v1%B-vmTe8qD9*bj&(!@uLnTW;q}uTsDn(JNNBg4=xmEf#&BG^y%0fy} znUL7fNukua>A9T(g$rm%Y&3|uJq6sbL@iaS@LNymC_Pn36;Z`h2_!Z{;!Q|wfy7ow zY=gx1^;8*UpvtKVs*V`BYT_D5ylvj_&7xlDl6QD`=SHEO<1_3=%B1jH^NdZWQ!hP_m`Ta0 zg_=dZLd~XLg~WbH9Du|jNE}{Ey-v-c=2G(@@c~rcg@A>?3){i2cgsXAk}FY2ylW8C zdkkSOHD)?6%gp$L1~IP(FK;S*nAK+ddj>HF;Wd(J6)j!NWUbbk@$XAbYqiq0EUUx~ z)Hd0g8>vmyX6j993xzEBAtXM6#1Tk*3<9eZJAf5 zwNRj*EKsogX!7sT(t@;LkYz0>3kwTN3o8q23mOuaA%WCE;qx;ju0rD4dJEQqQ+UaL zEL4#A1uB0t1x8?dXsNQav9z_c zv$VH#uynL^vUIj|v2?XmTe?}g@3I(mTR8+Oe}c-Nq4FwJUV}>1!F8y-0hPZ(91|vq85&bZLO37|%NTDwVB4nVn&&RMa5>MSd7S=M&wMp(q6dD4%po+lqoQkb`-O!WmiFd;}Q8 z{?g8TXDPLq#kf%z=ZkR@iybi&s*}2GNXq2+{VTTl%}$JoXA1$SQG> zqDrhWX|);Qi3Q6U&>*@>xh0OaSvg6XUh|=n2H^+Gc_GLT~! zfCsP)0R~Ym9XB|t3P#4~kL(@#N;8#{t4%fR+>KOcE|QI1Fb+7g)!&129SGi6FFQq+^8}Zb7NBTe?#*3{F9W~!01surxyC#(|HwdA4GuLcg$&HD!9HpQ zWMEg#AXzsn3mN#a22YulwG8mJLAZsLfz(>8ft4Tw6Ke;`PGn_+0E6fvscIdhgSA!| zXOD4y8259n8snTW&J*K2>r@!$`V8I8I$AQ+*oDGLO2Q3V^^^9k%6#!91K>&WT3fz2qp`Vfz|cc z%dCdWz|ndfT2>)4aJL=@omIFD3~De-i;{to2AuV*Vr4*TFdHvH2HtBh_oI=4KO68= zSf$FqkkRH&Gi0D>G>%%UY#DfMv{{2Z8Q4EM5$iTm2Bl=Wv3Vl3JXSRvU*$FaBF{Aszbu4w9IE_a~y7p zmEhO`l7E|pRMq5)6`c4l{LUWyWQ-3+^n;|wO=g#whH-HS=PkuIyJLQcaU(EpUbC6* zC5%hJxRcHOFx|{&cn7wad1pUE*WO~LdmZCsJ-wxmTHG-2JdE=}xB(L1ikB)Y3FC%i zx{Ow{t1rg55R7}h)eajKZ4tU96SR|r78M@&H?25(S*?&8c67)M_D;$1XhyT*N2c~# zay1qehDDW+b-<#!WR7WL6R}R~FhP(^;5sThKPNNOkeQQ{+nb!MHsW^KR;@WxXl@4?CeJmq)bl_sb>N6RL z9XCJ{$C+L6OEV%3_jXJMRO1IoZ;ivb-s*&mxYa&D`fHpDQ=BqW#9$T9AiyAwKq`1k zrt#(xox?aEtk!|?0;ao&anTs}=XkuRT3wO_c}y@zmJQjByi<7%`MtBd5yNPi{7e&G%`yKs#>MpD93<)mTWpvo2#>UlmjP>~3^cr;m!(@% zJyLc~b&|$U7Nk2bV8^$%!uSzV4_>W{&(AjGYLeo!N2VqAxT-aSiDG+*a0a#JW$E)~ zc}V??f)w|%we-Veyck=nJ1;-JaO9a(5d z$Vn>f?a)Og{ThZ!@l&x2Si8vxc^b-JVfuPpF_p%G`^k-mQI7%B80qR%Tik&s?jTL> zK#H7(3r%b9X9=Zg*k;y4WaPGK8CaCB3=qaq81R>Ymf25-xX6f04C^4XoJ>p=ECa`% zp~^5hVhzGjgZz-G!Z<=QKwjEz!a;5wDKmTxqa_+TV8R$onASsx7sF;ezR_L#U36DMNgu9wVKFTuEE-1)tiuwz>ro}r7L zVJYRljPt8?CC1}{NCe+?a%gqedq*!uTxB$iCXay8bzC5oXD1fDeI{ihrI8VA<~XX7SiZhxE{1NAv}tjd_1kwWuRqtsMP-zvtP~V zMNIEOykaKzmHwG+EnR-a9I~$=q(Rgp*+EkDY+Q6$&oy%vVYv%r;P~up3@nm?!$uG3 z)@%o<HKTvP+yDiD2(Jz87w63b)31aH^>bwvwaZKUV7tov*gWKN|L0S6DHkzUBqf{l?nMd zIoQHGFhK+&@Ryd%!KIA#E}3B4oM=q&4kied2^{4NhU%8yWzu>dZYz}L%?pv*=Hm6n z`hd*bIX4Y6zlRCpF~QJzc(Jhl0OO)CZt^^HnmHmfy*@7qGkuB)Vq}8<>G2EPmM3*C z@RM}&@h;Q)D~yZ4xIOdDV>~VkJT@OM3)bIYf)O%-y(T|DC%DCfFfqG3zffz%Mk9=~qmh zBoT`Or8x`DDf4%kAbyd()Uwb+y0j24iq?O~$j1vKv4}s-6nO2n{!0dKFOId(E=Wwq z!{`m@M{>&!$zIyN*hlhOZ1%&)2x$;gq}5AYr5%g*FT&2*1Wnkd)P~0+92C9~ax}y6v z^e_T;(tc3+d*5LbjTfqI`GXmez{h)ZFdZUwE+0UJ(qW2P^sAqAZMl0v1ReR@0V*9s z$3Blppi|I^DxF9t(Hc4#D*uGadr)~FD*swbr_yP3I-LQP4o z69Ov;EFrMK2a&xOD&&(~cWL%28&@O!qQb9>xiAz^;>C3xPd0(MH)so9N9DI6&a~)I?k99rF0M(c2+#gutnb-bud& zfisjJCdfy*+5!9M1J9En6CJ`PLXLRCGwvllI$Oqe;w4qaQ{fb5poSrk$3E4!b;`&}X-sv&&G=1iI6P=^cy^HnqdHMo< zk^Y|kfxZNRHw1$q7!1J>2z($Ix}LsFU!i}Zf2Oa}*C6nPU>F3U5NIH}djK+#u?)me zX-~EXn_FMeUem6rZs=%flRoYWBz&dVE?4R8E?eo!>LHR>cR$r1G=_5fk#S<285an`AP9#b0)j{gq9BNdAZ7!jX51Ke z#)Ihxf*54;SP0@Ex{d)7AV@?HejrFPxuctPP9uUxBnBoA*93-Z!h$qG!2tn@VS(X+ z!3J@tz6w1W8lEt&p|Sc|<0Lh-S2eb@*HmX$G}W|c)JzKU3wSCh>3;?F_L2PWrl5rKLG&K;e<)B;)z;G3nA_6O+<|&WT_=SGCTYULlLF(DLPA61!vX>VH6cOCfxTw) zWza)(`OywOfoB4GpZgf)3x3RSX2f%T#e_2GVcIiKf|y7q>Ul&ggPyBD6_|)To=Jir z`5BLAQkYaGP4@US2vQ+P!5&{w+t64O;qUK1s=cPIU7ET!)#rfAFZ&;8-|y8mo5_1V z3YdI33Q+kiM}ebsc$M0l(KCh5D^$XiDQr5KQV6m;83P14vWJDObJJBbD6MT|YM5H4 zj;UuFn9ySh0G#mF|!1s3p-#m1kDh%K`@~&ZkT1vDp}xiW(Bhnf@%nAAgJwT zRx@juP6+BCsE43IzUkmC-P+(T?b!gmHZ$lE*#EL@XLc|wLy8pq=WlKF-?RoZvcG^wHk8R#44TSculyFi9|C;tqC9+t01L;sFB z$E;*7Fc+}_CPFX?*#LqUAeg+K`N2ZP{K#CkP@xA-Ua7DaSQ`RvCJwN6tUc?%IueJ8 zqr@k~2dvt(00QJqb0C-p!2;7V({9s7(<%rgS(m5oUm|3zS$vTcg1J4n zK|QTme3cY}`On-I9O%a2d!Q&-pA|a7Jc@?DC5XIuIzhQ$?DlEh2Lhj zkS$`1*%G#tEn^LAIa|S^5JYj)1wl6is0>&K(Y-OS0fLPXY=U6(X0{rs=Ec^r^=tz> z8Y$Sw#x_ClCQ>gDl5LQj1St|y0@9PRft0Puy%hPEd7+GNtEn)EB7zI*TP9>zjBlu` zkk`+pXe=jpt~M5x+H8s83uV&Yxl9gS)7=cDi+!G z00i&jxct!MuFtHg?a(&VOeoB6sH?}niZZd-EVR6$$F#EXS{oa1OP^}EyTJ;E-Olco z``f|pWZz# zJ;9!mgZCth3Sz|aX&3t~dl~}7_qiOr8@u~g_YKrDZkjnI_I7oVz4R~UAKA+gdMDDNHbWdDHRgvotmRz*W| zFWWu#p~9w{z0dx|K7imP1W4&q-RvXeF(~1ED?7+NS?krODk?aDLWv_GINcXYoFylq zGK;g~tT~!vIF{o$RC%9);4B2+L2wR&^AKEs;Nk{Oxhxe6)bBVUrMM0?VRkA|vBpBs!^KNvV~?K7#K)0tEKEnFvZqh-$+1HpZh z|MRb)1dKp;fA?`iyFeG_MijY)2_0pxXm&)p5r<7Knbc)8l zM%}~yM0}6^smICwh3xUJud#QLw!PkkUs`eEzQ*%S+M2aED_i+HNIFPX-}JZPE^g11>Ezh{dxaTB1<_WZC;GXab zNcM;1fG%FiBOmaDFb_B)w49?BY2dnb{kXsptk^yu36tS9J6) z4ZIESfP9m;<{cGYyfY+yWZz8g@y!a}gMgiUKS&PkGX?L-4@JJo z59GagZ+;Lzm>~jL9Fj4ed?h4frN2&R*~<6QuJLtdKSTR$Ig35}s?OVI8eDk%-VY?>vA^-{vgJA; znPM_ZVQ1Zq{6v1rf7yL1vbzzIX|mlb(a_A?FCuT{r$aLRslqe(Isbp{K9`@z&*vBL z=#-XU1j!6YW}rOlAcHu)E|RSzFl(=aR{Jhx|6=C|=XB;$AXzWi=}A1Y~xAYwQ% zf(SNMn`%t8rnxS63X(cVqDd_7%PVN?XXU(thFgdiJ3+1? z(9PGDwn>#O6>Zfbcs8d*XwVk?|IReF#wX@~PMT8=f7R>?Wylqz?dLvm;;)*MO_^D< zKV)0ofn=35=X^g`{yzVgd2HYCkNCg&e-sS=SWzk{1VUPHEVEy;Ndd`PNRIth00OCC z1WK?FEET2vV}YiJ3yk#mSe~&NlC6-ed&W8fC-A*lw+WK<&t+Y~78ysd6YK@F1~fo& zG$hCL8OK~2^i=}AEBJG(dk<3RkJB(&*@&&vyXODby8fK@f)5%Xt=NE~aswn=4_SU;5|shMaAAb}cIcMlo@_QMV!MQ3dGW^xX~l6GgbHEOrsIP_I9lsB z9ry0Np(;cQ=oO`&Dp!bsWP8sckPwg3xR4;AB!eRG>FI-zETlc3jfHdpMaMWujz@lu zZl;{bM0@|i+5{iUkp+qPZ$^?T@E>s98kGufM z$&j1^$*GW>21yk0CP+d^zPL%K7HWiAp-!k58idip7@-l8DDq!}=lB#xxT4uJ?wHw5KQs-{R9CU$u9KILY6P?0D zVJZqrVUqBIFj+uKyadUYAvpt*GuH~!&`!fwK&s3_J1i7jubAA+(4wSmXm3F8)#jrM zrqcb7`lF4Yv%Ht7s;_D4*>9jrN1A5&-P>yOGFDL2h=^;d%1vJuEkufF15oeut-=eED_!imI}*+ z<&bASrDSR?5d)3Qy|1yl;Z!Liun@KG6Ec^g8;9EGKVeH4|Ga zP#s*I)=|@h4CWyZYEn~WOQXEMl_K|AOJnvj(y+aQi2jn_UPo#7-Ymis{c@0A-^-yJ zx#&<)*h)b37ILp~cL?azX|u3XcuUwN>=xb@-Vyc)dxd?%en>8cVU0u=v}L30Ub~YzoCS1OSoN> zU4YIE3OZU^+lx^zjSY3pa^Wv0h>ap?*7}Zc7oCyxX`NfqR#Deh(OO^7F{!bpTliDB zC+CO%ivV?NCklTF4}^!P+egCR!au@e>61C}F?VDLO$CJ+8)4L5ph9%^Vd{#cq#Y#}oUD zs1n;G4iG)Xfufh_Ee;X~i$g>oNWKHfJ&@cB$$gMSUidB~4?yxDBoA#;_=>|sKM}oK zCI*V=MIljs!H|3pl7}JrzWnn8NPZ~)|0CJqoaBIMYinsUpD>ssUa~u4FC`w@W)$P` zSv!siG3lA#DL6jN`1EJ+S@?HP+=#j2C^;!j5%Yyf;z*Q>Ao(#)O`oh4wMa9)SP02a zWnI32jvsMU_X;c%%VqnaBImPCu>z9#@B(EOQmhec zrL>O+8pY9K<5Lo}Xv#+vz3iagvCV_%TR+4awt> zJORm*ko;ynmn5PR4ylV?Sd;fKprfK{Okzt@tMueOR$B00d8V73 zb`6|Mo#5uv~aYiw6%B^Xcw9VzhkZ&!^Kc82kIcjV z2a=EFX||ICrFW3>%3@vweGyuEZ{R$j=-)iWkKnWOb2^Z+D8w#^|Pm zc`+1!60f5AMnopP(Dd}om95JA z7f-&b08%uRUtB!#{As;s+`Qc9nDwgSe=(P+N+HET3f;v-#}9HvG^(Qk9Z)yawByrp z_A^nfs#Mh=pHNk)sv#vpO4WrbD^FBIp(;u$`mCQ6@!0@kl+=GqsBxitQ5|Q0g9oDU`2!?mL7vXJtco|YCio2 z`q0#Bx)Xh7Y9sw7y0LHseMss7Bcks`*`decPK*nB`0dX0V+Nq_M|m^ROstWKXA;o| zqteg^qjH#h^vNh4Q;0qp)rLL@wF!Oq=_vZ1lMNe$zSUHRA4t50KEJe*U5$?TyV05c z26hv>7kz%|0Q&UOVfI7zWA-!j`K3S6CzJ}g7rA%2pZR|15F>yOLLV>+MISFp=Ck=C z^ueMszMNmgui`iH#<%#r{6YR>^G+0fljsNZ^`U`vs-)zeZS|3_=)%#%1cMZ zV<-Wg6n|GSsx(!pYPxELYMpAMYO`vKYL8KMSoNvusOpsJwCalLs_GZjud3fvw`^D& zdz%3^Lv4oH_}c{947Z80iLr^ZNw7(>Nw&$eDYcnkv&v?J&D%DIY~Hu|(B_EE*ESby zF4}x=bIIm6n@2YP*gUZ%Y=JFhYiVm|>tO3->td_6b+_$jJHR%^w#fDk+by;yY;V}! zwKd+iePH{@&ce>t&cV*f&ehJ%&ciO!F3B#>uE?&$uFS67uF`IdU6Wml-B`PJyK#0V zyVva2+a0z0*6xzsb-UYkckKSOyKncvp0pS2)%I@o?)LrchuKHiN7={N$Jr;?C)p?4 z7ub)o*Vz}^7u%QG8|*9Wr`j*IKW%@*LFM3MbQtas;t=K#;h=FaI5ax6IE;1Za2W3} z(P5#(N{7u3yBywj*yFIz;a!K196omV)Zuf7FCD&eIP36}!xKkuM}Nm~#{|bT#|+0T z#~jBz#}dan$2Lc!qsb9EPIsK=xWsX(<8sH9j%yv)J8pE`?6}2opX0lZ2OZyY;+$NZ z)K2bB#(qxiP9~=ponCU9;dI&QmeYNw2TqTi{&6OqEu5{KX=m1Xm~*c4SmzgwD6KIaddk2rtg{F(C!=abH-oG&`xbiV8Sj|=Uha&dGS=rYu0n2Wzlpi7ubgiDl5 zj7ywLh0BXB>s+?E>~z`X^0vz%m-k&hbUEVkmCG@g<0D+Ix%}z!x65N!g{#ul+LdwT zTm@H^YmjS!>v&hAtI736*H>NVxXyE3;JVy(h3hKUcU(V|ru^t-3{i)vBh*pq7(xc-5_Oq+t9rY7r+SzAZS@}Ye)U21VfBaVkJX>4 zzf>PnpHQDtpHZJvUsPXGUr}FGUsvB$-%{UE-%~$O|E+%FrgWp+tlStk-c99Z=jQ0< z;-+>R;x^Q6n9rpMO)_WcL+AK2f! z|KI_W2Fw^RYryOQuX(bb&YrHGZk`?kTL(@ZXdDO!P9ONwz&{4w9e8ixUtT3%4PIls zn!H-PzVtflb@Zo#}AC-@-Pm9kKpJ_fOpBH`3`uyy3&F8w$ufCDKslMsHnZDV+U-_Q% zz2N)3@14%;RpOEKTE%Azp;Mpe&hTm_04_iXs5S^2m*mJ0o{Rz8$$Ia$n>Jkw+pw zjr=_FXymcTGm%#!Z$$nTMMRNNmQi#R7v&J;9HowOkLn-g8RZ)l5tSTO5LFUoh^mY- z)gZRamqx!I{dx4s==0IPME?86RVFcjxCF=h^>xoifxT;j~y2~G4_SnMX?8BKac$*_EDU5oLyZ1 zIG?y-aRG6|<3i$M;}YUDaVc@>ahY+W;tc3{!nnAJag*bw#lg7Qaj(bCi(3%4C~ird zaZTK|xP5US#~q715qB!?Ox(G+D{)ujuE+fv_j}y!xQFp%JQwd0?-}nMKP28a-akGp zJ~BQgJ}y2nUK3v)KQn$&{K5E-<4?w4h`%0xC;ndigZRJWpCni%FbRBum|&Y=pWvP_ zG$Ax0DIqH%H=!Uwn^2fgnNX8ZpD;S1DWS!fFfjop%t=_1uql5cDu1q|V_*LSW#2*uXPy8$KQR3qyB8f~wJGCU+B>N<%B$uS% zq>?1#=%fWn%ab-H?Myn9^hwfZNna!#O*)ozCh1(##iSpSE+_qz^jp$HjipA^*l6rD z4jLy-f6YM6Ak7esuf|Uks!7!3Y6>;Qno^BHQ=u8HY0|W6+BD-d6Er5xY|TPVr)INe zi)Nc`Qq!<)f72Dd$qIrQA-rlk#WE{gel(%2X=VDwR&x-)fG>N}}> zQ%|NoOtVT0NDEI(NXtpnrxmA_rB$R=r!}RurnRSyOPiSXLfWFV18JY9{gL)4-74KC z-6MTK`oQ!-=|1Vc>EY=~=_%>y=~?Ny=>_R!=@seK>9y$%>5b{l=@Zjo`m5=4G7>T} zGDqgMrL+qUS>gNZKf$x%3PhfHS^ufbD38%f6Ba?c{lTZ=EKZ?vJ_d$EW0eX zEcdMbSw30*Sz%e>S&><(S!r46S(#adSw&gJS*6CT(OK+~C}r+&Q_MbNA%#&pnuXIQPTc zBe`dDf6O&r&Apy`Gxzu0zw?MZGS4!P%@gu$^6c|G^Fs29@~ZM0^Ty^)%bT7zBkz^G zIeGK*7UnI-jhHZ{`1y|D=F576=741@;9_1+E3|1w#w` z3IYp;7X%lC7DN<86;u{XD_B?XMZt}c;z(z$mv*prsMb##s2!mV)kbKewQ<@+ZL&5^ zo2kvw=4(f3_1a=>nYKb(t*z6J);4Kdwe8yR+DY0eTBG(w?aSI(+E=x6wDYwKwM(?i zv@5l1w8n1jdhI6d7VUQJTiUm^d$sRs4{6`mex&_G`?>b0_G|4)?YG*q+Vk4)wLfZq z(q7Zv(Eg^qt-Y(guYIWfN2kyMorTU?$La)~jm}=@q;u7|>-y^k>IUh2bi;H3y5YJI zUAQhv7pqIqX>_T&3|+P^Pd8Gh(-rATb>&7~m9AFTplj5%=-PDSbQ5)xb<=cE_mXa= zZno}q-8`M7TdZ5ETcKO6>(Z^$ZPdM~+os#8+pXK9+pjyQJFNRq_p$CX-Iuy!x)Zun zx-+_Sx{JC?x+}V?y6d`|x?8$Cx_i0@y1#W#^h!OYx6(6uUa!*I=^gbhdN;kXpWajN ztskQI)%)v%^uhWteWX4{AFof+r|8r5S^8XkfnKXG)R*WD`bvF`zFt2@->e_2@6b=s zzo4J0H|eMAXXszizowt7U!Y&4e?z}qze?Y!U#s7s->l!N-=W{7e@DMhe?b49{sa9H z{ipgb^k3%Y;T)_lS^MJomslRbbIMrrC*nxEj?dmStgd*mW7nXmL-&pDeEYkP`0paW!ajtgJmC= zeO7k8>`vJ|17~nBI2(cuF@|`fp~28*7-yJoSY}vh_{eb7@U`KF;jZC+xm&q+`H=FI z^4#)*@~P!B%3mqpP`;ylSNVzZbLAJy|E{1atSW|71XToA%(On=8MnJYD%+<=<6Ql~t9of0a+w zuqthpp{la#g{tXQGpbfrt*_ct^=Z}ds&A@(tGZwHu-d(PP_<8WesytmS@nc!Q}y)f zwbfgzcT``mzEgd##-+xy#=9n^Cby;lJr){|cKeHJR@HRY9I5%L=6KD`ntL@5YF%nQ zYrShzYIAD~YA4seR6DbFZ|(cFAJtwm)?Tl@Str&x*Qx8G>NIt!b>r)dbuZSfuiIYt zR^5rZb9EQ%9@Ufemi1xv@%2gdqwCx2$JcMD-%-D-{%rk^^*=Qz8<+;ZA+RB$AsXFq zYH4U|SkbVqVPnJ5hHo3rHar?lj6vx-sQrs>aM3Gk?s&G5g1SIOgLq*T&o)bGLDLV^m{ocU$X?N3}rtg|AH~rjf-E7lr-yG5$ z+nmr`+uYLJ*1Ws1;XEa;fD?>yXx<*5KBOt+4f_ z*3Vi`w4NI4IJVzd&#}2<3&)m>T`+d}*i~askNsin|Etly|C%}&1&q6KZ);VQiq-*6 zTv*Xo>)zwlidz&%X;Ilb>?M1T?2ti1NkYg@$WG45IE0Wr&IwxF)jDx|@8`as`^)qF zC!YIpOXJqWt&98Lp(E~2Tt^%?P7pT~KP-M^e0co!_?_`Z@m2A)@%s4wczeREgaru; z6V4=DNw}7PNuVUOC-@Q`Bs@-BkhnB4Br!5EDiIZ(Sf7YZBqYL#4-=mx1t$HNv@Ge* zq@<+Oq@E;Ql0JD<@}%Uc$v-FWO+JuZkX(^moeU)RC0kR5r;JaTlyWHLR7zw@Qwkxa zEya~`FJ&+_I5jkNRcdrN6Y}{*3#XYcqe!+?rXD*_hdq`8e}c z=G(0BtnFDlvud-@S-323)?n5n)Ed-gR0OIRRgJ1cc~OI?N7<{h!?U+!mu1&yH)TK1 z9?Jfhvm@s~&f%P<970Z8&Zpc_xdFMSaxdma<)S)s`MILpuXzD^)1w9>rN!cuSPVCkc~8}I&ncgJ1KUCQ0|yWh&jmQ5%-S$3i9 za#?#>R~fhLQ~9X!fbyvFnDW?iZFz6Gr6QzaUB$+VqKc}D+KR^&uPWYFMpW*q+*?^& ziLS&|dMgJjA5|@^3aMIIb-n6#ReV)%m9xrI{X;csdG(6w+tsPn8P(!yb+xW0pk`{# zjGF({oUgf5(_JI2k=J~w9aB55c317;+GDlFwbiwCwZ>Xot+Q@g-Q2qQb;s(?)Sa)Z ztwY!0>fpMEbx-Oe>UY)etuL;xuCJ^2)c;-ouwg~RhKBHlTMa1<=?(G*u))|kvvGdo z4~=n+>8Qr6Mxe2;(b^Q$w5%z#DZVMA3Du-;>Tj|)FKJ%g9M+uGT-03JJlOoa`DM$V zmZL2vS|}~dmaf(jtrJ=&w_a+!+4@JTv{l;*q65%V(KFD;(Pz;Y(ADS`GzM)!d(bd? z0DT|*4E+K#8#4zJjM;(Nhq;MCVahP&mMVXj!|KZm|lzp zW5YNxZtQ66dh8W!8MYaV#^SISj*r4m#LvP9j_r~Wds_5OArvmgdT!|pdvU3e!?K(5#cG}AHqk%H{uB5XySO{B;r)!4B|rKdg5u~ zWnwHbo|r^Lr4qA7DZl9-bntHyqA1{e3*QKe2N@NK1cqYoJl5- z>0~}xLY9%0WF1*gHj&L_7x@ACE%`n96ZtD;IAs(ifHIykhZ0B$q6AZZq%5O^QdUvc zP!3R1DRmSkMNfH6olKoa4W!Pe22qz$ms3Nj;ndC4pQsVkeboKb1JpxQ)EVko>N)BK zY7F%c>YvnG)D&tuHH(@}t)|vd8>uZ+4D~hjGi@AgGHn`dCT$KakQPK+NZUv|Ks!x~ zq@AIiqur$aLAynZqb1T(Xoa+LS__Rq>!h)1-84Q;M3d6wG!@NCbI@Eg4-KXb(Eg@9 zq&=oRqrGb%-aZ%AzP5dL``PyR_OkY-c5Az*{a*XC_7C)7^pW&2^l|j5^cnQ;=yT}v z=!fYy>ACc~^agq}9Zkp4iF7iZO7EtN={T}?O8A$lL(O1IO$F;+4n8BvUzjN6P% zMn0p6QOYQ1)G-HJmP&0H4l%8Q?SQ!q6o8e<1j7N;8j8}|r9b-Di zbxiD-((zr#oQ}YbppJzdAsuTwe(KoK$?oj#ly(|AEuF5;2c54w-*tZI{M`ACIf6Nw zIh{F+`8{(Ua{+T9b1`!X^8oWUvxTWu+ z$X?7|$_`<#V6S4YVTZ9dus5-HvUjuhvJbEsYyn%umat`AfnCeHLc3OWt?8=oB6hWP zQM%f@cwK@nQJ0kSCnt?_mxHR{RCDS$jhq$^hJ)vjINcl`N63+IdN^{9ilgBG96e`{ z^QQaz?)BYQx(m7q-S@gbb4PQ>awl*nap!VZbHlhBxZ&I_+-=)(L(Q>=PUm91$EBoD^ITToObH zP*(-l1UCeQ0+K*0Km^YOF9fdyZv{hw55h^pxx)FvAB2m9ON7gW5yD-<{lY`Sqr&6D zi^8kI>%!lKw}f%RL}7}sP}nRa3K>FyP%4xQRYE{$5JJK}p-1?)@TKsLa7g%3_(k|l zv{bZSv`O@nXshTK(GJlb(SJl|QKAc?%c85I7*VX~wkTedBqEALB8$i)f<*(O`=WnE z-^3%tqs3#z6U39n)5J5yi^NOB%f&0itHojB4dQU|PvSk|6XIBLt{5wphygJyeky(= zekXn}{wV$|87&zrnIM@YnJSqf36w0Ctds1OoR$18$&@rp&=Q;kMU;>wREbM+Px4su zO!7kVO7ccJTsl!YT{=tpy>y;*t#q9_B8ikd%zxtY?y44Y>I4}Y^H3!><8H**^jcVvi-6{vZJyS zvQx6tvTRv7N>(MSl{LtkWvw!rj4A7qab*ITOs15nWjdK&_D()ozC^xS9wy%)-z48D zKOsLQkCdO2UzA75qvbc`$?`OLraW7oCohy2%kRp|}!Sou`>O*K|ENi|h9Lp4hktXirHQLR*ksWzy>Ra;cMREJe(RhLkzE2?X%7*(w5 zjw(S_sH#+l2B+a_lp2Eu()4Mp8i&TOxvzPkd8B!&d9E4Kj?zxn zF48X1F4wNmuF|g2Zq{zoZrASA?$(~rp3+8Y&uK4eFKd&u<=Pf4MvK>yv=l8(%hA5n ze$@@vjna+LUD4&}nsf>sq%-R*I-3sG4WM*?>mKO70ONsaz)WB^Fc(+|EC!YU%YhZZ z1|S^R0&E5L1ChWv;35zOL<2W~7$6qN1hRoVpb#hl%799s2B-rR00ejdAAkS@z3>*oL0jGe|!CByJFc@47hJowBP2gs53y9ha9s^H+C&AyqNH7YF z25*2dU@UkWOa%+T3a}n*1e?KD5ChUd2G{|1f+|o8f}j!X1udWlyax_~kHDwkKj263 zi+-4Xq<)ruwtlgGseZYBg?_U>LcdMFUB6%doBoXcy#AtIsYeWR3`-2l3?YVo+_>1d#u#SYU<@~IF&;IZ zFrG3-8qXOo7_S>+jdzR*#$;ovvCvpzEHhRb(MFt+U~Dt8jon6`QD~GKO-8e^-)J*F zH@-B!Hoh~yHw`z9G6k5%nNZVB5vJ{?7*m3&#e_3yOcs;P!5IG3$zXT71|B$gAPI`p(rR3N`ca$EGP%chl-$5 zs2r+-NDu{ThdLl8)CF-N0VIZcAUOm>Uwaq!Zb0>(>`m)!?&bHodmr}x+xxorUGIn9 z&*stQvF7pSiRLNhY33iy+s)_Ax6Fm+T62TB*^D;h%tUjySz%V1Rc4LZVjeL6ZGLEe zV*bbculcq4UEk=wv3=wFCiYG4o7Oj@Z&u&zzL36yeer#becgS|zOR-5%UH{J%WTUE z3u?6`%(B4}ZrNhlX4!7pY1w1hZ@FlRvRt)Xx7@V+VYy|wV~MvUT2d@&7J@}*dEGy; ze`9}ie?~vLpWFYS|3&}j{%_W?)n7_C>k;c|Yqa%-HO3liO}3_4E3BGFYK@EZ|(2xpX^^9!yTg>0gkzjKu3@x*zuzSwbT*fSm{{p2y?7= z9C2K5#5oEb^^U(B3Wv|}$~n$C-8sWK%elZA$Es+PN(yUbIAGL`N8?gHQg2D3U>YI zTILFMt#WNaxguO!T|c`Hx*}cYTo+wYu4vZ{SBxvgmF~)NWxH}+1+F4jiL1@k<8r!Q zyGOW#-K*Uj-J9JJ?w{Se-TT}J+=tyq-8bB5x7OY3wzzF>hx>v1i)XxNjwjF)_YY;2avUAMa1{ tr~0$}+5TLAzMtq<4+IW`4eVSzuy5eV|J^#nMvVBc)9(D&|L?%D{{gKURuTXJ delta 28860 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
sK4i6j|I4*Ev;FQ2=finWd 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 diff --git a/camera/CameraManager.swift b/camera/CameraManager.swift index 8ef7fc0..c57c8f5 100644 --- a/camera/CameraManager.swift +++ b/camera/CameraManager.swift @@ -68,7 +68,14 @@ public class CameraManager: NSObject, AVCaptureFileOutputRecordingDelegate { } } } - + + /// The Bool property to determine if the camera is ready to use. + public var cameraIsReady: Bool { + get { + return cameraIsSetup + } + } + /// The Bool property to determine if current device has front camera. public var hasFrontCamera: Bool = { let devices = AVCaptureDevice.devicesWithMediaType(AVMediaTypeVideo) @@ -79,7 +86,7 @@ public class CameraManager: NSObject, AVCaptureFileOutputRecordingDelegate { } } return false - }() + }() /// The Bool property to determine if current device has flash. public var hasFlash: Bool = { @@ -96,8 +103,10 @@ public class CameraManager: NSObject, AVCaptureFileOutputRecordingDelegate { /// Property to change camera device between front and back. public var cameraDevice = CameraDevice.Back { didSet { - if cameraDevice != oldValue { - _updateCameraDevice(cameraDevice) + if cameraIsSetup { + if cameraDevice != oldValue { + _updateCameraDevice(cameraDevice) + } } } } @@ -105,8 +114,10 @@ public class CameraManager: NSObject, AVCaptureFileOutputRecordingDelegate { /// Property to change camera flash mode. public var flashMode = CameraFlashMode.Off { didSet { - if flashMode != oldValue { - _updateFlasMode(flashMode) + if cameraIsSetup { + if flashMode != oldValue { + _updateFlasMode(flashMode) + } } } } @@ -114,8 +125,10 @@ public class CameraManager: NSObject, AVCaptureFileOutputRecordingDelegate { /// Property to change camera output quality. public var cameraOutputQuality = CameraOutputQuality.High { didSet { - if cameraOutputQuality != oldValue { - _updateCameraQualityMode(cameraOutputQuality) + if cameraIsSetup { + if cameraOutputQuality != oldValue { + _updateCameraQualityMode(cameraOutputQuality) + } } } } @@ -123,8 +136,10 @@ public class CameraManager: NSObject, AVCaptureFileOutputRecordingDelegate { /// Property to change camera output. public var cameraOutputMode = CameraOutputMode.StillImage { didSet { - if cameraOutputMode != oldValue { - _setupOutputMode(cameraOutputMode, oldCameraOutputMode: oldValue) + if cameraIsSetup { + if cameraOutputMode != oldValue { + _setupOutputMode(cameraOutputMode, oldCameraOutputMode: oldValue) + } } } } @@ -183,6 +198,7 @@ public class CameraManager: NSObject, AVCaptureFileOutputRecordingDelegate { :param: view The view you want to add the preview layer to :param: cameraOutputMode The mode you want capturesession to run image / video / video and microphone + :param: completition Optional completition block :returns: Current state of the camera: Ready / AccessDenied / NoDeviceFound / NotDetermined. */ @@ -190,6 +206,9 @@ public class CameraManager: NSObject, AVCaptureFileOutputRecordingDelegate { return addPreviewLayerToView(view, newCameraOutputMode: cameraOutputMode) } public func addPreviewLayerToView(view: UIView, newCameraOutputMode: CameraOutputMode) -> CameraState { + return addPreviewLayerToView(view, newCameraOutputMode: cameraOutputMode, completition: nil) + } + public func addPreviewLayerToView(view: UIView, newCameraOutputMode: CameraOutputMode, completition: (Void -> Void)?) -> CameraState { if _canLoadCamera() { if let _ = embedingView { if let validPreviewLayer = previewLayer { @@ -199,10 +218,16 @@ public class CameraManager: NSObject, AVCaptureFileOutputRecordingDelegate { if cameraIsSetup { _addPreviewLayerToView(view) cameraOutputMode = newCameraOutputMode + if let validCompletition = completition { + validCompletition() + } } else { _setupCamera({ Void -> Void in self._addPreviewLayerToView(view) self.cameraOutputMode = newCameraOutputMode + if let validCompletition = completition { + validCompletition() + } }) } }