From 7987b3dcf7dc27f8e20a706bd1073c9d5ec81938 Mon Sep 17 00:00:00 2001 From: vspader Date: Thu, 30 Jun 2005 16:13:22 +0000 Subject: [PATCH] Fixed bug when dragging folders to the dock in 10.3 --- AppController.m | 3 +++ Changelog | 10 ++++---- English.lproj/MainMenu.nib/info.nib | 6 +++-- English.lproj/MainMenu.nib/keyedobjects.nib | Bin 43345 -> 44287 bytes Feedback/FeedbackController.m | 1 - Info.plist | 18 +++++++------- Playlist/PlaylistController.m | 14 ++++++----- Playlist/PlaylistEntry.m | 2 -- Sound.m | 25 +++++--------------- SoundController.m | 6 ----- SoundFile/AACFile.m | 7 ++---- SoundFile/MonkeysFile.m | 2 +- SoundFile/ShnFile.m | 1 - SoundFile/SoundFile.m | 2 -- SoundFile/WavPackFile.m | 2 +- main.m | 2 ++ 16 files changed, 41 insertions(+), 60 deletions(-) diff --git a/AppController.m b/AppController.m index 6d20a7611..5e4a67d32 100644 --- a/AppController.m +++ b/AppController.m @@ -133,6 +133,7 @@ - (BOOL)application:(NSApplication *)theApplication openFile:(NSString *)filename { + DBLog(@"Adding path: %@", filename); if ([playlistController addPaths:[NSArray arrayWithObject:filename] sort:NO] != 1) return NO; @@ -141,6 +142,8 @@ - (void)application:(NSApplication *)theApplication openFiles:(NSArray *)filenames { + DBLog(@"Adding paths: %@", filenames); + [playlistController addPaths:filenames sort:YES]; [theApplication replyToOpenOrPrint:NSApplicationDelegateReplySuccess]; } diff --git a/Changelog b/Changelog index 07f7bfb86..8523d7281 100644 --- a/Changelog +++ b/Changelog @@ -1,10 +1,6 @@ -0.04.c +0.05 ---- -Fixed autopositioning of the volume slider. - -0.04.b ----- -Fixed crash when dragging/dropping files to the playlist. +Dragging to the dock icon now works in 10.3. 0.04 ---- @@ -14,6 +10,8 @@ Fixed version number, so autoupdate should work. Compiled with GCC3.3, which should hopefully fix issues with 10.3. (If it doesn't, contact me please) Now ignores case when dealing with file extensions. Added volume slider. +Fixed autopositioning of the volume slider. +Fixed crash when dragging/dropping files to the playlist. 0.0.3 ----- diff --git a/English.lproj/MainMenu.nib/info.nib b/English.lproj/MainMenu.nib/info.nib index dad8186b9..903636ac6 100644 --- a/English.lproj/MainMenu.nib/info.nib +++ b/English.lproj/MainMenu.nib/info.nib @@ -3,13 +3,15 @@ IBDocumentLocation - 288 118 356 240 0 0 1024 746 + 69 104 356 240 0 0 1024 746 IBEditorPositions 29 243 676 346 44 0 0 1024 746 463 356 394 312 249 0 0 1024 746 + 513 + 475 157 180 156 0 0 1024 746 IBFramework Version 439.0 @@ -20,7 +22,7 @@ IBOpenObjects 21 - 29 + 513 463 IBSystem Version diff --git a/English.lproj/MainMenu.nib/keyedobjects.nib b/English.lproj/MainMenu.nib/keyedobjects.nib index 50bc3cdf19654cec3307dc497b043939c6b25b85..4fac7d3f436c3597eeffedc96e1ee72654e95027 100644 GIT binary patch delta 26489 zcmb5W1)LMd_W-_|wPcfTlHGIn<8tnob9Z<5%aPn2haL{e;%+HWihFTw3oQkTQ;HXN zDK14?C{Xyn%^e3V<^TWvKSylm*}Qo(PiBVWCj{@#38tt81hS!NF{*uwkFW{H) z>stISeh*CMR*fFgg+5XL=sU% zG!aK65t&35kxk?iWkeNGP1F#zgo`lrI%X1yNyCBo#$zQ>au#MWs<0R4!FY)l(`;O=+kWsyEe#8bS@F zhEc<*QPf0g5;cRGNzI|=QcI|%)LLpCwSoE`nT^ar<|6ZvdB_54H?@a4K>b1;#&pyX zY#4QvI!2wMPE!}Ci_|shI(3`6Lp`K^r=C!+sW-s$Z|a>;tQE3CBcY|xO6Vwb61odL zgu%iHVT>?Vm?TUVrV8`WH^O{jIlNa0D}@b0m9U$zRoFw=PuO3m6LP}g!m+~f!U;mX z@C)Hw;S%9e;TqxEb^(OzgzJUh2)`BnAlxSWNw`b6UwA-xSa?KuQuwRzobbHxitv_D zds}!%_)z#<_=oUM;cMX=5h@Z;fg%cC5_mE2G8I{gtVIqYM^P7%x5!82EAkTsiy}o) zqG(Z!C{dIl$`oaZvdM0u0#T``OjJvnit0r5?PD!!5_K2#74;*#iu#L&h=z)Wi$;jX zipGg1i>8RCi)Ls=vqf`63q^}W%SB&{)`-@MHi^C$Z5R2FxuPASJ)%RRU&vz7VbKZE zInjBtQglIdRdh{sOLSZGK=e%XT=a+NPto6`DOMnQOB3)JOp`QiOq+E4Fr{s1XOP(d zLc7rJvgM~WxF=S1-&@pSl{A)YCo2cPrB3&hLe^K0=6@mldZ(Gc-w@mBFp@lWDi z;@#o{;)C!yLQWK)6rUBJ6JHkpCcZ1WCB7$qEZR=yivJY97M&w2B?1X0I;16wB~poz z#8_e_v60wHR!P=Mwn%nKc1!k1_DO!09Fm-tT#?*?-*+T;C66U9;oD!5*EB{;XohBK zE2KfP8)=}O=|DQ1j-Vq!vDuQ{bPioe7lT&I=?1zR-6~lP&-&3ic<1Qh^fY=ly@Xx^ zzqD)Uwe%149{MnS8h)Ok&w*m^()Z|R@aq}<9F+SP{aQLkdRvx+6S8DkiYyggX|i(0a&vQojS)Ua~e>U)cazfoveW50VWAGDFB5*--f8 zWW!{`>C>_iveB|JvazypfHfY-Wy&VVCdz7wCm>D}6)Bq}n<1MgU&t(BmNLsQg@D!D zifr{!B5QqxC{Bu6ArqP3m|M(k<_>dLzglD;CRob6VqP+Md)9$(YFvGHsIo5&`y$!rRn z%BHdDYzCXjX0h394x7v7vH5HPTgVo%#cT;%%9gR^Yz3>WWUJU}wgxF-YuP%so^4=N zY$My1RkIqliEU23kN>z~p~FmyZ- zI-bna)7{YB)ScG-raP-Ue-alO`kxNH&*ZSL4Beew65qY6eTu53M{aa`KXSE*vb49l zdq4i+M{Em#ZISLiu)Xss+Y$rY()Zoa-PPR#wyiwdUx97A;;Zo*U|q*yr5sjn;9gc1 z-=eDRWzP>pJ9ibL)aQ6wYt`+;j`-qDz_+C`D?dTiyN{-|wvVQJt4^SM0&+b3RE}1I z9NnS&Jq_J|qQUR&F5SGN8h6s3T9s?sHU(fr_bt%3)vYMr)u_-@V6x53&$;K*fPW-FPa_ zpHLy3_)#UCfr=|ng+pC9)RiCAE+365;f|XVo*Y(d7}Yv`wx3m|uVH257nkHVRqx(8 zwXLd;R6qm(+aM10;@P@?j;#{dh8cwa&d)V122obkt5x;Q`8`xEEt=M@AN3+0$R%>9 zA5YHbbL3Jwjk=3}R;j_Li5x)8x;L5||~?gw&c5a0dakGo$E-LK@Z z0z>x;^+){81KX+B0rdtB4d0 zv0H#ceLKg&fH;&x6M4kgbN_ahgpS}0JsJi*8o~DnSzDNuUr^hXL*qC!p6^-0$2}VZ zJsZbijfS3e)jtVP1h?~<41A_?Xd2Ha`SX0f06sGeBbXCt*MT|*Q0H-IHjkR|dDMk~ zy4ZlaG|)-e&UFQ#uHw)F9yRy#sA~arJ&#Iknik~Uq0;XFcPodM^0-BxsI)^b+W>RB zfoWY(atGpGK-|xvRXk$(Cy0hYoKE}6Tuzbztu)Av-y zTUsEdq$O!h+Cn_#-K-kWdm(AXp#v6@Hu@t<57LozT0}bO-ziOmE~M*X(iOrP>rm@Y zJ3uN(ccg^$AU&Z2g`tH3JYjz_khFbI5N0#Sp##t0otJoy#AGU&h6|8>96FvuCxYMWb%Kx9kN`4UKQ_#+ zp~Jrc7=$iJe*@TL02@@;qnE00*vE9r0APRtU@8ENC~Q^r@ADBrHCY1ygE&;rq0<3i z#(PF8y(HXD*1?E4LpG7kWVJplyo<0q*<&%;0~DtTxBB0ENvg@-xIjNO+%o$E$^fz% z^)_^J4u^iJ3+faL^(Kds&BPfU=n!VcmjF}Rr?##|Rish%>x2TPBgkg`t8mLsE~(@= zc;XP@@Ln)vAUOpDOV#H_So^-0C6$~3eHv)!^fKtv#KPVxRr5!ko=wgHqh4IpR&O(Ek?UXR!uGVl}dcT#H;n zE(;XoJh0$vbgRC5q({2)?;-b+`{3^Yc@XhN-jRpMU&zDytC3X}M}a*Lag00;f3uN`TgFWz2O-W z1-~DV4|NEKe#@cX7-A7YIHJ_y?Q`h~d1DEAgM3Op(`QD9Cj5bL3(3PAx=~lu-u@SP zaS?eDfry%)d9TSmi^x4l^jY$6@-6v}LMRk5r3A=X3Zro7$=?)33H3imPw|8KLrEwZ zX}gG`DJh3;=g^&tC^-cleH({DoHg(iRMlQ1&yY8WDLRWX(T|S_N3HbxW4aXaxb~D2 zkLy4=a_C+T-M5Hxrd&95H;3*4T*!C|TN_lpz)h-7QVO7AO1UFzkw0Oz&r6O=^0oK1 z_d|5<2B|48%6k#ztxt&cr2WVX%g76qKNX-K7~AE&Sy91M2-!@9>et5_qY?VOvB5^s zR16hM#ZmE80+oo=AhlGoUK&^Fl8Jaz*+>r#{gqegOWmOpNHQ?bL%5|>K2<;!Qbkm; zeoCB~RTlPx`^tk7sPvzO;qy| zs#zZp@A*F-r#o+{0wb!Iz9l~Ke|?e5RDY@fDG|6(1NGbE6DTdvhSXFqN^l@YP$L&n zBlW%sZU)q`?M6;b(5n){WRuZpfIN*VM6RJnspti; zmjQMKRfMbsMyvFF6H{coFq?TOWD@lqwMBn8(MtXUlD3T6M*T=_r*=>~sh{*O6Jss+ z3brEakd4SDWHX2UDb(3^WS-PPeST70NXMK7HJ#uU&Y=*vzBMcfzm)avQ`@Jl_dnJI zQ07^~!2FVA(K%QJ)Mdl7=SlXR&+@68hG$O6j?V9S+@M_9`pwDtW_A0wG2o7ZO5JNC|~Pk={1N>wmC* z2&L_+6*Bsgln&Jj&4hvu)h5{)7PasJA@$IVt5=N^yAR=oWO`WNR&(GQV<*ByfIAJ_INI=#K6ZOYZ zJrpVA(M9A@n4A1+BTPe|w67%SGkzrzX2L5QEka)kbM?+?(M}!hCS=t)hxc?j$E57Xjhjl6jXHA14pJfhPh4N$#1p!({^rpL<$7@!6V$quLs z>3%*R%?Q5dRF!ZPKO=;rsk)ApSm4VEd^q&naj@$KeRzhaf%4=IO-|GI$q4%Qf-Dra zFUZ0<`dt~$26%%xlS_n)_0KZikIxFBh}XPuwLT&>`Cn#uFRY_y7?%n>WC!z2yK;6~v$aZ~S3?b)FGh$|9XmNUF%z5c*8aF@LWoz;wn1B3A=qS6)vIpXiA&q*5XUE*E(i;^eD2 zJ|E#jJ}83d2N<{T_?pk*LrN%WPYKg<13$u#1N;O7eor31^>g^ifS+pMzcn|_vtyiy zGooBRYT{!vL2q6y==cvE?jtJV8}&YUW)}a7UPTq6N~AE8MQwZCYT z0SttNKpeE8FXQ9re}fGWO)zlyDc}6P#Uq16(+sFHIKhN=)Y969hJRxY6@6*IlonWq zzL!lanrFcLo)b)I$E@tFZfk68QT-cxh-ircySBjm{d_?Ni&h%2=W~KDI{5Zdb^8}4 znJQWjs@}*)!h)}ORnPcD)uPROf-L$5RQ;Vn)q-6%YV1@X@c9Y&>^AV3&-0n{IX?S<&jEuy#unPtcjyA}j{^R21O5^of8powe+7I) z^^4=>T*S+{n3uC43&QK#7g(oEsJG}6Xed?xQ{hMXgXjiiDR&AT-s=%K-v!S14V>5T zoL7F1^CRH=d#8q0@tjv1IOnv~4#@3M*aJSoKFJ0}FGYXBoOnfCM6`xEv4In;;{^IK zMW0MA8lh37gciW$+EV27@5x0AX%V#2#6?(~y2Ut4kI~Cq$@h#L3cPRLlvkS z>dteZd(stjZ+NxQZPaAFeVLQnK%RaZCpfJuI`baIP$TiDhXPR@yoMpi=@I(oGAHZN z2)CLZLyx7$(c|d}^hA0RJ(-?DPlbI@y?$j`@c)1={UtJi{)${e&(S|DQ`)Sd=l?Tl zrN=;wv=+HWFNd@>t~}g;v#JAUt$tj2N0dZwrpI=~rzgu@3{XFGKyB9(6@mXjdE7^o ziz@64IEOlLj_8L~yr=vtJ-&nTp$b<6)P)YH%lfySP&a8vt_=xFa%DTz{SK%{`hk`I z#ed>Q{0~*O^MBoe^H%@jKXE2~gp*Qbz!8hval}%6pQ_OIbV+PXPwtRrTa`f?u~i3@ zt^RQ*lruf011hAt9m=Bv%3I%59rPbMoB9#|ZPo4k!#i-I^mnTNtDn<8!U?Tu$4T$N z$pP@bQ{!g$Aq#*QA8fEfm`PWNE73~yrMOyLqkmo#BZH^#tP!o`<9@MP zA72ZTQ{1vd+@c>`>+n8fBdf(dAb5fp0`?cdL4TmsteKxdD z(<|#^KfzxlUJUI^pna15i~8vIbtXDUybAop)q2yS_bXIi@dn{{ux>l(LZQq zd?J?kibQV67Njw18UPFe8j?Mjkn^*$y7-TGElUc zo+8>P=}9gi=FwyDI4Ym$iMP-aVm~rKv|BPnNT7|ho;*$k)8mO%TFFR}D|n$SqCqka zA0|o=Z;?zw`p^}S)(RzhdJ?e}e?k>Xz7#*g7a>~VWvG?(M*1OxB@0FO@f~C}JyraQ z9!m`6^N2v*3&=xZ3zidjb13Ad2X!-acR36;pwc<4io@!4CpZC^rkX=h$Xs>1IW1bF zy8~N|hTS_jaiQU`o}3_%!zwsz2!~DQ>&~}zQ1phW48fQ}2N|%$5D)`XqxqR3fNclJQ8hZK#kh0mdEH44o6KQt{CJ}$VGTf&fxjIm zc%Zw%VL)X&Y_xG$k&f2E%n%!lu)l7iAs+h^0&)(6lmn{H8Jys}?mCB_f( zCk$l(_&J3WJcd0W*v93{YuF^POWhkC1dqT|s*~w@>EK)oMAIt`d)SbY!eN(WP5_HW ztS*Pc<{E0mlGU(Zoup||@r7dE+Sei6a#5=&NYYgjPUMMPAsywF2D&cN@|uQT^YXPq z7}UNkC)xVp6bt&SJwFB`hb^e~10s^2O5yBFTU|FeF~JWzjB)Y%8OUKJ<$Tg-pQoya zsICg?FFaUmJ%45*tX;re?L}<9`YPEE5fxsfAJlB;(s_PH@(ZkUaDqm1xScm}l_L{6 z4ySzI)lM6zYt@|=!5gd|q7I>Xkv|}|CrckAA`@UF{{!!zo$c89bdp@}?CfoWvRyc= z`h6ckYc(bB_j=oPd=H{Z!hr}P62U4B_U7{$b#`#zBu_gzyfAP8^KW?1fx}cVgslzj z`g+-^FUcFIRukHxuma2@R`I)rvAh|BO@f`FMV&1FsSH>hz;FCh8M;Rw>!R~~3{BHg z+?1JxXCTKY7L@Rms&a>_Xxfa%2-%aD7 z{SOQL|JL1qPMUT!Nei9Y+0`tb865cO`=P7-O7c~``fBP`y$u84&L54UbLl)70obx1 zz+r<7BQVfl26T3(8PFxun#{ESY54zVdH?^KNJVv4er%5(Eh^p;c-C4t?e<^eOBB#h z4r-sRbYFf=hnf%uHKF$T%3<7pYOKRJcF+Smk-??_865QR56B}55*svqc!g+9Y262n zjDTc|K=EsmJp4z3!H*OBi3a?Mq^HDF;$d(wVA7*`-vlc@zqpt4OEIjou&878;GH^6 z_FsB2oP_x2)B%zBxugAmU4YuB`F|q*3-7;l2wr@7ry5rCYJegNHtvHO#+SrvyLanW z+u8s->#&g0u*k0j=l!MVK6rnHXt(INq@1>f3Iy+FCh;zV_h6O0n*!$vju70P;JeTC z`v0_g{?}~zKOq`s*?;vKm(a&Ldwq&u8Ng*v{m|)YMeRj`_UVvz`orj-hky>ph@O&2 zIOPcLG?I@UE`O$X?FTbI9vZz*_m0W`pJFA@4?D$r%8Lc@0uDXDm4Cvsk|@aqJOkK)^98mL=fc#l;MwtF69qg30%aJUxkSlB0Hs7j_geXo z74WM0KM8P_jMVZ(#8-GQIE#R3!9hV72Dt!)TqogBAr0Y*VHQLio|0f2P=)~@z71Y? z4J(Bq$`tUJfEEaiC;9O2Bw(X1hM;T(;KBT*4Po7Bc*-{g0>1VUPY>!%r};yOB>x5^ z3{(urDA*#zXEXU#97H(6sy* z1~1h~AZB3hsEvPr5MRa5} zfkNp^FYyqP5V;i4lkg|>SRp|b;@7ALV6VPV|JS6G+LG(0afKVXuBvwfp2nHEU-K8f&sd9`^#BWNw8wLf|_fve9;H~r1 z&EPW!K6D4Y6!9a4eho1QcpuUm*w*4hF&G+%;Z69c9CpF@U2-|UO9zG~;CDA5 z(EbzRH60`_EaV4}EkNx4H6$CpkW=tk0XV56hD^bkwSu5?GKjl!{dBl~YF~?#k6HsdTXlFz zLPwnd&WPvN_v+r#!f&Md!}yO%A|v^I9t>3E&|*ypv&I84ufD&i`1z;J^6Ih$cM*4 zRY@w9wxO=JzWKd#2YZ%HmaJTg41{^zhV((bVgB*El&5v}9g7tYG7~@qUlYI6BaoAD zW^)pU)^dU~ItN{_VLjtP=EJODP(*Ye1DAwthWbiZ>>F%6b_9El&BA^a3h43J8Y&;t zz5$;R7htY?SD+G1zV>xs+4I*cY%29+y;L ze_%Ud9nxWkv0d0nY#p%*JBHn$+pr1PX>2Jy7JH1hNW!rn@I^ur+k*WmQP6rJMmS-! zMZ4)S*fOXH6=;z*Y%Oh#9VHil15Krhuv6FzY=gvy7>b>sr%4uyuV819zSv#tdu$0g z8=HeoCs6Dr6qR~Xh1d*93pN*f3DJ)d+bX_<%@eg^2Vnihh^^S~^i+{6^#GfXO~lsY z)1dxCVGqEK55vx2ldw(nWbq?xp;)^GPr$~)`s+YUMSQXI*dj?NHWTfNO~bw>_KOm* zZP;(v&ytbY0$Ku9u4~u|2pxJ81=wCFPxZ&{VOOw?$N=m|Y#h{$2<#m81Urt$!KE5K z_ANaLdx%}cR$_~xK=maunB+bFBR^no=7s0d=_e8>Z7 z`*|VA~8e`>AKe(mc*em^uB`~ zv~Zdb2q}2)z6Yv_hH4Cig)3my!i>Se3lcfOY}iSL;w8VC31c&k!+d#9FDT^DS+KP6 zu`I+FI44-k3HEVKIgj?$uXv z7q$2W4!_9ZmpJ?~hhO3Fs~p@*!LM`p4GzD_;lFYCEe^lU;deOvE{EUa@cSJ8fWseh z_#+N~%;CRt_!AC)%HhvA{5gmJ!Qp>$_zMny$>DGf?-hrGzUDIM5(f2@hsp;tsH0rV zpd5ofmG5NGneg3+L4RdXfBWo-_4-Q8T7dP zn*1n(TFZ|xD9NDP7!=?@)LU{B2DM?(FBt(M-y{EuL8me31$kFSfHLS@IS{_Wpk3sb zwCu{&F+@a|f|(5_%SKQriR`PcF_@;eM_4*l25a~U*Po+5`)xW=Fx8B{Dk z#h~u;fedQLpwLAS{SkwXm3M~$l0&-_gPvi~dknfxeph}`euF_*%FoKLGw31)-6RJ^ z*D(T8UcsQga!`#}{(wQ3F{n3~?GOglFzD|L8Y%~AMlz_Dkm2pUCGhXb^+q^7C?Y20bNT$DrRb=ne)2 z6>X4DVFVHey)R$DplU;a%zlM%3p$QsvU4RXVS2Sk&g=sCAv64f9GzXvE?LAb(f>5U zP0Qa4{{b#2-=$xRNihqzyCcM@;tFxSxTjbPm$R3PH^J5GL*f(SQ*hz>0$jMhCcY`Y z4HvE-h#!leh@XpJh+m1{h~G+32_}(9%q5l*Yl#a~Gb1I@k`zfUR5a@)ZIYpq(UK{W z>5?UqHIkih2b;fpeNJ*gE4f5VX-BwV9R-)w%izF5A2?$$o}NxGq!-gm>E-kadKJ9} zE~;;!H^D{q@9AxDkNN_AlYU4)rJqX)sa)zPb(eZdy`{cVe`&b1L|P`TkXA`+q;=8; zX`@svZIZS~Tctguy`+7leWkOd%cUEn-%Edz9+sY!YR^kAN-s;VNUuw8N^eQ;KyL9A zat0Lg1p;yf5#$Lpg!`4Up|aVsO|ql1v$89)2ePMfTJ9kakcZ2Yoc-Z)b0l11PKL|L)o=s3 zJKQtw3wMkM!9C)sa9?;XyOQ0=?qGMZd)R&KQTA8%BKw5>+emCg8_A3qBO@adBWoj9 zqX45|Bc)NSkv7e!!boG(%c!5xD5LL;_8J{GI&XB#=(#a!j2RQgl(EPdju{xsjg5>= zjLnQKj6IEmj3bPrjAM-Bj1!Ez8TT{hjK>>KG@fic)mU#l-FT+)EaTb6^Nbf5uP|P1 zyw-TV31(tr5^9oeQfyLdqBEIo@}tSmCZ|oVn>;c3)8wVr4t*O1Klc}$1glV#AiD{W>g{jK4tLaeF(WX;O=b0`yU2D4Dbff8J({D{L znBFseVJ0x6%`D8E&3w%K%mU1mW}#-`W|3xPW))^tW;JGYW({Ttz)NHw#cAMFDvz=zU%=Va_HoIbW&+M(amAQ?%ow5A(t1L(TQ()6Hj^&oZBFzSjIZ^KIron?E*xV*bqhrTO3HZ!HiD!h*7Jws5s@ zvv9ZYwD7hFw#c_Av?#VHwJ5i!v>0Wfx0r4*(_)UrT#I>Hiv<>oEOuD@WU<>~uf=|g zgBC|DPFkF|cx>^+;+e%C7B4I@OM6R4OJ_@0OE*h*OCL+6Wwd3MWszmGWjD+2mOU+d zTMn@tXF1t&s^!;~8!W%K+-rHu^0DP#Rst*BinJ11(N+>G#>&Xb(<;;|&MMQY#A=9@ z){3(lZZ*zZ1vjeZ>x9KsI|bFu%@g<)(+NX)-Bdr>xtHL ztT$Nius&{m+xo8ced~wTkFB3rKePVB`jzz?>$f(D4PisuSlQUyINCVdbg>Dv3ARz% zgxMt61)H;OtP6{v(#q2%~qS!TAQ;r=WQ<9T(Y@hbIs;2 zTYuX?+hALzZJ2F@ZIo?{ZJcegZGml(ZHaA}ZG&x3+upWqw*725+i|uNY**N>vRz}l z&UU@+M%&G{hwVr^p&e}}v6I@#?N~cwJ5xI=J2yLbJ5M`rJEdKsU9w%OUAkSNU6oyp z-4Hvi9cMS(PCLSGl-(G+g?8udF4|qTyJ~mc?xx)>yE}IG>>k^_v3qNe*bD3>_7?V5 z_BQr*_6mD{`#}3r`*QnA`)d1I`#O7-eOG&peY5>Q`{DL;?N8g^xBtsQ=HTfN;t=hS z=1}NR{~Tz0tXaNXgi z!*33E9PT+haKs!V9HSg#9OE1l9FrVV9Mc>#9CI8i9jhH{9qS!i90xcKavb8QbsXb3 z)lu)b-f^SjX2)+GzjNH`_=DpKC$SUlBy(b%jGRoI%$zKotehO3e4PB80-S=JVx6*_ za-8y<3Y==3G)~%Pr!h|BoF+I;a+>Tk)k*KP%IT)lEvGw9_naO$J#zZp=`W|(PJcTK zoMq08vyrojvz@c2v$wOav%hnMbE0#ybAxlEv)Z}Ix!JkZxrcKv=W))vo%cHLcRuKR z$oa7IQRm~%C!Nnb-*&$1eBb$@^Gg@Pg>n(Oh+RxvY+dYKBDF5jF0n50E(tD4E-5ZG zF0))_yUcZ&@3PQkvCC4Ils&&=5j&vR8s&}34y3F-!*OjiDT=%;kbUopE z$@RJG-(B!7)?K=EN$8@@?2^|-)uq*~+^y2B+O5{D-c9A!)lK8p?AGem)2)wNKevHy zL)>(3!`()?jdh#gHrZ{O+jO@t-DbPZb6e=P#BI6TO1Cv`>)kfFee1T>ZJXN;w_R>~ z-43`Nay#O7-0fGlGj8YIF1cNGyWw`r?XKGcx5sWz-TrWU>Gs;~tpZixS_P$`;ZLqG zQkW_%6xIqmg`>hn;im9Vcq{xAfr=1Cm?BaUqli}|DN+>~ifl!mqEJzyC|6V|Y84HN zu8Jl_H$@LcZ$)3l0L5U1RxwO5QZYs`UNK2ARq=&lrs6BbT*U&#V#PAW3dL&0I>koC zX2nm6gNhT1UlrQZinEHp+!1%FyQ90id!T!?dxm?Kd%k;#dzpKMdzE{Qd!2i4cdh#{ z_mS>n+{e3r;XcECvHMc@@QC-w z^QiWy^{Dqyd5rQH<1x--g2yC}DIU{2mV2!C*yXXuY47D>DlVp!?TxXAJ4v?{XGYIj`y78Io0zE z&zYW!JXd+{_T1}v+ViI8Ezdii_dFkX(Oxny#>>dd#LLXf!pq&u%gfg*z$@4*+AG#8 z&8yI>*h}rz%50~kMJJlJ=uG@_cHIV zy;pg!@m}wJ-20^WY45Y%=e;j_U-rK3gZR)sav#>m#3$G%)F(pg6Xg@@6YrDgljl?D zQ{q$ZQ|(jh)8y0Lr>DQd`VxCuf$jC%lI1kn)q7!TKl^AdiZ+zhWSSNM*GJ3*84X4YJ8i0TYY=@_VOL# ztMwh@tM{GmyU2H`uXefbO5a1iM|_X_p7cHKd)D{7?-k!`zW028_kHU7&QIWn`%!*w zeja|_e!hMIenEaAei43Ae#w5Be%XE%e${@pehq#j{l@r>_nYW9#c!J57k&%2Kq2=kMU}>+kO$uJupz&+sqxukf$( zuk|11Khl4U|2Y2%{*(Nt_^+(z@UI30onjAV0gf|fN25q0~Q4=30NL*AmHbK!vRMFjt86! zI2CX{;C8_CfENLO1-uE=Is|qJbPx0j^a=D23=9koj1No-ObyHkEDkIU>>a2J93D6_ za7^Hu!1aNf0>25|68L@Kw!nRX2Lew8o(()7cqvE_L<9+gpkN;)3u1!of*gXpgZzR5 zf`Ws}gQ|jRgX)7CgVaGyK`lWegGL8^5i~PsR?wWFAA@!V?GD--bU+*QbI>nASA(tx z3xZ|AY_M^#S+FuVJUA*iCOAGgF*rH6I=D8tEqF%og5Vv&2ZK)rpAJ43d@=Y+@b%!| zf^UZyhd70#gs4JvA+ti(gzN~}6|y^IPsrYoeIW-!ehE1may;Zj$f=NfA#atG(oyN6 zbW?gLy_J5-KxK$BOc|-v#wg>JNy=1Zx-wr`p=?k#DSImWDTgSBE5|A)DW@yvDpxAE zD1TJ$R320wQ9e{Y3l)c&huViag}R0+LOnx$LNi0NLW@HyLN%eiLI;FS4c!>}P3V@; zA40c>{uH_=bYJN0Ff>dW#)KJ%nT1(~*@T6KMTW(M#fK$@rG}+z!@7s{51SUYE^K4i zH(^`CehAwhwlnN_*soz{!p?u@xj4L1ol54Q}r4tER>2oDYq4G#~G z437^l2rmvV3$F;T3hx@O32zA>7(OC=dia;&v%}|wFAV=Sd`I}c@Jr#3!k>gc5C1d# zWdt5!5@8-;6=54;AK@3F4TuPi2#tt{NQx+qD2u3!sEMeH=oT?Ff{PdtF*;&w#O#RG z5o;qhL~M@uE@EHAnTYcdmm;o2T#L9J@iO9d#M?+T5|4CASgT)AAw2GLRn3R~hn6{WPF>_-U#4L_k8nZlRWz3qGbuk-a zw#V#_*%xy#=19!(m|tVg#5{<36!RqJSVqe9Hevn;c;{0HpG1&w=M2)+_AV5ai`+W#9fWMANMHkN!;_e z7jduR-o)F)cZm;-4~Y+pkBpCrkB?7^PmRxt&y6pOua0ku9~M78{)_mP@%!U{jz1iK zEdF@>$@tUpj}n{`ToT+8+!MSKd=r8av>^$h3FQe52|W^eC-hCwCX7j#n6NluXTt7; zeF+B>eoi=?a4g|Yq9{?4C{2_n8YP-0nkU*MDibpkvlH_Y3lfVG>l1Z}!xKj(j!hhw zI3aOz;f@$fP7~ zQhriVQfX2}Qgu>Yk}9cd($J*&NsE#eCoN6dnDkB3cS&25b|jrnx|Z}P>0PoQnMf8U zi<3>0yCl0OdnNlO2P8)&XD8<+7bce^mnU~i9-7Q0k4PS!JT7@&^19@W$=@VzN&X>u zPx8LxgUOduWGQTlNs4)jRf=tjLyB{XYl>Epl8};@Ql3(o(wH(JWpIi%Wmw9{lrbse zQzoTMP5B~aM#`p?Z&S9WY)knuWoOFnlnW_uQr@MasaPu9RY?`68mIcD2BwCjhNXt5 zMy1B4mZlC&9g?a|aNtisRvRIr5;H=o_aF%bn3a(3#m6#@25UW zeWFc$p899%yEH)>kw&H2rg@|VrNyNsrlq9iq?M*srD@Z~rA>Bt($mwk(sR@E(hJgy)4QiHNnf76B7If*+Vl{)iHuVjXEV-aT+FzV@iNmU(>~KN(>c>MQ<3SO>6z)5 znU$HFS&&(rS&~_vS(Vv0b7tmOnR7DdWiHHIlDRB%Rpy4w1DR(s?_}Q3e3bbl^LZAM z#bg<0nQ5~uvuv^ySz%d`Sut7hSxH%?Sxs5pvU+6o%4*9Rp7ll6%&f1n=48#!TAsBf z>xZoESv#|KXC2HspLHqgYS#6v-?Cn3OR{CzY_@T>S++7eEITqgIy*KyK07hHBD+U6 zmpvkTboSWn3E6A1*JW?a-kkky_Ll7LvkzzA$bO#vB3t_^`|lhiN0eikW0PZ_Ln`@G5mTQ?Co*R`Ln;V~-l$(;9mRpirmaEPkkUKb6 zo6F^n$X%NIwKjKE?wZ{7xf^pg=kCuvn0qGoPVW8ON4dY}KFc%CGt0Bgv(B^2bI5bb zOUX;itH|q?*CVfYUf;X{dE@dXFU_yWACj-jAD%xle@yJ(aNILMQe*T6@63mLy`7u(S@SRMc0aM z7TqqoTlBKnq}aUJs@S&Jq1d_DwK%Xix459VxVWsivbd(WzIa6O=;Cq36N)DnPc7CL ze^orEcx&;t;vL1iiuV>DC_YsDp!jj|)8gmFFN*&veqDl<7?+rpSe96q*p(7vr5rMpUxlpZhrwe)o9xzdZJS4!`c-YGRtzx^2>_KO3Jvh5oM#x#+6Mh(@rVVm(3{q zvTR}5lCtGxE6Vnj9W48$>}c7EvQuSe%FdVFD0@&&lncwn<DV+_K!J+`inY z+_hX$?opmno?f0+o?D(*URYjIUS8g(d~W&r@=fL6lz&&gwR~IokL5ec50w8_ey99? z`J?j3MO+|f0V}+)osiIp&kBTuB8!9$ed|R=l z;`@ppE4EkcthiKhwc> z#!5{kSGlNiY31_D6_u+i*Hvz)+){a}@@(aW%FC5kDz8`mR{3|8Yn7tPqspsF>r>@l z6;Ksal~+|*RZ>-6RZ&%4RaZ5zYH`)Fs;{e7R;{jDSGB%sW7W~B6IG|G&Q_hPx>$9k z>d$JkYRhWtYTIguYUgU#YOm_F>dfk#>ip`0>f-9M>Ymlps;5`ate#apr+R+%!s@T9 z_f{XMK2&|A`e^lu>QmK^YRqaZYpiQ*wKeuNPBqRot~K#BNj0f888w+TIW_q;%{5=t z%&eJJGrMMP&4QYRHH&L@*6gm?S97rD=bFPc$7*iZ3Twr+bgitGtu?7NtF^0jug$K_ zt1YZ8sV%RqtgWk6)efnhSG%xwN$v95m9?vD*VP`X{k8T|?Y-JR>!>;!{^WIRoz|z$ zzb>dwSr=XxRTo=VR@YKDwr)b*mJlSu6tVdM?GC{ zT_0K>Q6F6&SD#p)QlDPmP~W#+Uq7RMR{fm%`SpwHm)7s7KT-d<{%QRm^)KsR*S~E* z8!Q_<8zLKG8sZxg8K^Le>b~j$>cMKQnp2NZk5Z3S zPf$-*PgQ@Ro}r$lo}-?xUZ`H8UanrLUZY;8-l*QJ{!ab9`bYIn^=|cE^#S!E^g)~>c7-))bBK?2G>v;TBD^ka*dJ3RAa8O z(%5S3HBK5=jhn_p_R#d!^wkW|4Ay8hoMyOYlxD1Eyk??ivSylQy5>vGY|T8)Ld_D*a?J|OYRxyA z?={;rdo{mm&S*8~HJ3D3H8(W3G)np~UQn%tW_o4lL+nj)JrnhKkW zn`)Zsn^a9*n{-Vpn!at?)3m?oVAG+dUz(0I9cwz#bh7D9)4OK08EeLy;r|$Drklmh zfz2V!Va<`v(ao{V@y&_NDb2afWzDtC4b5Gfo0?mir#EZAY@XdbuX#c9qUI&d%bHg- zuWkOWd292o=EKd$n*W~~&VxIvVvWLpkw{r4H$dnu5DXA{ZyIS5!O%M~2n1p{^_w%_ zobQC0foX>(Nbe8`y-5cVq(~7Eq)RsvdXNr=V!T<`b>C;LcmIgJ_H%CZ#nG2XUmJZx z3)hNiCA8w&hgzf-rIpsoXtlK3TD;akYpk`=I%++&K3acmkd~|s)rM=S+7xY?Hba}O z&DG{>3$?}CQf;kvSUaj6*G_7uwR74&=bkCUc9q)x2i@Zr(I+n|ICoX0G|C z`NVu}6`@vHtAbV8s%F)&YFV|dc&mZc*lK3Au!dU0tyF82m1d<|nq^p~HP>2TEwYwa znbtCExwX<-Wu3OpSr@EJ))niTb;HWGa;yi|bL*v*Z-?8(?2>kb{U5uO-PZotPO#hC z9qdl_XLh3fxjoQkwzPeFqD?2;Q|xc;>GmvpzMW;Sv{&0}?H%?$`;dJya4T>(a6gb6 zcocXVcoBFN$P2s;41|MXpd|PZM1m+#8bpI~pdzROs)HIJ7Q}(NpdM%d8iA&u zIcNpif=|Gwpd;uE5qa2lKg7r-TO z72E*XAP3w5_dqUq1fGHy;4knRyaV}8A?H1(s8h@-;m{AANT-w&?UZ*aIaQq)C)SB` z>NxREeW#Jr#A)WVa9TU1tN~+T9ION5VFTD0 zHiIo;8~8CyfE{3Gm2MaD3m3q}a4B34SHZP#1Kb3+!tHP;+zt1_{qP_>41b2l;Ys)_JPXgm-{2K^ z9cIHEcpKh>x$qHu3ZKJQ@HKn~{|Oceh6Tfe#S4fGmI_7(%LikE*Mr%?oZy`xy&rrS zd>nihd>PCOz76K1!YB-dqXL~ZibSPQG%AlOp{ghb#iBS=7u83NP*cMqi?@&48k&jbp!sMK%0yXc zB}Hq{dh{LIg0`bw=m+#8I)DzLqv$v~iB6+)=pwp|uA$%2O>`UGL%HY?dWv4Sh1`;E zgj>OlbDOvcZa25D+ut4N4s%Di0hhSGJHegqX1eR#ZSD?tw|mq*<7T@L-PfTap|DWV zP>E1G-Y##qx7XY69rO-)N4?YDRqwi&?d5p4 zy}RB6@A;U&#=IHx_n3ch5&S;>0GGhUaU?E2F4RI6P9Jj)4 z@hA9G+!1%iiMT6H!aZ9Du&cZA48oUl~#GCO}yaRua_uzf_AU=$L#`FX}h0oyg_#(cHui_i{4}1&X z#Sid9{1`vOFL54zi}Oig5=O#FK{HPxNE9hU%8`ns3aL(Nl8;CoQjatwO-OUninJx4 zkoKe#=|Z}aB+`@gA^pfeGK8d%VI-BLk#wRHlLQDPF3BL6jHQGTNyd{&WD1!^W{_EA zE?GbplT4CDR+2SjJ=sV$lWk-t*-iG6{p2Tdgd8KkkYCAJa)DeTSIBjeO>)R>a*yPa zN8|~4PF|8c@|NV&!n9z$LyOUpG=fIaGPE46NUPB5v?i@ZYty>4K5az%Hl;0SYub(` z(Dt+w?LxcKB-)eqrv2zZI)tXsVRQr?MboKHEgGPZx-^3lI*xLx=y*DbPNCE23_6?6 zqYLR0x{R)%tLeHKQ&&_hd}YS_t2)t+>@)T``-1ggy;(mtkPTreY#2*rX>2qzn9Ur9 zn8z?1%Q#bP0-MaHvgvFVo68ok#cU~C&Q`ItYy;cGwz3`Ud$xz|V+Yw`_A@)dPO&rW zJo}AZVb@tU%VBreefE$&X3yA5mdD<*d|sIHFdohetn@sRm*Ua9Jg>y7@)#b=<9JP8BtDD6jelZQB!;*>WF%xp=ctSi&mno z_(Zf9okSPWRV0a?qL1h=28m=bR16m*#n(a;rU(cqT#+FN72|{uzL+S!5#Nd#Vz!tk z7K$ZenOGrKi*;h7*ete*onp7xEB1?@#1U~!{33o8XT=3^Nn8~-#2@08xGV09T=7Ue z5zoadktg1Yd|6nA$#7Y`fCw2SOUr0kURIJ-WHlKhYsy-(wv3ncC2c61$mX(@Y$Myr z1leA8l3nEI@(bBr_LO~Oe>qSNktuSROqFReUFy=3KtkzCPhvS%GAX1lC&Gs)y>O`l$YDpc<@_Rf-y>QdOEtSDG@Ftte1X zxhg|pHC8btl&>bLZ`4#ZUCmT;)O@u_WvVQ-LakP7)dsamZB;weF11_jQTx;Z^^-cH zj;Ryslsco%sf+58x~i_LY?Y&KtGnuf`cpko&(uqmr{1V{D&H^UzvmbAKk$ne5aCDp zrAPW@{R)0%zp5YO*Ys=owf(w&eZP_4#Bb)e^jrJw`~<&)-`VftclDF}9)53sh@b4I h_-X#vzUD(e=!bmf`-T2@MT-2JQ7it<|9^k>e*uC{E5QH& delta 25564 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 diff --git a/Feedback/FeedbackController.m b/Feedback/FeedbackController.m index 4a450a83a..6129e94a6 100644 --- a/Feedback/FeedbackController.m +++ b/Feedback/FeedbackController.m @@ -23,7 +23,6 @@ - (void)alertDidEnd:(NSAlert *)alert returnCode:(int)returnCode contextInfo:(void *)contextInfo { - DBLog(@"CONTEXT: %i", contextInfo); if (contextInfo == YES) { [feedbackWindow close]; diff --git a/Info.plist b/Info.plist index da7734d91..78865cae0 100644 --- a/Info.plist +++ b/Info.plist @@ -11,14 +11,14 @@ * - CFBundleTypeName - Folder + CFBundleTypeOSTypes + + **** + fold + disk + CFBundleTypeRole - Editor - LSTypeIsPackage - - NSPersistentStoreTypeKey - Binary + None CFBundleTypeExtensions @@ -29,6 +29,8 @@ CFBundleTypeName AIFF Audio File + CFBundleTypeRole + Viewer CFBundleTypeExtensions @@ -93,7 +95,7 @@ CFBundleSignature ???? CFBundleVersion - 0.04.1 + 0.05 NSAppleScriptEnabled YES NSMainNibFile diff --git a/Playlist/PlaylistController.m b/Playlist/PlaylistController.m index e3037117a..a2382c37c 100644 --- a/Playlist/PlaylistController.m +++ b/Playlist/PlaylistController.m @@ -60,14 +60,17 @@ manager = [NSFileManager defaultManager]; + DBLog(@"Checking if path is a directory: %@", path); if ([manager fileExistsAtPath:path isDirectory:&isDir] && isDir == YES) { + DBLog(@"path is directory"); int count; int j; NSArray *subpaths; count = 0; subpaths = [manager subpathsAtPath:path]; + DBLog(@"Subpaths: %@", subpaths); for (j = 0; j < [subpaths count]; j++) { NSString *filepath; @@ -82,6 +85,7 @@ else { // DBLog(@"Adding fiiiiile: %@", path); + DBLog(@"path is a file"); return [self insertFile:path atIndex:index]; } } @@ -100,6 +104,7 @@ count = 0; + DBLog(@"Sorting paths"); if (sort == YES) { sortedFiles = [paths sortedArrayUsingSelector:@selector(caseInsensitiveCompare:)]; @@ -109,13 +114,14 @@ sortedFiles = paths; } + DBLog(@"Paths sorted: %@", sortedFiles); for(i=0; i < [sortedFiles count]; i++) { int j; NSString *f; f = [sortedFiles objectAtIndex:i]; -// DBLog(@"Adding file to index: %i", index+count); + DBLog(@"Inserting path"); j = [self insertPath:f atIndex:(index+count)]; // DBLog(@"Number added: %i", j); count+=j; @@ -181,15 +187,11 @@ NSArray *files = [[info draggingPasteboard] propertyListForType:NSFilenamesPboardType]; [self insertPaths:files atIndex:row sort:YES]; - DBLog(@"FILES ADDED"); - [self updateIndexesFromRow:row]; - DBLog(@"UPDATED THINGS"); + if (shuffle == YES) [self generateShuffleList]; - DBLog(@"ALL DONE"); - return YES; } diff --git a/Playlist/PlaylistEntry.m b/Playlist/PlaylistEntry.m index 44f289070..9e7e4396e 100644 --- a/Playlist/PlaylistEntry.m +++ b/Playlist/PlaylistEntry.m @@ -225,8 +225,6 @@ if (tag) { - DBLog(@"TAG: %i", tag); - char *pArtist, *pTitle, *pAlbum, *pGenre, *pComment; pArtist = taglib_tag_artist(tag); diff --git a/Sound.m b/Sound.m index 20dae2073..445cce040 100644 --- a/Sound.m +++ b/Sound.m @@ -59,8 +59,8 @@ static OSStatus Sound_ACInputProc(AudioConverterRef inAudioConverter, UInt32* io Sound *sound = (Sound *)inUserData; OSStatus err = noErr; - DBLog(@"Convert input proc"); - DBLog(@"Numpackets: %i %i", *ioNumberDataPackets, ioData->mNumberBuffers); +// DBLog(@"Convert input proc"); +// DBLog(@"Numpackets: %i %i", *ioNumberDataPackets, ioData->mNumberBuffers); int amountToWrite; int amountWritten; @@ -70,7 +70,7 @@ static OSStatus Sound_ACInputProc(AudioConverterRef inAudioConverter, UInt32* io sourceBuf = malloc(amountToWrite); sound->conversionBuffer = sourceBuf; - DBLog(@"Requesting: %i", amountToWrite); +// DBLog(@"Requesting: %i", amountToWrite); amountWritten = [sound->soundFile fillBuffer:sourceBuf ofSize:amountToWrite]; // DBLog(@"PACKET NUMBER RECEIVED: %i", *ioNumberDataPackets); @@ -79,7 +79,7 @@ static OSStatus Sound_ACInputProc(AudioConverterRef inAudioConverter, UInt32* io ioData->mBuffers[0].mNumberChannels = sound->sourceStreamFormat.mChannelsPerFrame; ioData->mNumberBuffers = 1; - DBLog(@"Input complete"); +// DBLog(@"Input complete"); return err; } @@ -144,7 +144,6 @@ static OSStatus Sound_Renderer(void *inRefCon, AudioUnitRenderActionFlags *ioAc - (id)init { - DBLog(@"HEllo"); self = [super init]; if (self) { @@ -233,8 +232,6 @@ static OSStatus Sound_Renderer(void *inRefCon, AudioUnitRenderActionFlags *ioAc [portMessage setMsgid:msgid]; - DBLog(@"Sending message (nodata): %i", msgid); - [portMessage sendBeforeDate:date]; [date release]; @@ -257,7 +254,6 @@ static OSStatus Sound_Renderer(void *inRefCon, AudioUnitRenderActionFlags *ioAc NSDate *date = [[NSDate alloc] initWithTimeIntervalSinceNow:20.0];//give shit a little time to send, just in case...may come back to bite me [portMessage setMsgid:msgid]; - DBLog(@"Sending message: %i", msgid); NS_DURING [portMessage sendBeforeDate:date]; @@ -335,7 +331,6 @@ static OSStatus Sound_Renderer(void *inRefCon, AudioUnitRenderActionFlags *ioAc newTime = [soundFile seekToTime:time]; if (newTime >= 0.0) { - DBLog(@"RESETTING"); [self resetBuffer]; pos = [self calculatePos:newTime]; @@ -637,9 +632,8 @@ static OSStatus Sound_Renderer(void *inRefCon, AudioUnitRenderActionFlags *ioAc - (void)setPlaybackStatus:(int)s { playbackStatus = s; - DBLog(@"SENDING MESSAGE"); + [self sendPortMessage:kCogStatusUpdateMessage withData:&s ofSize:(sizeof(int))]; - DBLog(@"MESSAGE SENT"); } - (void)pause @@ -663,7 +657,6 @@ static OSStatus Sound_Renderer(void *inRefCon, AudioUnitRenderActionFlags *ioAc - (void)stop { - DBLog(@"STOPPING 2"); [self stopAudioOutput]; DBLog(@"Audio output stopped"); [self resetBuffer]; @@ -673,16 +666,12 @@ static OSStatus Sound_Renderer(void *inRefCon, AudioUnitRenderActionFlags *ioAc // DBLog(@"HERE? PORT CONFLICT...FUCK"); unsigned long pos = 0; - DBLog(@"STOPPED 0"); [self sendPortMessage:kCogPositionUpdateMessage withData:&pos ofSize:(sizeof(unsigned long))]; // DBLog(@"THIS IS UBER SHITE: %@", positionTimer); - - DBLog(@"STOPPED 1"); [self stopPositionTimer]; // DBLog(@"INVALIDATED"); - DBLog(@"STOPPED 2"); } - (void)playFile:(NSString *)filename @@ -767,7 +756,7 @@ static OSStatus Sound_Renderer(void *inRefCon, AudioUnitRenderActionFlags *ioAc - (void)setVolume:(float)v { - DBLog(@"Setting volume to: %f", v); +// DBLog(@"Setting volume to: %f", v); //Get the current stream format of the output OSStatus err = AudioUnitSetParameter (outputUnit, kHALOutputParam_Volume, @@ -775,8 +764,6 @@ static OSStatus Sound_Renderer(void *inRefCon, AudioUnitRenderActionFlags *ioAc 0, v * 0.01f, 0); - - DBLog(@"Error: %lu", err); } diff --git a/SoundController.m b/SoundController.m index ba78a83e4..81b3db808 100644 --- a/SoundController.m +++ b/SoundController.m @@ -203,8 +203,6 @@ DBLog(@"NIL ALT"); } - DBLog(@"Setting button: %@", name); - [playButton setImage:img]; [playButton setAlternateImage:alt]; } @@ -238,7 +236,6 @@ { unsigned int message = [portMessage msgid]; - DBLog(@"GOT SOME KINDA WONDERFUL: %i %i", message, kCogStatusUpdateMessage); if (message == kCogCheckinMessage) { @@ -329,7 +326,6 @@ } else if (message == kCogStatusUpdateMessage) { - DBLog(@"MESSAGE?"); NSArray* components = [portMessage components]; NSData *data = [components objectAtIndex:0]; @@ -343,13 +339,11 @@ { //Show play image [self changePlayButtonImage:@"play"]; - DBLog(@"PLAY PIC"); } else if (s == kCogStatusPlaying) { //Show pause [self changePlayButtonImage:@"pause"]; - DBLog(@"PAUSE PIC"); } } } diff --git a/SoundFile/AACFile.m b/SoundFile/AACFile.m index d7a6fb7fe..41fe3b046 100644 --- a/SoundFile/AACFile.m +++ b/SoundFile/AACFile.m @@ -34,10 +34,7 @@ NeAACDecSetConfiguration(hAac, conf); get_AAC_format(inFd, &info, &seekTable, &seekTableLength, 1); - DBLog(@"INFO TIME"); - DBLog(@"---------"); - DBLog(@"%i %i %i %i %i", info.bitrate, info.channels, info.length, info.sampling_rate, info.version); - DBLog(@""); + fseek(inFd, 0, SEEK_SET); inputAmount = fread(inputBuffer, 1, INPUT_BUFFER_SIZE, inFd); @@ -158,7 +155,7 @@ second = (int)(milliseconds/1000.0); i = (int)(((float)second/length)*seekTableLength); - DBLog(@"SEEKING TO: %i %i", seekTable, seekTableLength); + pos = seekTable[i]; fseek(inFd, pos, SEEK_SET); diff --git a/SoundFile/MonkeysFile.m b/SoundFile/MonkeysFile.m index 4ca3dee52..72fb025f8 100644 --- a/SoundFile/MonkeysFile.m +++ b/SoundFile/MonkeysFile.m @@ -28,7 +28,7 @@ channels = decompress->GetInfo(APE_INFO_CHANNELS); totalSize = decompress->GetInfo(APE_INFO_TOTAL_BLOCKS)*bitsPerSample/8*channels; - DBLog(@"APE OPENED: %i %i %i %i", frequency, bitsPerSample, channels, totalSize); + return YES; } diff --git a/SoundFile/ShnFile.m b/SoundFile/ShnFile.m index f0858a6f9..cf598615a 100644 --- a/SoundFile/ShnFile.m +++ b/SoundFile/ShnFile.m @@ -50,7 +50,6 @@ totalSize = (((double)(length)*frequency)/1000.0) * channels * (bitsPerSample/8); bitRate = (int)((double)totalSize/((double)length/1000.0)); - DBLog(@"Bitrate; %i", bitRate); return YES; } diff --git a/SoundFile/SoundFile.m b/SoundFile/SoundFile.m index 5d4ea73c5..5beb37556 100644 --- a/SoundFile/SoundFile.m +++ b/SoundFile/SoundFile.m @@ -66,8 +66,6 @@ { SoundFile *soundFile; - DBLog(@"FILENAME: %@", [filename pathExtension]); - if (([[filename pathExtension] caseInsensitiveCompare:@"wav"] == NSOrderedSame) || ([[filename pathExtension] caseInsensitiveCompare:@"aiff"] == NSOrderedSame) || ([[filename pathExtension] caseInsensitiveCompare:@"aif"] == NSOrderedSame)) { soundFile = [[WaveFile alloc] init]; diff --git a/SoundFile/WavPackFile.m b/SoundFile/WavPackFile.m index c05979def..eef27eab7 100644 --- a/SoundFile/WavPackFile.m +++ b/SoundFile/WavPackFile.m @@ -69,7 +69,7 @@ { int sample; sample = (frequency/2)*(milliseconds/1000.0); - DBLog(@"%lf %i", milliseconds, sample); + WavpackSeekSample(wpc, sample); return milliseconds; diff --git a/main.m b/main.m index e73c36c7e..76dde019b 100644 --- a/main.m +++ b/main.m @@ -10,5 +10,7 @@ int main(int argc, char *argv[]) { + srandom(time(NULL)); + return NSApplicationMain(argc, (const char **) argv); }