From e2ead286e2a87605b32eac5d629a2d790e5ff8e9 Mon Sep 17 00:00:00 2001 From: Victor Date: Wed, 14 Nov 2018 15:51:31 +0200 Subject: [PATCH] 5.2 --- build.xml | 2 +- nbproject/build-impl.xml | 10 +- nbproject/genfiles.properties | 10 +- nbproject/private/private.properties | 8 +- nbproject/project.properties | 10 +- nbproject/project.xml | 2 +- src/1.swf | Bin 0 -> 3922 bytes src/2.swf | Bin 0 -> 9261 bytes src/3.swf | Bin 0 -> 6003 bytes src/4.swf | Bin 0 -> 32173 bytes src/5.swf | Bin 0 -> 11091 bytes src/6.swf | Bin 0 -> 32955 bytes src/Canv.java | 392 ++++++++++++++++++++------- src/Capuchin.java | 37 +++ src/FindLyrics.java | 142 ++++++++++ src/FindText.java | 57 ++++ src/Info.java | 25 +- src/Lang.java | 97 +++++++ src/Lyrics.java | 11 +- src/Menu.java | 16 +- src/Options.java | 96 +++++-- src/Rate.java | 14 + src/RateImpl.java | 139 ++++++++++ src/Rms.java | 52 +++- src/SEPS.java | 19 +- src/SetSleepMode.java | 52 ++++ src/StringEncoder.java | 66 +++++ src/about | 36 ++- src/newfile | 3 +- 29 files changed, 1115 insertions(+), 181 deletions(-) create mode 100644 src/1.swf create mode 100644 src/2.swf create mode 100644 src/3.swf create mode 100644 src/4.swf create mode 100644 src/5.swf create mode 100644 src/6.swf create mode 100644 src/Capuchin.java create mode 100644 src/FindLyrics.java create mode 100644 src/FindText.java create mode 100644 src/Lang.java create mode 100644 src/Rate.java create mode 100644 src/RateImpl.java create mode 100644 src/SetSleepMode.java create mode 100644 src/StringEncoder.java diff --git a/build.xml b/build.xml index 1639645..a0aed17 100644 --- a/build.xml +++ b/build.xml @@ -2,7 +2,7 @@ - + Builds, tests, and runs the project . - + @@ -936,7 +936,7 @@ - + @@ -945,7 +945,7 @@ - + @@ -1059,7 +1059,7 @@ - + @@ -1074,7 +1074,7 @@ - + diff --git a/nbproject/genfiles.properties b/nbproject/genfiles.properties index a3de28a..48224f5 100644 --- a/nbproject/genfiles.properties +++ b/nbproject/genfiles.properties @@ -1,8 +1,8 @@ # This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml. # Do not edit this file. You may delete it but then the IDE will never regenerate such files for you. -build.xml.data.CRC32=b8ca046e -build.xml.script.CRC32=518797bb +build.xml.data.CRC32=d5ed72e0 +build.xml.script.CRC32=4c4ce240 build.xml.stylesheet.CRC32=03eab09b -nbproject/build-impl.xml.data.CRC32=b8ca046e -nbproject/build-impl.xml.script.CRC32=a371a0b9 -nbproject/build-impl.xml.stylesheet.CRC32=d670562e +nbproject/build-impl.xml.data.CRC32=d5ed72e0 +nbproject/build-impl.xml.script.CRC32=c6fa47a7 +nbproject/build-impl.xml.stylesheet.CRC32=a4fc63f1 diff --git a/nbproject/private/private.properties b/nbproject/private/private.properties index 4cfb46a..286945a 100644 --- a/nbproject/private/private.properties +++ b/nbproject/private/private.properties @@ -1,7 +1,7 @@ -#Thu Jan 07 23:51:00 EET 2010 -netbeans.user=C\:\\Users\\aNNiMON\\.netbeans\\6.7 +#Wed May 05 19:16:46 EEST 2010 +netbeans.user=C:\\Users\\aNNiMON\\.netbeans\\6.9m1 javadoc.preview=true -deployment.counter=3 config.active= -deployment.number=0.0.2 +deployment.counter=160 app-version.autoincrement=true +deployment.number=0.1.59 diff --git a/nbproject/project.properties b/nbproject/project.properties index ea068d7..3cdfc48 100644 --- a/nbproject/project.properties +++ b/nbproject/project.properties @@ -17,7 +17,7 @@ deployment.method=NONE deployment.override.jarurl=false dist.dir=dist/${config.active} dist.jad=SEPlayerService.jad -dist.jar=SEPlayerServiceLite.jar +dist.jar=SEPlayerService.jar dist.javadoc.dir=${dist.dir}/doc dist.root.dir=dist extra.classpath=${file.reference.MultimediaServices_API.jar} @@ -50,8 +50,8 @@ manifest.apipermissions= manifest.file=manifest.mf manifest.jad= manifest.manifest= -manifest.midlets=MIDlet-1: SEPSLite,/icon.png,SEPS\n -manifest.others=MIDlet-Vendor: aNNiMON\nMIDlet-Name: SEPlayerServiceLite\nMIDlet-Version: 3.0\n +manifest.midlets=MIDlet-1: SEPS,/icon.png,SEPS\n +manifest.others=MIDlet-Vendor: aNNiMON\nMIDlet-Name: SEPlayerService\nMIDlet-Version: 5.3\n manifest.pushregistry= name=SEPlayerService no.dependencies=false @@ -68,8 +68,8 @@ obfuscator.destjar=${build.dir}/obfuscated.jar obfuscator.srcjar=${build.dir}/before-obfuscation.jar platform.active=Sony_Ericsson_SDK_2_5_0_4_for_the_Java_TM__ME_Platform_Emulator_ platform.active.description=Sony Ericsson SDK 2.5.0.4 for the Java(TM) ME Platform(Emulator) -platform.apis=JSR234-1.0,SATSA-APDU-1.0,JSR211-1.0,JSR75-1.0,J2ME-WS-1.0,J2ME-XMLRPC-1.0,JSR82-1.1,SATSA-JCRMI-1.0,SATSA-CRYPTO-1.0,JSR239-1.0,JSR179-1.0.1,MascotV3-1.0,JSR184-1.1,JSR238-1.0,MMAPI-1.1,NokiaUI-1.0,JSR229-1.1.0,SATSA-PKI-1.0,JSR180-1.0.1,JSR226-1.0,JSR177-1.0,SEMC_EXT_JP8-1.0,VSCL-2.0,VSCL-2.1,WMA-2.0,lib/semc_ext_jp8.jar -platform.bootclasspath=${platform.home}/lib/mascotv3.jar:${platform.home}/lib/jsr226.jar:${platform.home}/lib/jsr256.jar:${platform.home}/lib/satsa-crypto.jar:${platform.home}/lib/jsr229.jar:${platform.home}/lib/jsr238.jar:${platform.home}/lib/j2me-xmlrpc.jar:${platform.home}/lib/jsr211.jar:${platform.home}/lib/vscl21.jar:${platform.home}/lib/satsa-jcrmi.jar:${platform.home}/lib/jsr082.jar:${platform.home}/lib/satsa-apdu.jar:${platform.home}/lib/jsr184.jar:${platform.home}/lib/nokiaext.jar:${platform.home}/lib/jsr239.jar:${platform.home}/lib/jsr75.jar:${platform.home}/lib/jsr179.jar:${platform.home}/lib/satsa-pki.jar:${platform.home}/lib/jsr180.jar:${platform.home}/lib/vscl.jar:${platform.home}/lib/mmapi.jar:${platform.home}/lib/j2me-ws.jar:${platform.home}/lib/wma20.jar:${platform.home}/lib/jsr234.jar:${platform.home}/lib/semc_ext_jp8.jar:${platform.home}/lib/cldcapi11.jar:${platform.home}/lib/midpapi20.jar +platform.apis=JSR234-1.0,SATSA-APDU-1.0,capuchin-1.0,JSR211-1.0,JSR75-1.0,J2ME-WS-1.0,J2ME-XMLRPC-1.0,JSR82-1.1,SATSA-JCRMI-1.0,SATSA-CRYPTO-1.0,JSR239-1.0,JSR179-1.0.1,MascotV3-1.0,JSR184-1.1,JSR238-1.0,MMAPI-1.1,JSR256-1.1,NokiaUI-1.0,JSR229-1.1.0,SATSA-PKI-1.0,JSR180-1.0.1,JSR226-1.0,JSR177-1.0,SEMC_EXT_JP8-1.0,VSCL-2.0,VSCL-2.1,WMA-2.0 +platform.bootclasspath=${platform.home}/lib/mascotv3.jar:${platform.home}/lib/jsr226.jar:${platform.home}/lib/jsr256.jar:${platform.home}/lib/satsa-crypto.jar:${platform.home}/lib/jsr229.jar:${platform.home}/lib/jsr238.jar:${platform.home}/lib/j2me-xmlrpc.jar:${platform.home}/lib/jsr211.jar:${platform.home}/lib/vscl21.jar:${platform.home}/lib/satsa-jcrmi.jar:${platform.home}/lib/jsr082.jar:${platform.home}/lib/satsa-apdu.jar:${platform.home}/lib/jsr184.jar:${platform.home}/lib/nokiaext.jar:${platform.home}/lib/capuchin.jar:${platform.home}/lib/jsr239.jar:${platform.home}/lib/jsr75.jar:${platform.home}/lib/satsa-pki.jar:${platform.home}/lib/jsr179.jar:${platform.home}/lib/jsr180.jar:${platform.home}/lib/vscl.jar:${platform.home}/lib/mmapi.jar:${platform.home}/lib/j2me-ws.jar:${platform.home}/lib/wma20.jar:${platform.home}/lib/jsr234.jar:${platform.home}/lib/semc_ext_jp8.jar:${platform.home}/lib/cldcapi11.jar:${platform.home}/lib/midpapi20.jar platform.configuration=CLDC-1.1 platform.device=SonyEricsson_JP8_240x320_Emu platform.fat.jar=true diff --git a/nbproject/project.xml b/nbproject/project.xml index 77e54fd..02e0398 100644 --- a/nbproject/project.xml +++ b/nbproject/project.xml @@ -3,7 +3,7 @@ org.netbeans.modules.kjava.j2meproject - SEPlayerService_Lite + SEPlayerService 1.6 diff --git a/src/1.swf b/src/1.swf new file mode 100644 index 0000000000000000000000000000000000000000..053818ccca41a6d9297f5556b05bad60849990dd GIT binary patch literal 3922 zcmV-Y53TS+S5pU}D*ym^ob8%vTohN<#&07ui%4K3ksvV*B#28QuX{wtl0^{#0fC^R zHb{^~St24Zs09+lC5l@{BVq%_ki;lPd|ePzt(5V)fr&<=B%%m$VF<=`0?0I+y0_=n zbmBYjmzfXh2Y>!KRek%`InQ(MDUy*TkI*TEUQ!@Wqt4FGuTi1`Aq7g-{eVZO%z7go zw5~d`FtuT(vL@LG>Hc(fq1>t?sjFT7*JcM|+4UwlE3h@pzA`by3RJ((wr<_Zuu-E% z8DeoV*7g5R9cSWxkJ;PXGmPUngUrRng<->n4eMfE|Du?f806&Sq_FK;bPOH{u-lum9CYEf>DMB6|HywDmSb-lDDu+R`m8p zo#xiMJN3}rwENz=-Q&9U&%DY6A!D>0tyfwpbU&_&GO9)>4sq690qc~#6sT&){_$!+ zwgmk+_lN-K4GC#`t?ZQ#Xf#2C-y0ka$cLaQ?@SpDD1xB)m*Z^#B@>i?C;v7eo}f>~ zPpbiKBIxAylZAkG64aQ|m<;HUghV5k?B0OR5@fR>9|Ni*NcF5>8K72z+~T*4=tc^% z6XN(QJDLHJoe-ybd|C|1m7v*s_Pz^U;l~ULDU+8oQ-@0p7}y};9=iA5S32Q z&?LWYLN}UE&={A1m2hD+K@+Y8ra@FVL6ZxDA>|Z-1O-hB34$mug2Fq(#&gUQ!s?3f zx8OoIf@0%l*h3Uaa-6J+khai)pv9MFJ%T7}f|jkB(*RM%1g-FhtnFSsYA0yz-{&6V zn3TgG?RoDDh`LQsQS`j6Y_8&6_HlU-RZGy9wF&Uh&?$lrtXL4){k73if~v+PO@&V^ zC#d>i$~d@?WDY+2*}{PkRY=f9^&&gA_;B4Ti%nn=`2;nbOMd_tW)XBRC$k=+QVDu6 zD(f7qE0&<&T9#Hql$t{YUFe)5ST&G?j|?HqQQ1!}?xs}UH=gLv10)GtB`#kr#gR0xdg9q4MGYomYnyE= zp|J$L75SEA6-4K>6DLfRHi{Ifc8=p56=G6Ao32QgK9OjEw%|rVJs_eK+RwC~2{IEn zUVL05Gl6T_*Q9k-5cDwep|mclb4tzfK*Us$*xP!gWMTCLz0R+bKCzjgL9LsgBBqqZ z(dt4-B!wkGUbQ8$fb0kg;>t8KtC&^3=ZefK;#CK%0TI&_(+Vnm0EG~=9BJV@QZ*FU zC4X}W5UDkBTm89KK*UGIvcQY3fC>nz5U#@JC^Q6V-RidhB1$2i(=^orB6?!TQ0}Ea zIw~`i_Me_50V0nBn>tQ7#W8+`U%KQe$tYDFyOk52IA*EX(cLFNVBKRti|=1}nR^ub zm2s?lxQ7K?f+#gXUgkkY9P1u_N2d*8Z5oFrhR%cwIf7<8y_*kcI6*PrPd~sjj}|B8 z&%7zKigfqcRsw4k{4Z*EfwhX2B~h`UhEECF5E{LiW3mu$GmX&-Os?Y6qp`n0VqPR@ zcTz%MLFNli3w(H)FI-AmB=d!nD^iLDrmS$y*o8H4d+P6(e_7N9QPkh-i_={>rgg)2 zLNY@UYXZNTW#s^(Pw2O!OZOs~2^>_7te2U9(nfRKO=bcX@x}guREdCDRXbjhRKSg} z-u;~B>f2UeebP!=Ag_@fVSO(+XR7{d1ixG2jdiN-ps|@Obej7q5mKU=zbEWQRM^+{ zcF=zdKu4TYIhn9G4Lhr*#t3R@?r5%}{t4*y0k6AKn*}st#E9X5NULS2yN~pa^pa`) z;>nABWLp1W=!YRPtuLKb8Uct@zxHtCVQHyEBeXROYUTqXt*L=CfVOQ(TNa>dqDp4R zb0gVe5qqCp*&vhuey7*HCzJmH=QsU~nDP{dfBSJ9l)Bj;oD_VoezE|NilET?&s*81 zQ&it9PXRg(&*8Z)Tb2q%mqpA$-<*<^^YpHlk z$CY18`$_lHA6M3vu9xD>p6^}=ZBkk(b%tVhX6^9X>HSP|(F(^?$-1M&9OJH2g6H!N z5=!bf+oz3@T5)=ixKg^0qlPP)ONV*8%v|~x_t#KM2juPV?T5%71B!YS^^koyT7Ek( zO@K%ZYm2;#B)=hQrmehR2`Y<7f2;jr^ADR4lWp236P|D~kFZGnV2sQoUiDeC6A(F} zi>?lvtYn5TvUOX!%n-a!mNc;Kpct~{bNG%5a-{o=< zh*2PM-Q8~bPnc2Iz+r*Y97KM2QY540NeIb3V{MUxE5t zZCoK!AOkI_$ChGAZsFde(_S0IbR>rQ&y3wizeh~NBd&P=#9=_B(HA$5 zJiQGNY4i;>o8`h4H7gO~vApY^tdNLjeVg8Vz9_wzXVW(F#XOtzj4$Td-R$3(XLl>J zg-(X;GsFdmDDzHJgv`-`=PUCEJuR&1{Q;Hr4RoW+0CZ;1M>4UlYH_bire6v~(X7}^ zL%%y9`vLZH{T}q?pxtyQ0gW3mZn#X+1F8aGI7xeXt=d~HA5R!i`Q`r0rEZk=nVT+c zx`>#3(e9eHD?%px2OAIGLQL*yaU70iGgN!^{#D5fXgAuts97oilI_}#j*fP=CPdTY z%Woj2azyLAd{4H%3^|6A#d;IO)T%h}{N{Oxsc3Q7hOL;bdvR=7(ICXAgXnEnvWC?V z(Z6n23u2T;3@iF#Dyv80oT$C~WL6XFQUNb(skVv9cMmOM70{6Tco#W=Mrc&d)-Oev6-EeS1viQG2+{FcH%?&IgUIWh2Hh#IH|YZ;;v6sa3bU zS@#hy1l;~q=1~Tmtm*9seE`vB;Mc&vyUHx^+5FCtfaq-9#A`wjy9nHKn#V~V?i5w0~R>xZqRQ$Yk~f4)0PTMM}kAlL#1gxZTn}~h2^pNh1LDT%>~vKV@6K@ zkY{=zJl}h!4cv<;6MlbM#3q4ho^X2f>{r=Rz)Kg-DHNEl3+LuUs^Io?-m{qNo% z$$PAB2p=sooVdX=rm)QsPDzQ7rcu;gG7im7WHSe6KT|K`nRX1X@{WR8+CRN3UL9Q` zFo}sj{x+t9XVMp!z8ZUyV}0X`Iq{d_LVD)fzia*-o~aI8*__zM))1~9nqmo2`ZHI? zLTS#VKXVC-q!R!g`~9d~JOM7G53SKZV;aZG|KB$LB^uU6dx=L^mq^1ds`bxQ%krt3 zNRzE$ni%OgL5K3DVVb*=uG67>&&=YaK$)(;w7vL2Ih8f(^|4TrZY|gFTTbnA4RA=l}o! literal 0 HcmV?d00001 diff --git a/src/2.swf b/src/2.swf new file mode 100644 index 0000000000000000000000000000000000000000..7b924a23a5ec26d3d4b5c26437fd8e700d6f5c14 GIT binary patch literal 9261 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 Pz{v^!8R!22)BHGIz!m(I literal 0 HcmV?d00001 diff --git a/src/3.swf b/src/3.swf new file mode 100644 index 0000000000000000000000000000000000000000..6d80f6d92c4896e28680b3bc5192d267b08d52c3 GIT binary patch literal 6003 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 literal 0 HcmV?d00001 diff --git a/src/4.swf b/src/4.swf new file mode 100644 index 0000000000000000000000000000000000000000..079d0a7c7f1d315ba8699b09ab6746e008e4cabc GIT binary patch literal 32173 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 ALI3~& literal 0 HcmV?d00001 diff --git a/src/5.swf b/src/5.swf new file mode 100644 index 0000000000000000000000000000000000000000..60b3f77a876e5ccadfed501368a89575c2833505 GIT binary patch literal 11091 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 ZgjXAh!R2L(p?UqESGx&~{|B3g^2NVU$3_4E literal 0 HcmV?d00001 diff --git a/src/6.swf b/src/6.swf new file mode 100644 index 0000000000000000000000000000000000000000..6773efc15e34eda12e0bac918d7741b6eef29357 GIT binary patch literal 32955 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�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 HaSm^cs>7tN literal 0 HcmV?d00001 diff --git a/src/Canv.java b/src/Canv.java index 8c5b0dd..629b9c1 100644 --- a/src/Canv.java +++ b/src/Canv.java @@ -1,8 +1,11 @@ - import com.nokia.mid.ui.DeviceControl; import com.sonyericsson.multimedia.*; import com.sonyericsson.multimedia.control.*; +import java.io.IOException; +import java.util.Calendar; +import javax.microedition.io.Connector; import javax.microedition.lcdui.*; +import javax.microedition.sensor.*; /* * To change this template, choose Tools | Templates @@ -20,10 +23,17 @@ public class Canv extends Canvas implements Runnable, MediaControlListener { public static int softUp1, softUp2, softDn1, softDn2, background, line, text, valuet, inf; private int w,h; - private boolean lite, vis; + private boolean lite; private int mode; + private int accelPrevDelta = 0; private Lyrics lrc; + public RateImpl ri; + + private byte repeat;//функция повтора + private int a,b; + + public Object swf; private Image I, album; private Engine2 e2; @@ -34,23 +44,34 @@ public class Canv extends Canvas implements Runnable, MediaControlListener { private MultimediaService service = null; private MediaControl mediaControl = null; - private Media media = null; + public Media media = null; + + private int[] channels = new int[3]; + private String[] channelNames = new String[3]; + private SensorConnection sensor; + private String URL; public Canv() { setFullScreenMode(true); thr = new Thread(this); thr.start(); lite = false; - vis = true; + repeat = 0; mode = 0; //Режим плейера w = getWidth(); h = getHeight(); I = Image.createImage(w, h); G = I.getGraphics(); + getInfo(); service = MultimediaServiceManager.getMultimediaService("MediaPlayer"); mediaControl = (MediaControl)service.getControl("MediaControl"); mediaControl.addMediaControlListener(this); - playTrack(); + if(Rms.visid!=0) swf = new Capuchin(Rms.visid); + if(Rms.stat) { + ri = new RateImpl(); + ri.open(); + } + if(Rms.startPlayer) playTrack(); } protected void paint(Graphics g) { @@ -66,27 +87,42 @@ public class Canv extends Canvas implements Runnable, MediaControlListener { if (media != null) { MetaData metaData = media.getMetaData(); if (metaData != null) { - Object data = metaData.getValue(MetaData.TITLE_KEY); + Object data = getValue(metaData, MetaData.TITLE_KEY); if (data != null) drawTitle(g, (String) data); if (album != null) { int ih = h-2*medFont.getHeight()-6; if(album.getHeight()>ih) album = Effects.Resize(album, ih*album.getWidth()/album.getHeight(), ih); g.drawImage(album, w/2, h/2, 3); - }else if(vis){ - if(e2==null) { - int ih = h-(2*medFont.getHeight())-6; - e2 = new Engine2(w-6, ih); - e2.setRun(true); + }else if(Rms.vis){ + int ih = h-(2*medFont.getHeight())-6; + if(Rms.visid==0) { + if(e2==null) { + e2 = new Engine2(w-6, ih); + e2.setRun(true); + } + g.drawImage(e2.MainCanvas(), w/2, h/2, 3); + } else{ + ((Capuchin) swf).drawFlash(g, 3, h/2-(ih/2), w-6, ih); } - g.drawImage(e2.MainCanvas(), w/2, h/2, 3); } if(Rms.isLyric && lrc!=null) { - drawCenter(g, lrc.get5Lines(media.getMediaTime())); + try { + drawCenter(g, lrc.get5Lines(media.getMediaTime())); + } catch (Exception e) {} } } } - drawSoft(g, "Меню", "Выход"); + drawSoft(g, SEPS.midlet.lang.menu, SEPS.midlet.lang.exit); + } + + private String getValue(MetaData metaData, String md) { + String data = metaData.getValue(md); + StringBuffer sb = new StringBuffer(); + for(int i=0; iih) album = Effects.Resize(album, ih*album.getWidth()/album.getHeight(), ih); - g.drawImage(album, w/2, py+15, 17); - }else if(vis){ - if(e2==null) { - int ih = h-fh-2-py-20; - e2 = new Engine2(ih, ih); - e2.setRun(true); - } - g.drawImage(e2.MainCanvas(), w/2, py+15, 17); - } - - if(vis) { - g.setColor(inf); - g.drawString("Visual", 2, py+15+(smallFont_b.getHeight()+2), 20); - } - if(Rms.isLyric) { - g.setColor(inf); - g.drawString("Lyrics", 2, py+15+2*(smallFont_b.getHeight()+2), 20); - } - float div = ((float)w - 10) / (float)media.getDuration(); g.setColor(valuet); - g.fillRect(5, py, (int)(media.getMediaTime() * div), 10); + int mgt = media.getMediaTime(); + g.fillRect(5, py, (int)(mgt * div), 10); + g.setColor(inf); + if(repeat==1) g.drawLine(5+(int)(a*div), py, 5+(int)(a*div), py+10); + if(repeat==2) { + g.drawLine((int)(a*div), py, (int)(a*div), py+10); + g.drawLine((int)(b*div), py, (int)(b*div), py+10); + } g.setColor(text); g.drawRect(5, py, w-10, 10); } } - drawSoft(g, "Меню", "Выход"); + if (album != null) { + int ih = h-fh-2-py-20; + if(album.getHeight()>ih) album = Effects.Resize(album, ih*album.getWidth()/album.getHeight(), ih); + g.drawImage(album, w/2, py+15, 17); + }else if(Rms.vis){ + int ih = h-fh-2-py-20; + if(Rms.visid==0) { + if(e2==null) { + e2 = new Engine2(ih, ih); + e2.setRun(true); + } + g.drawImage(e2.MainCanvas(), w/2, py+15, 17); + } else{ + ((Capuchin) swf).drawFlash(g, w/2-ih/2, py+15, ih, ih); + } + } + g.setColor(inf); + if(Rms.vis) g.drawString("*-V", 2, py+15, 20); + if(Rms.isLyric) g.drawString("0-L", 2, py+15+(smallFont_b.getHeight()+2), 20); + if(Rms.accel) g.drawString("#-A", 2, py+15+2*(smallFont_b.getHeight()+2), 20); + if(Rms.slpmode) g.drawString("S", 2, py+15+3*(smallFont_b.getHeight()+2), 20); + drawSoft(g, SEPS.midlet.lang.menu, SEPS.midlet.lang.exit); } public void keyPressed(int key) { int ga=getGameAction(key); if(key==-7) { - pauseTrack(); + if(Rms.closePlayer) pauseTrack(); SEPS.midlet.destroyApp(true); } if(key==-6) new Menu(); - if(key==KEY_STAR) vis=!vis; + if(key==KEY_POUND) Rms.accel=!Rms.accel; + if(key==KEY_STAR) Rms.vis=!Rms.vis; if(key==KEY_NUM0) Rms.isLyric=!Rms.isLyric; - if(key==KEY_NUM1) rewind(); - if(key==KEY_NUM3) fastForward(); + if(key==KEY_NUM4) rewind(); + if(key==KEY_NUM6) fastForward(); + if(key==KEY_NUM3) ABRepeat(); + if(key==KEY_NUM1) { + String art="",tit=""; + try{ + MetaData metaData = SEPS.midlet.cnv.media.getMetaData(); + tit = getValue(metaData, MetaData.TITLE_KEY); + art = getValue(metaData, MetaData.ARTIST_KEY); + }catch(Exception ex){} + FindLyrics fl = new FindLyrics(); + fl.find(art, tit);//SEPS.midlet.dsp.setCurrent(SEPS.midlet.cnv); + } + if(key==KEY_NUM9) new SetSleepMode();//SEPS.midlet.dsp.setCurrent(); + if(ga==LEFT && key!=KEY_NUM4) prevTrack(); + if(ga==RIGHT && key!=KEY_NUM6) nextTrack(); switch(ga) { - case LEFT: - prevTrack(); - break; - case RIGHT: - nextTrack(); - break; case UP: upMode(); break; case DOWN: - downMode(); + upMode(); break; case FIRE: try { - if (mediaControl.getState() == mediaControl.STATE_PLAY) pauseTrack(); + if (mediaControl.getState() == mediaControl.STATE_PLAY) pauseTrack(); else playTrack(); } catch (Exception e) { } @@ -184,11 +234,120 @@ public class Canv extends Canvas implements Runnable, MediaControlListener { keyPressed(key); } + public int getDelta(int channel, int threshold) { + int delta = 0; + try { + Data[] data = sensor.getData(1, -1, false, false, false); + int drx = 0; + + for (int i = 0; i < data.length; i++) { + if (data[i].getChannelInfo().getName().equals(channelNames[channel])) { + drx = data[i].getIntValues()[0]; + } + } + + delta = channels[channel] - drx; + channels[channel] = drx; + + if (Math.abs(delta) < threshold) { + delta = 0; + } + } catch (Throwable t) { + } + + return delta; + } + public void run() { while (true) { try { if(Rms.light) DeviceControl.setLights(0, 100); - if(!vis) Thread.sleep(100); + final int delta = getDelta(0, Rms.sensetivity); + if (delta != 0) { + if (accelPrevDelta != 0 && (delta * accelPrevDelta) < 0) { + accelPrevDelta = 0; + } else { + accelPrevDelta = delta; + + Runnable runnable = new Runnable() { + + public void run() { + if (delta > 0 && Rms.accel) { + nextTrack(); + } else if (delta < 0 && Rms.accel) { + if(Rms.listfw) nextTrack(); + else prevTrack(); + } + } + }; + (new Thread(runnable)).start(); + } + } + if(!Rms.vis) Thread.sleep(100); + if(Rms.slpmode) { + if(getTime()) { + pauseTrack(); + SEPS.midlet.destroyApp(true); + } + } + if(repeat==2) { + try { + int mgt = media.getMediaTime(); + int sk = Math.abs(b-a); + if(mgt>=b) mediaControl.skip(-sk); + } catch (ControlException ex) { + ex.printStackTrace(); + } + } + if((Rms.stat || Rms.urlstat || Rms.actmenu) && media!=null) { + MetaData metaData = media.getMetaData(); + Object data = getValue(metaData, MetaData.ARTIST_KEY); + String thisSong = (String) data; + data = getValue(metaData, MetaData.TITLE_KEY); + thisSong = thisSong+" - "+ (String) data; + if(!thisSong.equalsIgnoreCase(Rms.lastSong)) { + int thisTime = media.getMediaTime(); + int allTime = media.getDuration()*20/*% проиграно*//100; + if(thisTime>allTime) { + int cn = 1; + if(Rms.stat) { + Rms.lastSong = thisSong; + cn = ri.update(thisSong); + } + if(Rms.urlstat) { + FindLyrics fl = new FindLyrics(); + fl.scrob(thisSong); + Rms.lastSong = thisSong; + } + if(Rms.actmenu) { + try { + Image icon = Image.createImage("/icon.png"); + StringBuffer sb = new StringBuffer();//String desc = ""; + if(Rms.stat) { sb.append(cn); sb.append(" |");} + allTime = media.getDuration(); + int hh = 0, m=0, s = 0; + if(allTime<60) s=allTime; + else { + if(allTime<3600) { + m = allTime/60; + s = allTime - m*60; + }else{ + m = allTime/60; + hh = m/60; m=m-hh*60; + } + } + if(hh>0) {sb.append(hh); sb.append(" :");} + if(m>0) {if(m>10) sb.append(0); sb.append(m); sb.append(" :");} + if(s>10) sb.append(0); + sb.append(s); + com.sonyericsson.ui.UIActivityMenu.getInstance(SEPS.midlet).addEvent(thisSong, sb.toString(), icon, null); + } catch (IOException ex) { + ex.printStackTrace(); + } + } + } + } + } if (service != null) { repaint(); } @@ -198,6 +357,36 @@ public class Canv extends Canvas implements Runnable, MediaControlListener { } } + /** + * Переключение трека + */ + private void newTrack() { + a=b=0; repeat = 0; + SEPS.midlet.dsp.vibrate(Rms.vibrlen); + if (Rms.flash) { + DeviceControl.setLights(0, 0); + DeviceControl.setLights(0, 100); + } + } + + private void getInfo() { + SensorInfo[] info = SensorManager.findSensors("acceleration", null); + for (int i = 0; i < info.length; i++) { + SensorInfo s = info[i]; + URL = s.getUrl(); + ChannelInfo[] ci = s.getChannelInfos(); + for (int r = 0; r < ci.length; r++) { + ChannelInfo c = ci[r]; + channelNames[r] = c.getName(); + } + } + try { + sensor = (SensorConnection) Connector.open(URL); + } catch (IOException ex) { + ex.printStackTrace(); + } + } + private void initLyric(Media med) { if (med == null) {return;} lrc = null; @@ -205,13 +394,13 @@ public class Canv extends Canvas implements Runnable, MediaControlListener { String fl = ""; MetaData metaData = med.getMetaData(); if (metaData != null) { - Object data = metaData.getValue(MetaData.ARTIST_KEY); + Object data = getValue(metaData, MetaData.ARTIST_KEY); if (data != null) at=at +(String)(data) + " - "; - data = metaData.getValue(MetaData.TITLE_KEY); + data = getValue(metaData, MetaData.TITLE_KEY); if (data != null) at+=(String) data; - data = metaData.getValue(MetaData.FILE_URI_KEY); + data = getValue(metaData, MetaData.FILE_URI_KEY); if (data != null) {fl=(String) data;fl=fl.substring(fl.lastIndexOf('/')+1, fl.lastIndexOf('.'));} if(Lyrics.isExists(at)) lrc = new Lyrics(at); @@ -221,6 +410,7 @@ public class Canv extends Canvas implements Runnable, MediaControlListener { private void nextTrack() { try { + newTrack(); mediaControl.next(); } catch (ControlException ex) { ex.printStackTrace(); @@ -229,6 +419,7 @@ public class Canv extends Canvas implements Runnable, MediaControlListener { private void prevTrack() { try { + newTrack(); mediaControl.prev(); } catch (ControlException ex) { ex.printStackTrace(); @@ -267,31 +458,13 @@ public class Canv extends Canvas implements Runnable, MediaControlListener { } } -// public static String getTime(int mode) { -// String dd, mm, yy, _h, m, s; -// Calendar cal = Calendar.getInstance (); -// dd = String.valueOf (cal.get (Calendar.DAY_OF_MONTH)); -// if (dd.length () == 1) -// dd = "0" + dd; -// mm = String.valueOf (cal.get (Calendar.MONTH) + 1); -// if (mm.length () == 1) -// mm = "0" + mm; -// yy = String.valueOf (cal.get (Calendar.YEAR)); -// _h = String.valueOf (cal.get (Calendar.HOUR_OF_DAY)); -// if (_h.length () == 1) -// _h = "0" + _h; -// m = String.valueOf (cal.get (Calendar.MINUTE)); -// if (m.length () == 1) -// m = "0" + m; -// s = String.valueOf (cal.get (Calendar.SECOND)); -// if (s.length () == 1) -// s = "0" + s; -// String time; -// if(mode==1) time = _h+":"+m+":"+s; -// else if(mode==2) time = (dd+"."+mm+"."+yy.substring(2)); -// else time = (dd+"."+mm+"."+yy.substring(2)+" "+_h+":"+m+":"+s); -// return time; -// } + private boolean getTime() { + Calendar cal = Calendar.getInstance (); + int ch = cal.get(Calendar.HOUR_OF_DAY); + int cm = cal.get(Calendar.MINUTE); + if(ch!=Rms.dh) return false; + else return (cm>=Rms.dm); + } public void mediaControlUpdate(int eventId, ControlEvent event) { try { @@ -321,6 +494,7 @@ public class Canv extends Canvas implements Runnable, MediaControlListener { album = null; } } + a = b = 0; repeat = 0; if(Rms.isLyric) initLyric(this.media); } catch (Throwable t) { t.printStackTrace(); @@ -411,23 +585,15 @@ public class Canv extends Canvas implements Runnable, MediaControlListener { } - private int drawText(Graphics g, String name, String value, int y) { + private int drawText(Graphics g, String value, int y) { g.setColor(line); g.drawLine(3, y-1, w-3, y-1); - if(Rms.skinid==3) {value=toEmo(value); name=toEmo(name);} + if(Rms.skinid==3) {value=toEmo(value);} - g.setColor(text); - g.setFont(smallFont_b); - g.drawString(name, 5, y, 20); - - int tw = 15+smallFont_b.stringWidth(name); g.setColor(valuet); - if(smallFont_b.stringWidth(value)>tw) { - g.translate(tw-10, g.getTranslateY()); - g.drawString(value, 2, y, 20); - g.translate(-(tw-10), -g.getTranslateY()); - }else g.drawString(value, w-5, y, 24); + g.setFont(smallFont_b); + g.drawString(value, w/2, y, 17); return y+(smallFont_b.getHeight()+2); } @@ -447,15 +613,31 @@ public class Canv extends Canvas implements Runnable, MediaControlListener { return sb.toString(); } - private void downMode() { - mode = 1-mode; - e2=null; - album = null; - } - private void upMode() { mode = 1-mode; e2=null; album = null; } + + private void ABRepeat() { + try { + repeat++; + switch (repeat) { + case 1: // ставим A + a = media.getMediaTime(); + break; + case 2: // ставим B + b = media.getMediaTime(); + if(a>b) { + int t = b; b=a; a=t; + } + break; + case 3: // конец повтора + a = b = 0; + repeat = 0; + break; + } + } catch (Exception e) { + } + } } \ No newline at end of file diff --git a/src/Capuchin.java b/src/Capuchin.java new file mode 100644 index 0000000..db558ea --- /dev/null +++ b/src/Capuchin.java @@ -0,0 +1,37 @@ +/* + * To change this template, choose Tools | Templates + * and open the template in the editor. + */ +import com.sonyericsson.capuchin.*; +import javax.microedition.lcdui.*; + +/** + * @author aNNiMON + */ +public class Capuchin { + + //public FlashPlayer flashPlayer; + public FlashImage flashImage; + //public FlashCanvas flashCanvas; + + public Capuchin(int i) { +// flashPlayer = null; + flashImage = null; +// flashCanvas = null; + try + { + flashImage = FlashImage.createImage(getClass().getResourceAsStream("/"+String.valueOf(i)+".swf"), null); +// if(flashImage != null) +// { +// flashCanvas = new FlashCanvas(flashImage); +// flashPlayer = FlashPlayer.createFlashPlayer(flashImage, flashCanvas); +// flashCanvas.setFullScreenMode(true); +// } + } + catch(Exception ex) {} + } + + public void drawFlash(Graphics g, int x, int y, int w, int h) { + if(flashImage!=null) flashImage.render(g, x, y, w, h); + } +} \ No newline at end of file diff --git a/src/FindLyrics.java b/src/FindLyrics.java new file mode 100644 index 0000000..a87c343 --- /dev/null +++ b/src/FindLyrics.java @@ -0,0 +1,142 @@ + +import java.io.*; +import javax.microedition.io.*; +import javax.microedition.io.file.FileConnection; + +/* + * To change this template, choose Tools | Templates + * and open the template in the editor. + */ + +/** + * + * @author aNNiMON + */ +public class FindLyrics { + + String MSG; + + public FindLyrics() { + + } + public boolean find(String artist, String title) { + MSG = ""; + String url = "http://www.lyricsplugin.com/winamp03/plugin/?artist="+urlName(artist)+"&title="+urlName(title); + try { + byte[] res = send(url); + int lr1 = MSG.indexOf("
"); + int lr2 = MSG.indexOf("
", lr1); + if((lr2-lr1)>30) { + FileConnection fc; + fc = (FileConnection) Connector.open("file:///" + Rms.lrcpath+artist+" - "+title+".html"); + if(fc.exists()) fc.delete(); + fc.create(); + OutputStream os = fc.openOutputStream(); + os.write(res); + os.flush(); + os.close(); + fc.close(); + return true; + } + } catch (Exception e) { + } + return false; + } + + public void scrob(String song) { + String artist = song.substring(0, song.lastIndexOf('-')).trim(); + String title = song.substring(song.lastIndexOf('-')+1).trim(); + MSG = ""; + String url = "http://annimon.z83.ru/nowplaying.php?id="+Rms.id+"&a="+urlName(artist)+"&t="+urlName(title); + try { + send(url); + } catch (Exception e) { + } + } + + private byte[] send(String url) throws Exception { + HttpConnection hc = null; + InputStream is = null; + byte[] res = null; + ByteArrayOutputStream bos = new ByteArrayOutputStream(); + try { + hc = (HttpConnection) Connector.open(url); + int ch; + is = hc.openInputStream(); + StringBuffer sb = new StringBuffer(); + while ((ch = is.read()) != -1) { + sb.append(StringEncoder.decodeCharCP1251((byte)ch)); + bos.write(ch); + } + MSG = sb.toString(); + res = bos.toByteArray(); + } catch (Exception e) { + e.printStackTrace(); + } finally { + try { + if (bos != null) bos.close(); + if (is != null) is.close(); + if (hc != null) hc.close(); + } catch (Exception e2) { + e2.printStackTrace(); + } + } + return res; + } + + private String urlName(String url) { + if (url == null) return null; + StringBuffer sb = new StringBuffer(); + for (int i = 0; i < url.length(); i++) { + char ch = url.charAt(i); + switch (ch) { + default: + if (ch < '\200') { + sb.append(ch); + break; + } + if (ch > '\177' && ch < '\u0800') { + sb.append('%'); + sb.append(Integer.toHexString((ch >> 6 | 0xc0) + 256).substring(1)); + sb.append('%'); + sb.append(Integer.toHexString((ch & 0x3f | 0x80) + 256).substring(1)); + break; + } + if (ch > '\u07FF' && ch < '\0') { + sb.append('%'); + sb.append(Integer.toHexString((ch >> 12 | 0xe0) + 256).substring(1)); + sb.append('%'); + sb.append(Integer.toHexString((ch >> 6 & 0x3f | 0x80) + 256).substring(1)); + sb.append('%'); + sb.append(Integer.toHexString((ch & 0x3f | 0x80) + 256).substring(1)); + } + break; + case 0: //'\0' + case 32: sb.append("%20"); break;// ' ' + case 61: sb.append("%3d"); break;// '=' + case 43: sb.append("%2b"); break;// '+' + case 39: sb.append("%27"); break;// '\'' + case 46: sb.append("%2E"); break;// '.' + case 60: sb.append("%3c"); break;// '<' + case 62: sb.append("%3e"); break;// '>' + case 35: sb.append("%23"); break;// '#' + case 37: sb.append("%25"); break;// '%' + case 38: sb.append("%26"); break;// '&' + case 123:sb.append("%7b"); break;// '{' + case 125:sb.append("%7d"); break;// '}' + case 92: sb.append("%5c"); break;// '\\' + case 94: sb.append("%5e"); break;// '^' + case 126:sb.append("%73"); break;// '~' + case 91: sb.append("%5b"); break;// '[' + case 93: sb.append("%5d"); break;// ']' + case 58: sb.append("%3A"); break;// ':' + case 47: sb.append("%2F"); break;// '/' + case 63: sb.append("%3F"); break;// '?' + case 45: sb.append("%2D"); break;// '-' + case 33: sb.append("%21"); break;// '!' + case 59: sb.append("%3B"); break;// ';' + } + } + return sb.toString(); + } +} diff --git a/src/FindText.java b/src/FindText.java new file mode 100644 index 0000000..aeb6936 --- /dev/null +++ b/src/FindText.java @@ -0,0 +1,57 @@ + +import com.sonyericsson.multimedia.MetaData; +import javax.microedition.lcdui.*; + +/* + * To change this template, choose Tools | Templates + * and open the template in the editor. + */ +/** + * + * @author aNNiMON + */ +public class FindText extends Form implements CommandListener { + + private Command back, ok; + public TextField artist, title; + + public FindText() { + super(SEPS.midlet.lang.findtext); + back = new Command(SEPS.midlet.lang.back, Command.BACK, 2); + ok = new Command(SEPS.midlet.lang.ok, Command.OK, 1); + String ar="",ti=""; + try{ + MetaData metaData = SEPS.midlet.cnv.media.getMetaData(); + ti = getValue(metaData, MetaData.TITLE_KEY); + ar = getValue(metaData, MetaData.ARTIST_KEY); + }catch(Exception ex){} + artist = new TextField(SEPS.midlet.lang.artist, ar, 255, TextField.ANY); + title = new TextField(SEPS.midlet.lang.title, ti, 255, TextField.ANY); + append(artist); + append(title); + addCommand(ok); + addCommand(back); + setCommandListener(this); + SEPS.midlet.dsp.setCurrent(this); + } + + private String getValue(MetaData metaData, String md) { + String data = metaData.getValue(md); + StringBuffer sb = new StringBuffer(); + for(int i=0; i= 0xc0 && ch <= 0xFF) ? (ch + 0x350) : ch)); + strBuff.append(StringEncoder.decodeCharCP1251((byte)ch)); } dis.close(); } catch (Exception e) {e.printStackTrace();} diff --git a/src/Lang.java b/src/Lang.java new file mode 100644 index 0000000..8d86109 --- /dev/null +++ b/src/Lang.java @@ -0,0 +1,97 @@ +/* + * To change this template, choose Tools | Templates + * and open the template in the editor. + */ + +/** + * + * @author aNNiMON + */ +public class Lang { + + String menu, back, exit, ok, findtext, artist, title, textsaving, nofound; + String site, scrobdb, about, sreturn, sleepmode, options, minimise; + String sensetivity, textfolder, vibro, skin, visual, origseps, elements, + gothic, emo,light, start, stop, flashlight, tooff, + statlocal, scrobbling, origjava, circles, uiactivity, listforward; + + public Lang(int id) { + if(id==0) { + menu = "Menu"; + back = "Back"; + exit = "Exit"; + ok = "Ok"; + findtext = "Text Search"; + artist = "Artist"; + title = "Title"; + textsaving = "Text saved\n"; + nofound = "Not found\n"; + site = "Site"; + scrobdb = "Scrobbling info"; + about = "About"; + sreturn = "Return"; + sleepmode = "Sleep Mode"; + options = "Options"; + minimise = "Minimise"; + sensetivity = "Sensetivity to switch:"; + textfolder = "Folder with the text:"; + vibro = "Vibration switch (in ms):"; + skin = "Skins"; + visual = "Visualization"; + origseps = "Original SEPS"; + gothic = "Gothic"; + emo = "Emo"; + light = "Backlight"; + start = "Launch player when program start"; + stop = "Close player when program exit"; + flashlight = "Flash backlight"; + statlocal = "Statistics (need to restart app)"; + scrobbling = "Scrobbling (annimon.z83.ru)"; + origjava = "Original Java"; + circles = "Circles (1.swf)"; + elements = "Elements: "; + tooff = "Time to turn off (in minutes):"; + uiactivity = "Sync. with ActivityMenu"; + listforward = "List Forward"; + }else{ + menu = "Меню"; + back = "Назад"; + exit = "Выход"; + ok = "Ok"; + findtext = "Поиск текстов"; + artist = "Исполнитель"; + title = "Заголовок"; + textsaving = "Текст сохранен\n"; + nofound = "Не найдено\n"; + site = "На сайт"; + scrobdb = "Данные скробблинга"; + about = "О программе"; + sreturn = "Вернуться"; + sleepmode = "Спящий режим"; + options = "Настройки"; + minimise = "Свернуть"; + sensetivity = "Чувствительность к переключению:"; + textfolder = "Папка с текстами:"; + vibro = "Вибрация при переключении (в мс):"; + skin = "Скины"; + visual = "Визуализации"; + origseps = "Стандартный SEPS"; + gothic = "Готический"; + emo = "Эмо"; + light = "Постоянная подсветка"; + start = "Запускать плейер при старте программы"; + stop = "Закрывать плейер при выходе из программы"; + flashlight = "Мигание подсветкой"; + statlocal = "Вести статистику (необходим перезапуск)"; + scrobbling = "Скробблинг"; + origjava = "Стандартный Java"; + circles = "Круги (1.swf)"; + elements = "Всего элементов: "; + tooff = "Врямя до выключения (в минутах):"; + uiactivity = "Синхр. с Меню Событий"; + listforward = "Листать вперед"; + } + } + + +} diff --git a/src/Lyrics.java b/src/Lyrics.java index a7395f3..f1dd213 100644 --- a/src/Lyrics.java +++ b/src/Lyrics.java @@ -87,7 +87,7 @@ public class Lyrics { int ch = 0; while ((ch = is.read()) != -1) { - sb.append((char) ((ch >= 0xc0 && ch <= 0xFF) ? (ch + 0x350) : ch)); + sb.append(StringEncoder.decodeCharCP1251((byte)ch)); } is.close(); fc.close(); @@ -108,6 +108,7 @@ public class Lyrics { { Vector v = new Vector(); char c = '\n'; + for(int i=0; i<=5; i++) {text=("[00:00.00] \n")+text+("[999:00.00] \n");} int j = text.length(); String s2 = ""; for(int k = 0; k < j; k++) @@ -115,7 +116,7 @@ public class Lyrics { int i = text.charAt(k); if(i == c) { - if(s2.length() > 0) + if(s2.length() > 0 && s2.startsWith("[")) { if(time && isNumChar(s2.charAt(1))) v.addElement(s2.substring(0, s2.indexOf(']')+1).trim()); else if(isNumChar(s2.charAt(1))) v.addElement(s2.substring(s2.lastIndexOf(']')+1).trim()); @@ -126,7 +127,7 @@ public class Lyrics { s2 = s2 + String.valueOf((char)i); } } - if(s2.length() > 0) { + if(s2.length() > 0 && s2.startsWith("[")) { if(time && isNumChar(s2.charAt(1))) v.addElement(s2.substring(0, s2.indexOf(']')+1).trim()); else if(isNumChar(s2.charAt(1))) v.addElement(s2.substring(s2.lastIndexOf(']')+1).trim()); } @@ -174,7 +175,7 @@ public class Lyrics { * Преобразовывает все неинтернет ссылки в нормальные, например убирая пробелы или лишние символы. * @param url - исходный адрес * @return - правильный адрес на выходе - */ + private String urlName(String url) { if (url == null) return null; StringBuffer sb = new StringBuffer(); @@ -229,5 +230,5 @@ public class Lyrics { } } return sb.toString(); - } + }*/ } diff --git a/src/Menu.java b/src/Menu.java index b3be7f6..b3aa97f 100644 --- a/src/Menu.java +++ b/src/Menu.java @@ -15,8 +15,10 @@ public class Menu implements CommandListener { private Display dsp; public Menu() { - String[] m = new String[] {"Вернуться", "Настройки", "О программе", "Свернуть", "Выход"}; - ls = new List("Меню", List.IMPLICIT, m, null); + String[] m = new String[] {SEPS.midlet.lang.sreturn, SEPS.midlet.lang.sleepmode, + SEPS.midlet.lang.findtext, SEPS.midlet.lang.options, SEPS.midlet.lang.about, + SEPS.midlet.lang.minimise, SEPS.midlet.lang.exit}; + ls = new List(SEPS.midlet.lang.menu, List.IMPLICIT, m, null); ls.setCommandListener(this); dsp = SEPS.midlet.dsp; dsp.setCurrent(ls); @@ -27,10 +29,12 @@ public class Menu implements CommandListener { int i = ls.getSelectedIndex(); switch(i) { case 0: dsp.setCurrent(SEPS.midlet.cnv); break; - case 1: dsp.setCurrent(new Options()); break; - case 2: dsp.setCurrent(new Info()); break; - case 3: dsp.setCurrent(null); break; - case 4: SEPS.midlet.destroyApp(true); break; + case 1: dsp.setCurrent(new SetSleepMode()); break; + case 2: dsp.setCurrent(new FindText()); break; + case 3: dsp.setCurrent(new Options()); break; + case 4: dsp.setCurrent(new Info()); break; + case 5: dsp.setCurrent(null); break; + case 6: SEPS.midlet.destroyApp(true); break; } } } diff --git a/src/Options.java b/src/Options.java index 277b58b..e2bea30 100644 --- a/src/Options.java +++ b/src/Options.java @@ -1,3 +1,4 @@ +import java.util.Random; import javax.microedition.lcdui.*; /* @@ -12,21 +13,24 @@ import javax.microedition.lcdui.*; public class Options extends Form implements CommandListener { private Command back,ok; - private TextField az, un, cc, hp; - private ChoiceGroup skin, cRC; + private TextField zw, az, un; + private ChoiceGroup skin, vis, cRC, lang; public Options() { - super("Настройки"); - back = new Command("Назад", Command.BACK, 3); - ok = new Command("Ok", Command.OK, 1); - az = new TextField("Папка с текстами:", Rms.lrcpath, 256, TextField.ANY); -// un = new TextField(L.str[L.noc]+":", String.valueOf(P.undo), 2, TextField.NUMERIC); + super(SEPS.midlet.lang.options); + back = new Command(SEPS.midlet.lang.back, Command.BACK, 3); + ok = new Command(SEPS.midlet.lang.ok, Command.OK, 1); + zw = new TextField(SEPS.midlet.lang.sensetivity, String.valueOf(Rms.sensetivity), 4, TextField.NUMERIC); + az = new TextField(SEPS.midlet.lang.textfolder, Rms.lrcpath, 256, TextField.ANY); + un = new TextField(SEPS.midlet.lang.vibro, String.valueOf(Rms.vibrlen), 4, TextField.NUMERIC); // cc = new TextField(L.str[L.cch]+":", "000000", 6, TextField.ANY); // hp = new TextField(L.str[L.ach], String.valueOf(P.heap), 2, TextField.ANY); - skin = new ChoiceGroup ("Скины", ChoiceGroup.EXCLUSIVE); + lang = new ChoiceGroup ("Language / Язык", ChoiceGroup.EXCLUSIVE); + skin = new ChoiceGroup (SEPS.midlet.lang.skin, ChoiceGroup.EXCLUSIVE); + vis = new ChoiceGroup (SEPS.midlet.lang.visual, ChoiceGroup.EXCLUSIVE); cRC = new ChoiceGroup ("", ChoiceGroup.MULTIPLE); - appendOther(); + appendSkin(); StrokeStyle(); } @@ -35,16 +39,27 @@ public class Options extends Form implements CommandListener { if ((c==ok || c==List.SELECT_COMMAND)) { new Skin(Rms.skinid = skin.getSelectedIndex()); + SEPS.midlet.lang = new Lang(Rms.lngid = lang.getSelectedIndex()); + Rms.visid = vis.getSelectedIndex(); + if(Rms.visid!=0) SEPS.midlet.cnv.swf = new Capuchin (Rms.visid); + Rms.sensetivity=Integer.parseInt(zw.getString()); + Rms.vibrlen=Integer.parseInt(un.getString()); Rms.lrcpath=az.getString(); // P.az=Integer.parseInt(az.getString()); // P.curcolor = getHexValue(cc.getString()); // P.heap = Integer.parseInt(hp.getString()); Rms.light = cRC.isSelected(0); -// P.dsI = cRC.isSelected(1); -// P.isUndo = cRC.isSelected(2); -// P.isEfView = cRC.isSelected(3); -// P.isLight = cRC.isSelected(4); -// P.BOC = cRC.isSelected(5); + Rms.startPlayer = cRC.isSelected(1); + Rms.closePlayer = cRC.isSelected(2); + Rms.flash = cRC.isSelected(3); + Rms.statGo = cRC.isSelected(4); if(!Rms.statGo) Rms.stat=Rms.statGo; + Rms.urlstat = cRC.isSelected(5); + Rms.actmenu = cRC.isSelected(6); + Rms.listfw = cRC.isSelected(7); + if(Rms.urlstat && Rms.id==0) { + Random rnd = new Random(); + Rms.id = (rnd.nextInt() >>> 1) % 10000000; + } // P.undo=Integer.parseInt(un.getString()); // Editor.isteps = new Image[P.undo]; // Editor.ist=0; @@ -53,38 +68,61 @@ public class Options extends Form implements CommandListener { } private void StrokeStyle() { + append(lang); append(skin); + append(zw); append(az); -// append(cc); + append(un); + append(vis); // append(hp); append(cRC); -// append(un); addCommand(ok); addCommand(back); setCommandListener(this); SEPS.midlet.dsp.setCurrent(this); } - private void appendOther() { - skin.append("Стандартный SEPS", null); + private void appendSkin() { + lang.append("English", null); + lang.append("Русский", null); + lang.setSelectedIndex(Rms.lngid, true); + + skin.append(SEPS.midlet.lang.origseps, null); skin.append("ProPaintMobile", null); - skin.append("Готический", null); - skin.append("Эмо", null); + skin.append(SEPS.midlet.lang.gothic, null); + skin.append(SEPS.midlet.lang.emo, null); skin.append("SEclub.ORG", null); skin.append("aNNiMON Forum", null); skin.setSelectedIndex(Rms.skinid, true); - cRC.append("Постоянная подсветка", null); -// cRC.append(L.str[L.stias], null); -// cRC.append(L.str[L.aplca], null); -// cRC.append(L.str[L.prwef], null); + cRC.append(SEPS.midlet.lang.light, null); + cRC.append(SEPS.midlet.lang.start, null); + cRC.append(SEPS.midlet.lang.stop, null); + cRC.append(SEPS.midlet.lang.flashlight, null); + cRC.append(SEPS.midlet.lang.statlocal, null); + cRC.append(SEPS.midlet.lang.scrobbling, null); + cRC.append(SEPS.midlet.lang.uiactivity, null); + cRC.append(SEPS.midlet.lang.listforward, null); // cRC.append(L.str[120], null); // cRC.append(L.str[123], null); cRC.setSelectedIndex(0, Rms.light); -// cRC.setSelectedIndex(1, P.dsI); -// cRC.setSelectedIndex(2, P.isUndo); -// cRC.setSelectedIndex(3, P.isEfView); -// cRC.setSelectedIndex(4, P.isLight); -// cRC.setSelectedIndex(5, P.BOC); + cRC.setSelectedIndex(1, Rms.startPlayer); + cRC.setSelectedIndex(2, Rms.closePlayer); + cRC.setSelectedIndex(3, Rms.flash); + cRC.setSelectedIndex(4, Rms.stat); + cRC.setSelectedIndex(5, Rms.urlstat); + cRC.setSelectedIndex(6, Rms.actmenu); + cRC.setSelectedIndex(7, Rms.listfw); + + vis.append(SEPS.midlet.lang.origjava, null); + vis.append(SEPS.midlet.lang.circles, null); + vis.append("Kaleidoscope black (2.swf)", null); + vis.append("Laura sb strobe (3.swf)", null); + vis.append("Precision red (4.swf)", null); + vis.append("Rain (5.swf)", null); + vis.append("Power dots (6.swf)", null); +// vis.append("Jet (7.swf)", null); +// vis.append("Jet (8.swf)", null); + vis.setSelectedIndex(Rms.visid, true); } } diff --git a/src/Rate.java b/src/Rate.java new file mode 100644 index 0000000..71ffbef --- /dev/null +++ b/src/Rate.java @@ -0,0 +1,14 @@ +/* + * To change this template, choose Tools | Templates + * and open the template in the editor. + */ + +/** + * + * @author aNNiMON + */ +public class Rate { + + String song; + int rate; +} diff --git a/src/RateImpl.java b/src/RateImpl.java new file mode 100644 index 0000000..161850d --- /dev/null +++ b/src/RateImpl.java @@ -0,0 +1,139 @@ +import java.io.*; +import java.util.Vector; +import javax.microedition.io.*; +import javax.microedition.io.file.FileConnection; + +/* + * To change this template, choose Tools | Templates + * and open the template in the editor. + */ + +/** + * + * @author aNNiMON + */ +public class RateImpl { + + public int numRates; //кол-во + public Vector rates; + + public int update(String song) { + int s = rates.size(); + if(s!=0) + for(int i=0; i 0) + { + try { + Rate r = new Rate(); + r.rate = Integer.parseInt(s2.substring(0, s2.lastIndexOf('|')).trim()); + r.song = s2.substring(s2.lastIndexOf('|') + 1).trim(); + rates.addElement(r); + } catch (Exception ex) { + } + s2 = ""; + } + }else s2 = s2 + String.valueOf((char)i); + } + if(s2.length() > 0) { + try { + Rate r = new Rate(); + r.rate = Integer.parseInt(s2.substring(0, s2.lastIndexOf('|')).trim()); + r.song = s2.substring(s2.lastIndexOf('|') + 1).trim(); + rates.addElement(r); + } catch (Exception exc) { + } + } + } + + public void save() { + FileConnection fc; + try { + fc = (FileConnection) Connector.open("file:///c:/other/SEPS_Rate.txt"); + if(fc.exists()) {fc.delete();} + fc.create(); + DataOutputStream os = fc.openDataOutputStream(); + Rate[] s = sortRate(); + int l = s.length; + for(int i=0; i>> 1) % 10000000; + } + new Skin(Rms.skinid); + cnv = new Canv(); + dsp = Display.getDisplay(this); dsp.setCurrent(cnv); } @@ -32,8 +39,10 @@ public class SEPS extends MIDlet { public void destroyApp(boolean unco) { if(Rms.firstStart) Rms.firstStart=false; + if(Rms.stat) cnv.ri.save(); + if(Rms.statGo) Rms.stat=true; Rms.saveOptions(); - cnv.pauseTrack(); + if(Rms.closePlayer) cnv.pauseTrack(); notifyDestroyed(); } } diff --git a/src/SetSleepMode.java b/src/SetSleepMode.java new file mode 100644 index 0000000..320adb6 --- /dev/null +++ b/src/SetSleepMode.java @@ -0,0 +1,52 @@ + +import java.util.Calendar; +import javax.microedition.lcdui.*; + +/* + * To change this template, choose Tools | Templates + * and open the template in the editor. + */ +/** + * + * @author aNNiMON + */ +public class SetSleepMode extends Form implements CommandListener { + + private Command back, ok; + private TextField zw; + + public SetSleepMode() { + super(SEPS.midlet.lang.sleepmode); + back = new Command(SEPS.midlet.lang.back, Command.BACK, 2); + ok = new Command(SEPS.midlet.lang.ok, Command.OK, 1); + zw = new TextField(SEPS.midlet.lang.tooff, String.valueOf(10), 2, TextField.NUMERIC); + append(zw); + addCommand(ok); + addCommand(back); + setCommandListener(this); + SEPS.midlet.dsp.setCurrent(this); + } + + public void commandAction(Command c, Displayable d) { + if (c == back) { + SEPS.midlet.dsp.setCurrent(SEPS.midlet.cnv); + } + + if (c == ok) { + Calendar cal = Calendar.getInstance(); + //текущее время + int ch = cal.get(Calendar.HOUR_OF_DAY); + int cm = cal.get(Calendar.MINUTE); + //время выключения + int dh = ch; + int dm = cm + Integer.parseInt(zw.getString()); + while(dm>=60) { + dm=dm-60; dh++; + } + if(dh>=24) dh=dh-24; + Rms.slpmode=true; + Rms.dh=dh; Rms.dm=dm; + SEPS.midlet.dsp.setCurrent(SEPS.midlet.cnv); + } + } +} diff --git a/src/StringEncoder.java b/src/StringEncoder.java new file mode 100644 index 0000000..87bcbb7 --- /dev/null +++ b/src/StringEncoder.java @@ -0,0 +1,66 @@ + + +public class StringEncoder +{ + protected static char cp1251 [] = + { + '\u0410', '\u0411', '\u0412', '\u0413', '\u0414', '\u0415', '\u0416', + '\u0417', '\u0418', '\u0419', '\u041A', '\u041B', '\u041C', '\u041D', + '\u041E', '\u041F', '\u0420', '\u0421', '\u0422', '\u0423', '\u0424', + '\u0425', '\u0426', '\u0427', '\u0428', '\u0429', '\u042A', '\u042B', + '\u042C', '\u042D', '\u042E', '\u042F', '\u0430', '\u0431', '\u0432', + '\u0433', '\u0434', '\u0435', '\u0436', '\u0437', '\u0438', '\u0439', + '\u043A', '\u043B', '\u043C', '\u043D', '\u043E', '\u043F', '\u0440', + '\u0441', '\u0442', '\u0443', '\u0444', '\u0445', '\u0446', '\u0447', + '\u0448', '\u0449', '\u044A', '\u044B', '\u044C', '\u044D', '\u044E', + '\u044F' + }; + + public static char decodeCharCP1251 (byte b) + { + int ich = b & 0xff; + if (ich == 0xb8) // С‘ + return 0x0451; + else if (ich == 0xa8) // РЃ + return 0x0401; + else if (ich >= 0xc0) + return cp1251[ich-192]; + return (char)ich; + } + + public static byte encodeCharCP1251 (char ch) + { + if (ch > 0 && ch < 128) + return (byte) ch; + else if (ch == 0x401) + return -88; // Ё + else if (ch == 0x404) + return -86; // Є + else if (ch == 0x407) + return -81; // Ї + else if (ch == 0x451) + return -72; // ё + else if (ch == 0x454) + return -70; // є + else if (ch == 0x457) + return -65; // ї + return (byte)((byte)(ch) + 176); + } + + public static char checkCP1251 (char ch) + { + int bt = (byte) ch; + if(bt < 0) return decodeCharCP1251((byte) (256 + bt)); + else return ch; + /*byte b = encodeCharCP1251(ch); + int ich = b & 0xff; + if (ich == 0xb8) // С‘ + return 0x0451; + else if (ich == 0xa8) // РЃ + return 0x0401; + else if (ich >= 0xc0) + return (char)(ich-192); + return (char)ich;*/ + //return decodeCharCP1251(encodeCharCP1251(ch)); + } +} diff --git a/src/about b/src/about index 219fa33..593cdca 100644 --- a/src/about +++ b/src/about @@ -1,20 +1,47 @@ -Sony Ericsson Player Service 3.0 +Sony Ericsson Player Service 5.2 Автор: Виктор aNNiMON Мельник -Сайт разработчика: http://annimon.wen.ru/ +Сайт разработчика: http://annimon.z83.ru/ Программа - управление родным плейером для телефонов Sony Ericsson с поддержкой MultimediaService API и датчиком движения. Управление: Влево/Вправо/Движение акселерометром - Переключение песен. Вверх/Вниз - переключение режимов: Всё/Визуализация/Текст. - 1/3 - Перемотка назад/вперед. + 1 - Горячая клавиша поиска текста. + 3 - установить начало/конец отрезка или отключить повтор. + 4/6 - Перемотка назад/вперед. 5/Огонь - Пауза. + 9 - Спящий режим. 0 - Включение/Отключение текстов песен. * - Включение/Отключение визуализации. # - Включение/Отключение акселерометра. Изменения: + Версия 5.2 + - Добавлен пункт в настройках, при котором переключение треков будет идти только вперед, независимо от направления рывка. + - Поддержка русской кодировки в именах файлов. + - Другие исправления и изменения. + Версия 5.0 && 5.1 + - Добавлена сортировка списка файлов по рейтингу. + - Добавлен английский язык. + - Исправлены найденные ошибки. + - Добавил статистику проигрывания треков. + - Исправил повтор треков при свернутом приложении. + - Добавил поиск текстов песен. + - Сделал некое подобие скробблинга. Данные о проигруемой музыке отсылаются на сайт annimon.z83.ru + + Версия 4.0 + - Исправлена ошибка при открытии .lrc-файлов содержащих пустые строки. + - Исправлена ошибка при отображении начальных строк текстов песен. + - Добавил настройки: "Запускать плейер при старте программы", "Закрывать плейер при выходе из программы". + - Добавил вибрацию при переключении треков и настройку длительности. + - Добавил эффект мигания подсветкой при переключении треков и настройку. + - Сменил клавиши перемотки с 1/3 на 4/6. + - Добавил повтор отрезков. Кнопкой 3 устанавливаются отрезки. + - Добавил спящий режим (кн. 9 или пункт в меню). По истечению времени программа закроется вместе с плейером. + - Добавил настройку визуализаций. Теперь используется Project Capuchin. + Версия 3.0 - Исправлен показ обложки в полноэкранном режиме. - Добавил поддержку текстов песен (lrc). Файлы кидаем в папку Lyrics. Например c:/music/Lyrics/Bullet For My Valentine - Hand of Blood.lrc @@ -28,6 +55,9 @@ Sony Ericsson Player Service 3.0 - Режим визуализации. Переключается клавишами Вверх/Вниз, - Добавил перемотку клавишами 1 и 3. +Скробблинг: + В версии 5.0 сделал некое подобие скробблинга, то есть информация о проигруемом файле отсылается на сайт. Потом вы можете смотреть статистику проигрывания музыки. + Поддержка lrc: Lyrics-файл (.lrc) должен быть записан в кодировке WIN-1251, иначе возможны ошибки при чтении. Имя lrc-файла должно быть либо "[Название группы] - [Название песни].lrc", либо "[Название исходного фудиофайла].ltc". diff --git a/src/newfile b/src/newfile index 20b41e8..f227890 100644 --- a/src/newfile +++ b/src/newfile @@ -1 +1,2 @@ -aNNiMON, Ну Вот юин эсприта, основной плагмэйкер... 2542902 Вот LocID \ No newline at end of file +aNNiMON, Ну Вот юин эсприта, основной плагмэйкер... 2542902 Вот LocID +//SE сфотошопить + aNNiMOON \ No newline at end of file