From 4f27da1355b5a7b6297ee9013d229f5d19a75b7c Mon Sep 17 00:00:00 2001 From: =?utf8?q?J=C3=A9rome=20Decoodt?= Date: Mon, 24 Jan 2005 14:19:40 +0000 Subject: [PATCH] Added a Service Discovery sub menu in playlist contextual menu. --- .../English.lproj/MainMenu.nib/classes.nib | 2 + .../English.lproj/MainMenu.nib/objects.nib | Bin 33324 -> 36321 bytes modules/gui/macosx/playlist.h | 4 ++ modules/gui/macosx/playlist.m | 48 +++++++++++++++++- 4 files changed, 53 insertions(+), 1 deletion(-) diff --git a/extras/MacOSX/Resources/English.lproj/MainMenu.nib/classes.nib b/extras/MacOSX/Resources/English.lproj/MainMenu.nib/classes.nib index ae36c854b5..bffb82d835 100644 --- a/extras/MacOSX/Resources/English.lproj/MainMenu.nib/classes.nib +++ b/extras/MacOSX/Resources/English.lproj/MainMenu.nib/classes.nib @@ -262,8 +262,10 @@ "o_mi_play" = id; "o_mi_save_playlist" = id; "o_mi_selectall" = id; + "o_mi_services" = id; "o_mi_sort_author" = id; "o_mi_sort_name" = id; + "o_mu_services" = id; "o_outline_view" = id; "o_random_ckb" = id; "o_search_field" = id; diff --git a/extras/MacOSX/Resources/English.lproj/MainMenu.nib/objects.nib b/extras/MacOSX/Resources/English.lproj/MainMenu.nib/objects.nib index 5159d5eb0c4e6fe45996f7e6797204945e131392..5d23ed890a964f20b55bb08b55d91e9864ffbb89 100644 GIT binary patch literal 36321 zcmb__34mKw)&F}hFUgywolaZIB1?cuOOduSg$k8rx=pEcgDGV`w)tl=nVHy360&qr zl%8oOfG8i-HnbE3te_Ms%7=)6rA2|Vifn?FMFBq$At(X@(*A$v-nV6$ne>xF=H}hA z+;h)8_uPBWz4t}0ORr9ZyHe?7IM_#?H?wL>Hk%!}sBQkN#hqUZhthL`=^!buX0yhk zHkqRgtdl6SGpTgEPi7vyKC87bDbU)|$w;h6U7uBt8L_BsW+D-dgo5cvJeC{CWz`5N z|IP!kc2V2Ha4a)F9quFT`t{7yC$mU-e0^4rw6wG+*^L`L%NESe$pRN<(!tJXcxEyg zT&-lYelQnb*Kev{m%V1)=IjU%&7aSdEi)p5dfd#;cqSbHk3e6zD-sMOqQTYSWDbm# zoYH^s-o1O30dOC+s7+Sq%y256Nru8lug?PqMa=ID_JkR~K}t8fHym2t7fdeC@A|3O3q$<0}I*qtUV&7dJ+=4Q8B?i3s}=0$ezl&27u#&y|0{ul)NFIzAxnMw7AyB3Di!KiR1f=rZZ zKOXeLy4{=lYvChq85m%HRPXe-a2k?(xo@Qv_|*B{b>MrTFr>heIjw<2FqIB>#)HYO z0Q+)yfQ=guT@-F#8dy5NwKcHfxXDv1;xq}Ixv@|%k;+8jwYmaJ;;D37C>cql11p*) zH&-OvZ&6!oBpQwd`@*RuqS&QYsRx-t&7Zxrj5PNRQe&h(HC|Ep@4DUW9@h=P&xb-S zii#?7GYEyu4oA)Q;cqjc`$(i;QTHfHR%bPvUf16hNwGJFvxUk$kw^q=Fu;UVsNnak z&l*#o1EhV4)V9OND$3zwt&)Et3x%Skd2m^$3dKv`%Fm5|`&qw^g8L0{x?>Au#1PdA z3)*k}rtw+txznbH&i4Uy5I%eMDhrg15>g^cml9OwDM|c|;d>ZztKGGCDtD^*)InNQ zNP6xLGQ z!=nznTv7FUtLg@+iNg+4l*0}ys`%f3)<3?+uGsqn1NR7j|H-{l3}b1D7-Lh*BZ-cL z=?h9F8C?t=RG6bljZT=LC=(`>3gg!DKR1oPyBe+jvfk7w20l}M)h+)PQ%}0I67#8s zpE?E=aS%gceL03;>&vjpn^U4M9aE!(-BLCDGa=e4wk(?oaBP$s-hH@`xg9 z5z`Tyio5A4|M*#dwsB8OztMtj3is!qI%6vTpR*h4kgO-f^GPvloE?wG;pp%5Wj*Xp zHg5E_t%eWn3ywj7_y1P{sO?u>=YF1}Yk1mF1_%L+_ zCVJA}8w;1TMKO)R3{y;n#doF1yAP1E7Fs9u{s#7i_cxT(4jxIe;Hr`GXH;&ycdyc~ zXk0nr8veQIV0fSA6QuWnTVwBY8az!@S%JT4_@Iyytk6FuX8m3G2VY4OFcU=u6m}Vt z*jw5zgOmYM&uWKs?ZvWvsZ5f|R>zz2a6o~Rlc9kzb<>IdwfL;^uxAD{T{4~{}#1Cz%(YMMH-XN7U5XZiQAPU zCZN@S&23)nYe{(tH64rg7+XBdpeI+V=}Cjtv~EQ_n&}I7^hSDmbGcJ1xb@6F6*P0O zf@;lzqVbiv+#IJIrx&V!-lxWE9jv5r;R`dtXyohRWaZWyTMBoYPfmyA@=VOwUgX9c z4eRB}(m-7;X)UDAMN^8@YD`|gVUamI8cE0*7y9|4Ht|(V8PpommXW%F={S`W60F%= zU7=>s%2yfz8{>6yE?f0TT4#==_4Y`5j#-z}PC8@nmMuIb9b?Uu#3Zdvtdc#L zEn_VRkF_$A4#8GU6S4&Eg23$%xP2Ibn*&QQ+s>VDxszaV=@$sLlWaYVIeH9cRb#?M zT7Y-bi~XeSow^<#`!_{_QM0o<)Mhh@lr>XFD$3N6MU3D8L~qqi2jDxVd1|0*mLpxy zb_Jt=Z^wAly*?xt6wW}gbM2{?aJ5s zDzKVV1uNgNCACXcW~PiCf|)h&`mkCI_9Yxut#C7Q8nAmG8*p{y25hTFCT;puN1lt^ z@;FLQRKv*A^ko;Pi`|@@nqhF?$GTxKa@Wqy>V|!0H82>fU+puiOWmv-Rgto_DrHT_ z^vmwgq+IS+mz&#ntKv4TsfgPZgK>Mf8g5$C>2A@kax-(OUv1iFovj~4XX>HV$mMBj zE)wkOK?GC&u+M^B;}*lUp^Y$I@#l0*D*E%P*HD%qJFcHp(l zfXhAHaWAP?p04)$`djwOH4ZOy2KIdh10p+0dgsPk5gg_@9|FYJZyLRhlzTY-iMojR zVNHmmeAu2qIM@}J&o*`>SPLw<6KN;qPLAli$n{V((^*9M1i~ogc;2oc0=!iq8XVH; zrswl z4Ugwd1e592RUmrMTved?lHs17U^OM{$#`ga6&yXO<-sb@^i;eXk?~;_V=!KoMf=j> zP;V?g2v^L+WrVyNpJj!NzlK8qa^@a)P1zlx zK3g)sQBmeMmJ3w0lF-jObAD}(ly|Ik4k_=soOw|_KWnavrEh5@9SxT-eSc7_vTs{+)S+q_Uy9ro3`eyU65G^){J!0vr_UAAXZUK_|g&a7(BUZp- zdjcCY@o1FCGz14_ujyCTAQ*z4gS{cKvu*`FW&o~goBEX<5{{lF#`wjVbTkqRGZR%t zVL4#Hk0-wX3a{DMSU2A#<#$%fAg8|#Wa|((8~)2EU=4`;oArt&u)E+ma}8Y@nvG(s9SdnxkyQYucr4;NLJADd z1|K6Bflb)i@nlTOr&#*2h)KOdsfS4QmO#9T55;Px;za%62{L^#9CeSTjJQJJuR3v zxqFdnY*&uz%c+W}A1iymKd>-O5avmPg(3BTiY1eJAgKpc$2aHEjkwWrP>zb;$f(G|CN&46G=s%FJP8dvG1(q*? z-HQFjyo`-Ia3FOAK8jTZ1osX2ijb0Q`ltsh25pD75#V+JE%Z21j7c#fUFtD*neUA5Lz#UjQ$5DgFm`9H5TkK|42t{bL{fbb%u|bu@mQ;1m+!(beDFg) zRC>^D3Tybq)ScsVZh1zICgl~#!+!^p2&{R}XYArcI2KqKPNi^OClxq566-=xyGT5_ zvtYSavA{4rE2)UNlIjtvu)V3ra$eI*Jm_dRI?M>zUoH*zVc#JgCiNk);Bn_oX76%> z6ROU>wyloirNeCA54DZXf&pFappT{V5q^w#OEU!D#V zf{LXsmbT6**Q*eugT2zRKb7gWm=}0S2pI?@Rt+t=M?d@ zZUA114;0A%_?zov`Cqsg)Kt_LHJy$+kvc>E{ryp>93uC#Gs#pu*|>hEE@tD_iMPq? zQ3CUJ%HZ$z)6N49$f_wkvW{>7ZdN4S7fgt)fiuI2MllPqpVn`png_D}bDNJl5qp*k z7b=qwjptdA^-skY>tp48UMchS;N!(d#|NPYQ5KT__@BkQ4(AB>wzai&fFtjnad`~; zPyaCwKRyRCfBtvssi!W*GoKXtJj!7HEbo!bd(xyyd-veq=U4{wXIUpOf25yx85aME z7XQz=jEej}$1(=x|2dU0B>&H$jA8lzhhpLyPP+ilNs3c|gsSFe6G9*^IO@8{xk8a`9-8G{e|t9{~c z$qRnlR;^m~3h3=R;QLAVOvL9vd@$#&%70k$Pq69_x^wV3i=SO}coAh@j{N=b*%$xE z{2BiU=7*H)kC9n9A(2R22i?4k@1hRdwr#r~-x2qzN-sbY|Cm4f&jau|1|OU~6ZJn7 z=}GQ7nB^age8wM6??4g%7?1rh`#3(3fX!rKdpJ9zOoUE0GhhCP?|I}Mg3rG22fC1j z%iyt#Q?_fKPw$UUGd`@ddH6Kp!*lFv>;`CM|ExN5%4Kl7aC;tReyp~wreA?%$bVKD zEURID_&f8qZyw0O-{)nn!ZS@oIUp(nM` z_CSWZpP3H|b$=_rMo|y4tfA%(^$Yg*d(?wnJSVz%p6TR^ni^;w{;&4mYtVT{St;hQ z9Jjzi786aLCFW2rGUXbZS4%(_!5C7HQ|r*9>v*Qk^H2O|E!n5@`g+0RPrM8c&I;X4 zeeJbpqgS1cZJTmhb?vFiakJ&xT&&4Sxt7$H89c9VnE?u3zRKA>spsI^x#rWrE4BF7 zpG5^BGD6Gt>bLPiQd^H?2CYYOwk0mszh)dzhL*7am@~gSusWUzbcUmm@QQFC-HVkL zE&@bSfncCB)AJ=h!#l@TwzLI|LG8 zvQ~~tm5O!v9@Reh*xZ{=CuU5UvU26h$t!RSF&+)ZCdZRKQ&O2kBA!f7foR7j!~7Lj zbSC$v`=U9I9gJ2x+#|CWegMh3(heE+sg5+|BcsX%uo$=5Oh;bbz7 z%Na$>@Jqz?z-tPlmP zN$txGaoGjx5R~<^qj6Z2#TR5Nha>CX0V^N!+L6V)*16UoE}_gGjx}FGshMjX>KpV9 zhP&#<67vA3C}Bx8CFt{G-En~)85Et=9;=k<>pOZDUsB_XK!J2T(3-?4u0iX-<&Q+% zSZY4yy1rvr@uop(pQ-~ubsjU27f`zP8tyT*ACIT zoVvuc@xNpCR8lX?p%iuyT!%G=90Fc_c@%h$vN&^W7%C94H9Jz<*k9?X0(I z?pZtQt79@wIdDtDIT~{^NqG&@y_IA~jp}63Uq*h8LJK>w`FSVZKdOk}xf%Jt zEXNUgQV-`C{2yREvPG;Ie5rBB2EI%*@MU%bTf?`z?f%@@K+5}y!hcQ6a1G!CJb*`D zI)?{v9!ur$@21D;VQmT~!~Ay;`qhg=Jcxsy)bHSP1zV)jOj--6n9j-+`D=x^Y}cgz z0G}=RT!N3F!H_OO>uUs?emSh8a~%%Fne&iG$C^i1Br8!3Ik5AdF}7uj#;6~<_YzSv z<$q8V7>>6XdJ&oa1@8UuUj|8yi)}tqer_FeDQ~x%T?bv{MIX_w_P|kgW`$$Yw@ClC zRSW}OK9$m3=5WNezWO8dt}^6lLm*q{1O(S6H==V`KyV#+QXUjgw~AA=JUejfgOvOC zzW_6Y3%L8cwc(y0_}h9j-Q75=Qlx8~{SkMci-JMcRnNsk3~Kk5lVZ~)WRZ3aO3DY6R9Rw!C~;9Zy)vF$Zc)aD zqwGhehnqD>{&j-?nc)y-QEuB&25`{Cxk60pqtFF5pINfUgf41lV}6{(ehn@Pm)>%= zZkEdZAX%I0Wg68M#Dv@$F0D$Z2CKBy0Y>8@Z)ka-tcl`-5kklLPjFga-pBPWK5_FP1K=ks)}k(JcGS=hpM?6su8VNv@DGW zuv>~7hC;?^!_igK6tecUt@hpB+!E76uop2Hh)mEd~CHs_=z>ENiGDTQ()BZ4>*A z;-v=Al^Pt3zwJ*=ts3T(vxdhuz;W+&52Bg|#QE zp=vOxtWjG~Mu(%UUR(Yp$#_pP*jLt{979J9Z7j=wxeeGW4q6V)z{IIU?w{QoOt3{) zc4Fo%!p5>#ly+I~%uH7VXMRf>+o=X=XMxsqugl~dWSO{48aOM#YJ~x>8CtQDs?MaE z6JIIj1)!s9=;Vt#*j^S6hh9zlNnu7Vi=@Q$QL%s?+Fyk%-O1LI4C;m6su(=Ao=W6( zl6?4~Z+Ru^k&-&p8;r%m(V?Y}TMR_YlZH46dtNyVS~11S&5ux1&W){~7LJxrpxmaC zL18{gvO=25nK*g4&|aRLI&=$4nz4&xe3mpYCmzC`dNm-9xk4SW2 zW?)vPd_q)8QAKP|lYB>ssm_9#ivnkdJ5!M%-Xr6#yMF=ZRk0ynox?4{J*W<$KzlBO zQ}(1jUs_wKWX%0?c~W;H&69@k_Fg2%!WknISM1m3pTHYx^1OVlbKWbHLNOZJGVBm1fSv_Nl$mB`(Vf9jtE0Wr)#ZZD*0;MArUYb=_*BxlF z!Nc#QU1Gh+Xted_tN`9>6N;}0C(GN?-E%ivZURk^-?}+}$Zpuwd15z0{icXHi&I%L zV(pw!{MUNCBP}8hqqgwBkO%hlFf5I|C<1zDL>Vm|Sr3y4fCc_?wk2?dgTNz1z+`qZ znCe{+?@^eBM@Va<=<~&9R_td$J6KF9*~Ikmps%^Vd7oouoWR3gIlGwsY;p z7w>&n{9y;FtspIpWHS3x=|$_|MV%cfcB8wqc(>qRNgW9@zl)R)Rno47CxFWzXh#-~g5QVl@8g0Ap032E3ZB+uXVGROw#39Bp?wo- z$UlWLwI(^N{7H^A=Q8_kx8@hJTez8r8Z2^2tHslUg1@$fwC{uQ78I#n%v>hPFoGQs4J7zC9)JdQmLNtN5V z$TX%j5a#Qm{_1q$xU}O$9kdIiZeHiA+`bveYlM7S1L}}Jk!!R|>S%`;A~i$s(vFuJ zctdDFJp}hX^6KvVE5O%of(?VLLlzTc{;S*b6B%?lJ5bU_GjGyXiIUVuq>lP!xz{kt zPa%l%p=cE44sIv>kCxFcWmD{w5|8CFNjpIb@}>|(xfICCU%2+DD``n2#|TC5uaSB; zDNk^=dVr;9?_Az7=V?X-O{>S0Xu4wOfC%4^lJ6&Kr9MXLBM{uSoIHYcOk3ZU%yOfaEiS)aiKoZ>DWGdzN2AAvia|R|c)&!?i7p zdQ=!c+N-L@N!&i&QnkxvM>$2xcC2Vf<$2Nm>N`SG?I78NSF&`ZY-iXn&}iy!MPsU+ zOmk6tehRp%@5;(yJ7mT(PnIDt-5t7Z^%y)y2HdBi9uHi=h4MPkT8tvSTjLTWMPs!rnL!roeR8VW*6J+XEbWWh)Wj?+6bK3Lwaxq^M z6;|GY(co#0Ec6zu|MNuAUL;E&@CYnWeP34S9>HFDT$Zvyl%ma*N?R#vscvJzw{uBR z6qcU}dDR~Z524;J>vV|dPs*oK9Wg1-lgzTPJAX0T!_|`UJksXo6I{s;AOULkwjfar zQnmaJF5)oK4ncx9^yv9!l%y?{ef2?>`6DUwQ&QNCQj=G-=XWw?g0vWtugdyg$EE7r z)ee`HX_gl7w5;!KEW_Fj`EgvCJEXhw%aRs=2gvS_9^g}HDm%eRd6sFP*#!!`m#`N& z<7HV7aej~sTr4s)kKm-d!1-rN2F&;*#$p%>eoYiGBna8L6M<8<_MDLU8SF7UVslHD#B`QeTiFo`K>4yNdbWFHLB#giJy)n=V2L zm!fmkTgD&)tNDq@!b>jY`@@>ychwolabIfy&nKAu2b#zatGjXd+7kWihdqO9c806|QPF*GFVeg(2| zlfn@KBq(&8%y!Ex@&5vVygbd)zK17w6@<9EFiNXmX7KF*qfAS&Qj3IBCgoD1HJIWC zfcQqI)%KzSLR^iR-8rl4t{@ zu?k)Q%q@8{7(IqO*So7(?ya0<>w^o^enr}LB;N2FM^0I5a8U~1_jFs+@v`~uDaoG3**lS`n{BUl;=wNDxLp2WJQu4!h#b^a>W2IA z#mFc%QDm<`Hbiin3QP7Wvfa%fDzZ&xI@ZAIx}UTiAh-rFNMIQ$<12rZc^1CNy9#-w zVhDh6i4Fs)iT8o+_7&WUq;iLVa28*YsXc;B*X#ww--aB#`OIB4(GgfQzMc&hmbik2 zIO>DaggHpX60u~wKs!Pz z^$q~tmc?Dqwxel6{aPtKx1Yuy0Ek?7%a1-J5v_J=666YZ2bZOQa z2)T|04yL14v#{HS*_wJ4eUDYk4Zu3!tL!+Ag{$7k#jBS^uEk%ttS;oCo@O3nJ&GKc zRdHJ-Om>bRWyB9la^=YSAaZNP3P3KhfcQ4Dip_zP9Wu|>NiKi3WM@fdy723e>oQPb zISTtqw}{8HIF}={l6yG``6%5oJ#IR!sC79bnUjX``6@51fl zlfF1Ll*H+e8GN&uJoA9^EkmH=arD#%-@5@ajqAl(67l9DexbJc;|VDn z=WfRFGLD_KU65sBoQWf?70Iy3<&wQ2>|5J}r0vINpPV$~!<{hWOl$ zEB7GIt(BKoQM7<$vtxzY_%#z@yg0?t8hK9Jfn~|BPy?e2Vdx(5YYD8H^LL0*ljmwi zykn)jzHKRu=jJ^1^74z6U4>)H&Ds8Lv0Ll{V3I5VDX}Z;0vvBL;-lZLY^>P@e|}rC zD;sM*ksXcO#hP*oPZjULOVGuAbJ@Hmj7e(a9U=K<$W#%GCjfvYtdr29hJx-!3F(V; z1o<~BTvV)+8k7~m3t_v$E&xx&M%jRlxcnsqhb4>+7$XHnC!crj2&TJT^jO*3g^G49 zf{nI|Ws@laH2{QGfI6i#NfB_S&5;%A2C2&d8X@TV%=7VXuy%q?$t~mt zsqB1Y6%m(@b#VN=2>zhWS-@lAB64j%fYBhRis%DwQtfz~l+8u_3WB3t;Y|eLh4=}G zBD#Y>*C0T$Uv%(mu^h_nHd`E8T3G@ljR$e5LTSA&N-RFz$36^*$4n>FDOu zhfaBN9$F89QaveDlf!pz=wYTjnaU3QAGD2*06k$$eImuS#U0RPdyd}c?NBX8gPv}C z6wLXAKXJJ+QJ5;l>`cdmXK+=3=P1xHL&_SQ4F$GEYEgV_l1rcmvIo~XJA~U+F~1u(+T2yiW~Y>K&5XKXaC&It+m^Q;vM20nIdnlT>zl; zQhoe0E^eOZ0wlG?ba+QgtO(p~vo#Mo3R*M>ZkmAh~$#tr-?fYOZR#l9eVbrHfE zoA*ldID{Z)ovt$bBs))e^uy5*Z!U=rE7{J(84VW@dom2HXG-&wg$s(E6B}wCt0>a0 z`T}UpnF|g`7j}(&TbnghUs=NS^)>|A+@F|oh!SF^fK9obeBMQ zg~LM+50~tDL%h8i#rCGHIP5yI{TSv?Ubw1`jW~wXbec#1T%bFoRz|SStR2&0wS1i^ zMWrKr@6FZBD#!O&W0{V@{KT8UkcQCBC#W&|wB}gs&t8ynjgT{I^R1?Kg>Xnkh&>qi z<)OiE3=MvBaIo3izGllF z8#r&rW0Ikl$8Wowhs{jaRBqmmCoN3(>hdWwvuJJkjG5^gl|-9~@N&GPi^pp|(B&wK z!?Q3khLp?%p9BO`HbGOqPI=0qD_J`|<3OBYnui5!vatr;6*l|n;mDQ_szkbp0HAxM zBUlm3AHZ=Wp8^=ZP-(c{>V{Vd&DoRFa94VRodh<{1YVmc)XwdyUOY zWi%V-m#F`F2g1ustKOeTA<74kaS~8A<~%R+z0AZ`PJ@~0GP?73Y}my@q9@9I5=Sc> zpoS}elfdf=T&=*h9vDJp(kjGG0>(?8`iGWxE{8vnuK{qW=T=z)j5pZT)qz_zZXIni zf$)K4!29La7K{#owBpqYKyQQ61f|_^0f0E{FYF32s4_a!F$!nhQA)`}1)4c1UV>W& z{jdmHwD3ZydnA;bJ0#!kYHJx#5xtbg5XTRQTB~Jj@EV{)A3@-U57S~fja%L>xV95; zv=C1Vie@?7T{mI_1>ghH@t&S&c!?QWvICvAP4IaefjLTIR=`kRlNf$3Xz_A~6bE<& zX&nRPduv^t43k@y0Fzz@+k)dHfXJ^!zYWS?j46Xv3IqOBR+c@T_4}kk7xQ-Dbeou6 zl`R6yNL{5Rz)lX17Do@rMMOC-zBmo=Y2ztJCubfS4*y= zJ24_vaz|(@{P2`0c}N^AAy~R0aW1U_2M3pi<#SyXI5;adET8qm;+#D!26m~3#W_b} z`0)dj*q*WNGbpnSTy#Yk&mBp+i=+JL&2UT|lE~GNLBQZ67}m^mF3@U#&>`h;)xk~L z{qPfw=8 zX|sX2BVjQmx-d_Qd%{cb)|s#sxfk>+K#gYaj&^bA&n}-~kC?_%X#+yd$cn-Dl=OTQ zij!Kh&_VphuW$^?ChzX@?10*1z!Nx#CTS~= z5l@(bJN8*TH{&15b6Nz{mOYA#>{vzFQ!Q2r;JlH>EsE`(P;UkJm4IWYO@})8w_l4` z=KlZY zxbt07ZEmld<%x@W*hm*fM*d9?+hy>vH+ddIR+&T4t}y^XYVLuUx`ooKu+PIkXl;$x zfL#t)rHL>=-vtQTfCaIExx-%ovKFCbF|_epVvBYL0N-fybw*OugwLsRKwSKKsY_A@ z;lv|@O7`HyW+R{TWLTY)#6>6@UHcw@ra19rx~ye29y(>51}}-lkBf>akyHd1jdP65 zzJY;!QDfF>zNX=*Si@c)BQ!b)@P*ewh-0gAqziiSTak5^<3iAxoF~Kw)V9q z7%P4ojJp)r4KcD>ON6`{8OIe!Kalhr3*>o)^e-a0iL|K&QZ6O`-a-%gKLo;~0{(ls3K=&$S#YvqA;#0`@bpa7`(sdx5MZOsY06UPi zYcZJOjV$1%-a^KWg|o@1hs=+YaViLXWPBAA>&f>p@FtML!XHBV7LdP2`UE66wRsX? zmy;(C*pp;5;OPR=CxOfJWXuK%j&k0I%!^4+gJ%mFzrmA-)P*28n|!AiR*?T=KnyZY zM^>JEk0LpY^lc!1gY;vN+=_QBA@eCRMiq8zg-zr+9Jwjdyx?^S8NUbpEHY3J9Q{?^ z1L}W~4+Y>zx^@DR7f@{eS@$?Szor~m)ubo)fO8%ulz?9xV()vZP-9vu1DYPA$5EuB2tMRm+3=hgWjf`D|Ao>3Z zHbL^82ZRgx&o(k(+BlwVoCT~=WSm_%iTqEY%ue#n1@iaF|9vDA$omS)d583q3z*zM z8qfcb=Xl^9fI~&#&`-uScE6&W`J^9J(6ZuBtuE%pQGtPK8ZZLk?cnA1mF*3><8BKU{gpi zAde{AO8&Eej@K;n>^5scL5oX1M?SXEnpr)o)_`-RrEIR zSTcSD?mr;^4M=*(*Ma01^8N`3e<%Ia0`C1>3V!|M{|x-@h79^2$ruMV9pphL!L=V9 zmgxBT2PA@AFT)#U#K61+@0y0QK$87#`L$nz4CwWN(evV@dP;DDyV z6V~AVa|_Rq4;;K_lJPraeMFvrp`>oon}Gfi>2nINkS_;>gUHwlwm&BS79@S->je65 z$p_WxP2~L>l0TDi5Qv-5vp{@5d0s{`KpGm}b0#UTqGZ@5RPJ3$#?#3Bm~?RQEG6a7 z$UK;gTfqhWiw!bPzA#GoCVBpXr)lJU7v!IkAN>$_D~$V*`8pY2z|#V_QY6bTT!7i9 zq_0M@6N40zOGs-39Xx++VHf$%Krze6cm~85lCK;5XOQQ45MM*ab9g$IJkKJ5hHpT! znGDp`dng&V0c8M}#Xxr(`F~WHNIn>$emr>#h1*HF63FmO=&sl<@ctE$zmRb-ivNuC zuOs<2c~E)JWf+N&EQ8a8Oz1%9=H7NPo-HKE{}HHCBzJE&I|3&gK+6`E5l5q%N$B|Mfd_o@R(zBOz z?h-~DzGK!12jRhRi=L(2K!zWX#iR!c?c|55aXZC#D%fPm_Z>hUA^$s&=Lj->Qh1(x zsHy%_@Fn|x#K;8!5hhclXh_7Ve+BA`fBoB0jea%z5*nF9Oaxt##_KThm<$LVFMXE zk$DsuKLh&7 z^ozml3GzU-9?YmwQ{4VGpcY&VG+qJSXXJ(O`Zvk94w-4vW5|U2nOb;)eC)s`k#Q#= zTS!Ic(7#2#tC7qkFSpD;$T$MY-Q@o%P);BPlHeATF$0-3q_07tzs1`M3uppV!-E++ z>WzD127HKiHThn}Q-+KMc&a4@E?nJ9-Zu&tk^fVa{3SAe0Y+=c2T!KYCNC!K(a(P#h;jG14peWEA8n|+YGJaV|k)Qo!46YaSS@Lbh z(^trMJf7x}_g{q#C=7R+bo5&fZWq?$X%*=SfVY$XEE!!Dp@BSK11W9^!(#M*lQ99w7))ls z>P6B=BDo&(5umh_J`o8z#s0_)lR5^)yheVs74EhgkXBoPQ2>QbC*wXmB}ktPX1^i- zGf2Koz8@g-6!J~S(?aqcjARcP6ALPNdhmTe(xDU&W-FtRU_}UGRU`lTDCR0MG-URW zI=1jM`Pxy)31s}L&`SQlf%GBrKa1o$k$ew<@Ig|y7w#q{hy2ClgB{>fpYatW zZ<8Oj!lh&bwbJ*;ObVP|LZv}9mi*@wHlK)$2!4JG$d8i2PY9dBY;d&6^GA@LM+O_= zF7m&J8l8*T7n1R$yo;oPl!t*bgN*GUc!#{`4!F(l`2z^9Am0y>oIyTrDBOb_w~35* sHtG4@FXdl(H9zraoLI-D&Tp^7G2Bt}XU&d>;=xwD>L$#u{LAJ3KQS0vSO5S3 literal 33324 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 diff --git a/modules/gui/macosx/playlist.h b/modules/gui/macosx/playlist.h index d843b68c4d..81b325666b 100644 --- a/modules/gui/macosx/playlist.h +++ b/modules/gui/macosx/playlist.h @@ -56,6 +56,9 @@ IBOutlet id o_mi_selectall; IBOutlet id o_mi_sort_name; IBOutlet id o_mi_sort_author; + IBOutlet id o_mi_services; + + IBOutlet id o_mu_services; NSImage *o_descendingSortingImage; NSImage *o_ascendingSortingImage; @@ -80,6 +83,7 @@ - (void)sortNode:(int)i_mode; - (void)updateRowSelection; +- (IBAction)servicesChange:(id)sender; - (IBAction)playItem:(id)sender; - (IBAction)deleteItem:(id)sender; - (IBAction)selectAll:(id)sender; diff --git a/modules/gui/macosx/playlist.m b/modules/gui/macosx/playlist.m index deb4f26181..fdb15f8906 100644 --- a/modules/gui/macosx/playlist.m +++ b/modules/gui/macosx/playlist.m @@ -110,9 +110,12 @@ { playlist_t * p_playlist = vlc_object_find( VLCIntf, VLC_OBJECT_PLAYLIST, FIND_ANYWHERE ); + vlc_list_t *p_list = vlc_list_find( p_playlist, VLC_OBJECT_MODULE, + FIND_ANYWHERE ); + + int i_index; i_current_view = VIEW_CATEGORY; playlist_ViewUpdate( p_playlist, i_current_view ); - vlc_object_release( p_playlist ); [o_outline_view setTarget: self]; [o_outline_view setDelegate: self]; @@ -147,6 +150,31 @@ belongs to an Apple hidden private API, and then can "disapear" at any time*/ o_tc_sortColumn = nil; + for( i_index = 0; i_index < p_list->i_count; i_index++ ) + { + NSMenuItem * o_lmi; + module_t * p_parser = (module_t *)p_list->p_values[i_index].p_object ; + + if( !strcmp( p_parser->psz_capability, "services_discovery" ) ) + { + o_lmi = [[o_mi_services submenu] addItemWithTitle: + [NSString stringWithCString: + p_parser->psz_longname ? p_parser->psz_longname : + ( p_parser->psz_shortname ? p_parser->psz_shortname: + p_parser->psz_object_name)] + action: @selector(servicesChange:) + keyEquivalent: @""]; + [o_lmi setTarget: self]; + [o_lmi setRepresentedObject: + [NSString stringWithCString: p_parser->psz_object_name]]; + if( playlist_IsServicesDiscoveryLoaded( p_playlist, + p_parser->psz_object_name ) ) + [o_lmi setState: NSOnState]; + } + } + vlc_list_release( p_list ); + vlc_object_release( p_playlist ); + [self initStrings]; //[self playlistUpdated]; } @@ -160,6 +188,7 @@ belongs to an Apple hidden private API, and then can "disapear" at any time*/ [o_mi_info setTitle: _NS("Properties")]; [o_mi_sort_name setTitle: _NS("Sort Node by Name")]; [o_mi_sort_author setTitle: _NS("Sort Node by Author")]; + [o_mi_services setTitle: _NS("Services discovery")]; [[o_tc_name headerCell] setStringValue:_NS("Name")]; [[o_tc_author headerCell] setStringValue:_NS("Author")]; [[o_tc_duration headerCell] setStringValue:_NS("Duration")]; @@ -401,6 +430,23 @@ belongs to an Apple hidden private API, and then can "disapear" at any time*/ } } +- (IBAction)servicesChange:(id)sender +{ + NSMenuItem *o_mi = (NSMenuItem *)sender; + NSString *o_string = [o_mi representedObject]; + playlist_t * p_playlist = vlc_object_find( VLCIntf, VLC_OBJECT_PLAYLIST, + FIND_ANYWHERE ); + if( !playlist_IsServicesDiscoveryLoaded( p_playlist, [o_string cString] ) ) + playlist_ServicesDiscoveryAdd( p_playlist, [o_string cString] ); + else + playlist_ServicesDiscoveryRemove( p_playlist, [o_string cString] ); + + [o_mi setState: playlist_IsServicesDiscoveryLoaded( p_playlist, + [o_string cString] ) ? YES : NO]; + [self playlistUpdated]; + return; +} + - (IBAction)selectAll:(id)sender { [o_outline_view selectAll: nil]; -- 2.39.5